1、JS有哪些数据类型?引用数据类型有哪些?
Js
中,存在6中原始值,分别是:
Boolean
null
undefined
number
string
symbol
引用数据类型:对象Object
(包含:普通对象-object,Array-数组对象,正则-RegExp,日期-Date、Math-数学函数,函数对象-Function)
2、null是对象吗?为什么?
null
不是对象
虽然,typeof null会输出Object
,但是这只是Js
存在的一个悠久的Bug
,js最初使用的是32为系统,为了性能考虑使用低位储存变量的类型信息,000开头代表是对象然而null
表示全为零,所以将他错误的判断为Object
。
3.toString()为什么可以调用?
var s = new String('1');
s.toString();
s = null;
其实这个语句运行过程中做了这样几件事:
- 创建
String
类实例 - 调用实例方法
- 执行完方法立即销毁这个实例
整个过程体现了基本包装类型的性质,而基本包装类型恰恰属性基本类型。包括Number
、String
Boolean
4、0.1+0.2为什么不等于0.3?
0.1
和0.2
在转换成二进制后会无限循环,由于标准位数限制后面多余的位数会被截掉,此时已经出现了精度丢失,相加后浮点数小数位的限制而截断的二进制数字在转换为十进制就会变成0.30000000000000004