ecmascript的数据类型分两种:1、基本数据类型,包括string、number、boolean、undefined、null和symbol类型;2、引用数据类型,包括object、function和array类型。
本教程操作环境:windows7系统、ecmascript 6版、dell g3电脑。
ecmascript的数据类型可以分为两种类型:基本数据类型和引用数据类型
基本类型
基本类型也叫值类型。
string:任意字符串
number:任意数字
boolean:true、false
undefined:undefined
null:null
symbol
对象类型
对象类型也叫引用类型
object:任意对象
function:一种特别的对象(与object的区别:可以执行)
array:一种特别的对象(数值下标,内部数据是有序的)
怎么判断数据的类型
typeof:可以判断undefined、数值、字符串、布尔值、function
不能判断:null与object、object与array
返回数据类型的字符串表达。
instanceof:判断对象的具体类型。
===:可以判断undefined、null
1、基本类型的判断方法:
var a;console.log(a);//undefinedconsole.log(typeof a);//"undefined"console.log(a===undefined);//truea=4;console.log(typeof a==="number");//truea='dewferf';console.log(typeof a==='string');//trueconsole.log(typeof a==='string');//falsea=true;console.log(typeof a === 'boolean');//truea=null;console.log(typeof a,a===null);//"object",true
2、引用类型的判断方法
var b1={ b2:[1,'avc',console.log], b3:function(){ console.log('b3'); return function(){ return 'lxyxxx'; } } };console.log(typeof b1.b2);//'object'console.log(b1 instanceof object,b1 instanceof array);//true,falseconsole.log(b1.b2 instanceof array,b1.b2 instanceof object);//true,trueconsole.log(b1.b3 instanceof function,b1.b3 instanceof object);//true,trueconsole.log(typeof b1.b3);//'function'console.log(typeof b1.b3 === 'function');//trueconsole.log(typeof b1.b2[2]);//'function'console.log(typeof b1.b2[2] === 'function');//trueb1.b2[2](4);//因为b1.b2[2]是函数,所以会执行b1.b3()();//
symbol 类型
symbol 是 ecmascript6 中引入的一种新的数据类型,表示独一无二的值,symbol 类型的值需要使用 symbol() 函数来生成,如下例所示:
var str = "123";var sym1 = symbol(str);var sym2 = symbol(str);console.log(sym1); // 输出 symbol(123)console.log(sym2); // 输出 symbol(123)console.log(sym1 == sym2); // 输出 false :虽然 sym1 与 sym2 看起来是相同的,但实际上它们并不一样,根据 symbol 类型的特点,sym1 和 sym2 都是独一无二的
symbol函数的参数只是表示对当前 symbol 值的描述,因此相同参数的symbol函数的返回值是不相等的。
symbol函数前不能使用new命令,否则会报错。这是因为生成的 symbol 是一个原始类型的值,不是对象。也就是说,
由于 symbol 值不是对象,所以不能添加属性。基本上,它是一种类似于字符串的数据类型。
【相关推荐:javascript学习教程】
以上就是ecmascript有哪些数据类型的详细内容。