第1章 JavaScript不只是简单的构建块
- 字面值,基本类型和对象的区别:
-基本类型是对象的实例,字面值表示某种类型的一个值
-基本类型有String,Number,Boolean,Null,undefined。其中只有String,Number,Boolean有对应的构造方法。 var str1 = String("string")
和字面值"string"
严格相等。
-var str2 = new String("string")
不等于字面值"string"
。- 字符串部分函数知识:
-var sentence = "this: is a sentence"
-sentence.indexOf(':',startposition)
//从startposition开始搜寻,返回目标字符串索引
-sentence.split(':')
-sentence.substring(startindex,endindex)
//参数是原字符串的开始索引和结束索引
-sentence.substring(startindex,length)
//参数是原字符串的开始索引和长度 - 数组的
forEach()
函数的理解:forEach(){function(elmnt,indx,array){}}
函数将括号里的function函数应用到数组的每一个元素上,函数有三个参数:元素值,元素索引和数组本身。 typeof()
:数字返回number,字符串返回string,布尔返回Boolean,函数返回function,null或数组或其他对象都返回object,未定义返回undefined。valueof()
:实现对象和字符值的转换- 在松散相等的条件下,字面值相同的string和number是相等的。undefined和null也是相等的。
- 正则表达式:
-创建方法有两种:var re = new RegExp('t\\w{2}e','g')
和var re = '/t\w{2}e/g'
。前者不需要在正则表达式两端加/
,后者需要。前者的\
需要转义,所以是\\
。g
是全局搜索,意为每次搜索会在上一次搜索结束的地方开始。
-正则表达式很强大也很复杂,要深入研究可以读《regular Expressions cookbook》(O‘Reilly出版)。
-字符串的replace函数:var string = "Now is the time,this is the tame"; var replacement = string.replace(re,"place");
//Now is the place,this is the place。
-正则表达式的exec函数:re.exec()
执行后,若没有找到匹配返回null;若找到匹配返回一个对象:对象的index属性是找到匹配的索引,input属性是最初输入的字符串,[0]是匹配的值,[1]…[n]是圆括号里捕获的字字符串(如果正则表达式里有圆括号的话)。在字符串的replace函数的第二个参数里,可以使用"$1 $2"
等来使用圆括号捕获到的第n个子字符串。 - 日期:
-var time = Date.UTC(2013, 2, 25);var date = new Date(time);console.log(date.toString())
Date.UTC()函数的返回值为Number类型,返回指定日期与UTC时间 1970 年 1 月 1 日午夜之间相差的毫秒数。Date.UTC()函数的参数也是基于UTC时间进行计算的。
-两个Data对象可以相减,相减后是时间差的毫秒数。相加后是字符串的想加。 - 浏览器对象模型(Brower Object Model或BOM),window是浏览器的全局对象。setInterval()和setTimeout()是全局对象的函数。
- 严格模式:可以对整个脚本或者只是一个函数应用严格模式。打开严格模式只需在脚本或者函数的第一行写上
"use strict"
就可以。严格模式帮助剔除不可预期的和无法解释的结果。 var cell=document.createElement("td");var cellText=document.createTextNode("tdtext");cell.appendChild(cellText);
将文本写入HTML标签的一种方法。- SVG,意为可缩放矢量图形(Scalable Vector Graphics),使用 XML 格式定义图像。写成的svg文件可以在html中引用。如下面这样:
<iframe src="rect.svg" width="300" height="400"></iframe>
。SVG可以用来画几何图形,加滤镜等等。如果想查看更多,点击SVG实例。 - 使用ES6新增的功能,但是旧浏览器不支持怎么办?可以使用shim,在html中:
<script type="text/javascript" src="es6-shim.js"></script>
引用进来就好了。shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现。