js的数据类型:
包含两种数据类型:基本数据类型(Boolean,Null,Undefined,Number,String,Symbol)和引用数据类型(object);
这要是面试的时候问你我觉得答上来没问题,不过要是深入的去问你你就可能突然懵了。。。
基本数据类型:
保存在栈中的简单数据段;按值访问,操作的就是实际值;从一个变量复制到另外一个变量的时候会在栈中创造一个新值,两个相互不干扰;
引用数据类型:
保存在堆中的对象,变量中保存的实际是一个指针;按引用访问,要先在栈中找到地址,再访问堆中的值;引用类型值是复制的指针,所以都是同一个对象,一改全改;
下面来具体说说类型:
Boolean:
布尔类型,就是两个值true,false,两个逻辑实体。
Null:
Null类型是只有一个值的:null,值null是js字面量表示空值,对象没有呈现(no object value is present);
Undefined:
注意说如果是小写的字母开头就是说是Undefined的值,unefined。大写的才是数据类型。
在js代码中最常见的变量值怕就是undefined了,一个没初始化的值是undefined,一个没有传入实参的形参是undefined。函数没有返回值,默认是undefined。
ps:上述两者的区别:
null是一个字面量,而undefined是一个全局对象。
null是一个表示无的对象,转成值是0,但是undefined是表示无的原始值,转成数值为NAN。
当声明的白能量没初始化的时候就是undefined,null可以表示一个尚未存在的对象。
Number:
数字类型就是一个整数
String:
js用于表示文本类型的。
Symbol:
说不说都行,这个是es6新定义的,Symbol能够实现针对对象状态的访问控制,允许用string或者是symbol作为键来访问。
符号类型是唯一的并且不可修改的,并且可以用来作为object的key的值;符号对象就是一个符号,原始数据类型的隐式对象包装器;