1.Javascript区分大小写。
2.javascript比较运算符:
2.1.== 它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;
2.2.===
它不会自动转换数据类型,如果数据类型不一致,返回false
,如果一致,再比较。
由于JavaScript这个设计缺陷,不要使用==
比较,始终坚持使用===
比较。
2.3.唯一能判断NaN的方法是通过isNaN()函数:isNaN(NaN); // true
2.4.最后要注意浮点数的相等比较:
1 / 3 === (1 - 2 / 3); // false
这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否 小于某个阈值:
Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true 3. null和undefinednull表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。
在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。
JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。
4.数组的定义: var arr=[0,1,"hellow world"]; 5.不用var
申明的变量会被视为全局变量,为了避免这一缺陷,所有的JavaScript代码都应该使用strict模式。我们在后面编写的JavaScript代码将全部采用strict模式. 6.字符串:用''或者""括起来表示。 如果字符串内部既包含'
又包含"
怎么办?可以用转义字符\
来标识,比如:'I\'m \"OK\"!';
转义字符
\
可以转义很多字符,比如\n
表示换行,\t
表示制表符,字符\
本身也要转义,所以\\
表示的字符就是\
。ASCII字符可以以
\x##
形式的十六进制表示还可以用
\u####
表示一个Unicode字符7.用反引号 ` ... ` 表示跨行字符串。
8.字符串拼接:
var message = `你好, ${name}, 你今年${age}岁了!`;
或者使用+(加号拼接)
9.map以及set http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014345007434430758e3ac6e1b44b1865178e7aff9082e000
10.iterable
类型的集合可以通过新的for ... of
循环来遍历 http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450082788640f82a480be8481a8ce8272951a40970000