1.6种数据类型:
undefined,Null,Boolean,Number,String,Symbol,Object;
2.undefined类型只有一个值就是特殊值undefined,当使用var或者let声明了变量但是未初始化的时候就相当于赋值了undefined,而如果打印一个未生明的变量会报错;
3.Null类型也只有一个值,也是特殊值null,逻辑上讲null值表示一个空对象指针,这也是typeof null会输出object的根本原因;
4.Boolean类型有两个值true,false,如果把其他类型的值转成Boolean值可以用特定函数Boolean();
5.Number数字
5.1:浮点数必须包含小数点最高可达17位。不如整数精确,比如0.1+0.2=0.30000000000000004而不是0.3;
5.2:由于内存限制ECMAScript不支持世界上所有的数值,如果某个数值超出了范围会用Infinity表示,正无穷(Infinity)负无穷(-Infinity);
5.3:NaN表示本来返回数值的操作失败了,任何涉及到NaN的操作都会返回NaN,NaN不等于任何值包括NaN,为此ECMAScript提供了isNaN()函数该函数会尝试把参数转化为数值,如果不能转化为数值返回false,如果能转化为数值则返回true;
6.String字符串,模板字符串:可以在引号内编写html代码,超级字符串:可以在反引号内通过${}方法在里面调用脚本;
7.Symbol符号不能用new实例一个symbol,两个传入同样值的symbol不相等,由于它的唯一性可以做对象的属性名,如果作为属性名要注意两点
7.1:访问的时候不能用点,要用中括号
7.2:不能通过for......in,for......of遍历也不会被Object.keys(),Object.getOwnProPertyNames(),JSON.stringfy()返回,但是他也不是私有属性,可以通过Object.getOwnProPertySymbols()和Reflect.ownKeys()方法获取对象的symbol属性名;
7.3:symbol由香港方法
7.3.1:symbol.for()将描述相同的symbol指向一个symbol
7.3.2:symbol.keyFor()检测该字符串参数作为名称的 Symbol
值是否已被登记,返回一个已登记的 Symbol
类型值的key