数字类型中的八进制,是以0o(数字0和字母o开头),字母o不区分大小写。
在某些时候不注意会出现0o99这种尴尬的错误。十六进制是以0x开头,字母x同样不区分大小写。
- 浮点数中0.**中的的0可以省略。
如:console.log(.7);
Infinity 和 NaN(Not a Number) 都是Number类型。
其中Infinity区分正负值。0参与计算时,0作为除数(在数学中是不可以的,但在js语法中可以),被认为是无限趋近于0的数,并不是0。因此一个数与0做除法时,相当于乘以一个无穷大的数。
console.log(12/0); //Infinity
但是,0与0进行除法,返回结果是NaN- 用var进行变量声明,存在变量声明的提升,但是赋值不会提升。
值得注意:在ES6中,使用let声明变量时,let不存在声明提升。 - Null时基本数据类型,但是在typeof时,返回的是object。如:
console.log(typeof (null)); //object
取一个值的整数部分可以使用parseInt()。
parseFloat()是取浮点数,但是parseFloat(12.00)时,只会返回12,而不是12.00。将一个值为数字的字符串变为整数的方法,除了使用parseInt()之外,还可以使用~~。(~代表按位取反,再使用一个~就可以将字符串变为整数。)
Infinity的%,-,/ 返回的结果都是NaN。
+ 和 * 返回的结果是Infinity在特殊值(undefined, null, true, false, Infinity, NaN)与自身进行相等运算时,只有NaN返回false。
- null == 0 返回false
null与0进行相等运算时,JS解析认为null不等于0,而是趋近于0。
但是在null与0进行大于、小于比较时,null又被认为是0。
console.log(null == 0); //false
console.log(null > 0); //false
console.log(null < 0); //false
console.log(null >= 0); //true