JavaScript一共有八种基本数据类型,包括7 种原始类型和 1 种引用类型:undefined(未定义)、null(空)、Number(数字)、String(字符串)、Boolean(布尔)、Symbol(独一无二)、Object(对象)
1.undefined:声明未赋值 //let a ; console.log(a)
2.null:空指针 // let obj=document.getElementById("id") console.log(obj);
这里先说一下null和undefined的区别,这两个都代表无,没有
a.空指针null:意料之中的没有,开始不知道赋什么值就先手动设置为null,后面再赋值,表示的是没有对象,不占什么空间。
这个值只能手动去设置,一个变量值在任何情况下它的值都不会主动是null。
let a =null; let a= 0;
b.未定义undefined:这里是意料之外的没有,表示缺少值.一个变量如果只是声明但是未赋值,默认值就是undefined
3.Number(数字):
小数点带不带都可以,极大极小的值也可以用科学计数法写
4.String(字符串):引号内的任意文本,单引号双引号都可以
5.Boolean(布尔): true、false
6.Symbol(独一无二):这个是ES6新加的数据类型,表示独一无二的值,用来产生唯一标识,但却无法直接访问该标识,即使用同一个变量生成的值也不相等。
应用:由于任何两个Symbol都是不相等的,这就意味着我们可以将其作为对象的属性名,而不用担心属性名会覆盖原有属性,下面举一个例子
let obj = {
'id':100,
'name':'zhangsan',
}
obj.age=20; //会添加一个属性
obj.name='aaa'; //会覆盖原有name属性,而不是添加一个属性
此时其它开发者想给这个对象添加一个id属性,但是他并不知道这个对象是否已经
存在id属性。为了避免冲突,他可以这样做:
let id = Symbol();
obj[id] = 200;
console.log(obj); // {id: 100, name: "zhangsan", age: 25, Symbol(): 200}
console.log(obj[id]); //200
7.Object(对象):由花括号{ }分隔,在花括号内对象属性名称以键值对的形式来定义