==
比较,它会自动转换数据类型再比较,不少时候,会获得很是诡异的结果;javascript
===
比较,它不会自动转换数据类型,若是数据类型不一致,返回false
,若是一致,再比较java因为JavaScript这个设计缺陷,最好不要使用
==
比较,始终坚持使用===
比较。ruby
NaN
这个特殊的Number与全部其余值都不相等,包括它本身:函数NaN === NaN; // falsespa
惟一能判断
设计NaN
的方法是经过isNaN()
函数:
isNaN(NaN); // true
code
null
表示一个“空”的值,它和0
以及空字符串''
不一样,0
是一个数值,''
表示长度为0的字符串,而null
表示“空”。regexp
undefined
,它表示“未定义”。JavaScript的设计者但愿用null
表示一个空的值,而undefined
表示值未定义。事实证实,这并无什么卵用,区分二者的意义不大。大多数状况下,咱们都应该用null
。undefined
仅仅在判断函数参数是否传递的状况下有用。ip
转义字符
\
能够转义不少字符,好比\n
表示换行,\t
表示制表符,字符\
自己也要转义,因此\\
表示的字符就是\
。字符串ASCII字符能够以
\x##
形式的十六进制表示
因为多行字符串用
\n
写起来比较费事,因此最新的ES6标准新增了一种多行字符串的表示方法,用反引号 ` · ` 表示,反引号在键盘的ESC下方,数字键1的左边。
var name = '小明'; var age = 20; var message = '你好, ' + name + ', 你今年' + age + '岁了!';
也能够:var message = `你好, ${name}, 你今年${age}岁了!`;
null
、undefined
、0
、NaN
和空字符串''
视为false
,其余值一律视为true
,所以上述代码条件判断的结果是true
。