undefined和null的区别
-
undefined是声明后没有赋值的结果,表示没有值 -
null是有值,它的值就是null -
null表示一个空对象指针 -
undefined存在的意义主要是为了做判断,判断一个变量或者对象的属性是否有值 - 不要声明一个变量为
undefined的,但是可以声明一个变量为null,如果一个要保存对象的变量还没有保存对象,就可以给它赋值null
NaN
-
NaN表示不是一个数字 -
0/0会返回NaN,此后再参与计算的值都是NaN -
isNaN()这个函数并不是用来判断一个值是不是NaN,而是用来判断一个值是否不是数值,这个函数应该叫isNoNumber(),所有能用Number转化成数字的值,都会返回true,不能转化为数字的值,返回false
数值
- 浮点数计算会产生误差,因为
js基于IEEE754数值的浮点计算,浮点数的最高精度是17位小数。 - 数值范围,最小值:
Number.MIN_VALUE,5e-324,最大值:Number.MAX_VALUE,1.7976931348623157e+308。Infinity表示无穷大,当一个运算的结果超出最大值时得到的结果就是Infinity,小于最小值时得到的结果就是-Infinity - 可以用
isFinite()这个函数来判断一个值是否位于最大最小之间
数值转换
转化数字的方法有Number(), parseInt(),parseFloat()
-
Number()中只要有字母,就会转化成NaN,不识别二进制,八进制,可以识别16进制。 -
parseInt()会忽略字符串之前的空格,如果第一个字符不是数字或者负号就会返回NaN,直到解析到第一个不是数字的字符,Number对于空字符串会返回0,parseInt()会返回NaN。并且parseInt()可以识别各种进制(ES5以后,不能解析8进制),parseInt()支持第二个参数,进制。 -
parseFloat()也是会忽略字符串之前的空格,如果第一个字符不是数字或者负号就会返回NaN,直到解析到第一个不是无效的浮点数字字符,不支持进制,没有第二个参数。
String类型
- 字符串是不可变的,字符串一旦创建,它们的值就不能改变
- 要把一个值转变为字符串有两种方法,使用几乎每个值都有的
toString()方法,toString()可以输出任意有效进制格式的值,null和undefined没有这个方法,要想转化null``和undefined,可以使用转型函数String()。还有一种方式就是直接加“”字符串。
操作符
- 递增与递减操作符,可以放在变量的前置也可以放在后置,它们最重要的区别就是:前置的时候变量的值都是在语句被求值前改变的。
- 位操作符,求一个负数的二进制码,负数的二进制码的格式是二进制补码,要计算一个数值的二进制补码,需要以下步骤
- 求这个数值的绝对值的二进制码
- 求二进制反码
- 得到的二进制反码加1.
函数
- 未指定函数返回值的时候,函数会返回
undefined。






网友评论