基本数据类型基本数据类型有:undefined,boolean,number,string,null基本类型的访问是按值的,也就是说你可以操作存储在变量中的实际值。引用数据类型js的引用数据类型是对象类型Object,如:对象、数组、函数、数据等;如何区分是什么类型1.使用typeof运算符。(1)undefined:如果值是未定义的 (2)boolean:如果值是布尔值 (3)string:如果值是字符串 (4)number:如果值是Value (5)object:如果value是object或null (6)function:如果value是function,请注意:typeof不适合判断是否为数组。使用typeof判断数组和对象时,会返回object。 可以通过isArray()判断是否为数组。varstr=""varstr1=typeof(str);console.log(str1)//"string"2.instanceof instanceof操作符,用于判断一个构造函数的prototype属性指向的对象是否存在于另一个待检查对象的原型链上。需要区分大小写。 简单来说,instanceof就是用来判断一个变量是否是一个对象的实例。vararr=newArray();console.log(arrinstanceofArray);//returntrue 需要注意的是,instanceof只能用来判断对象和函数,不能判断字符串和数字。在判断是字符串还是数字时,只会返回false3.constructor constructor属性返回创建这个对象的数组函数的引用。 在JavaScript中,每个具有原型的对象都会自动获得构造函数属性。以下代码中的 [nativecode]表示这是JavaScript的底层内部代码实现,无法显示代码详情。 //Stringvarstr="String";alert(str.constructor);//functionString(){[nativecode]}alert(str.constructor===String);//true//Arrayvararr=[1,2,3];alert(arr.constructor);//functionArray(){[nativecode]}alert(arr.constructor===Array);//true//Numbervarnum=5;alert(num.constructor);//函数Number(){[本地代码]}alert(num.constructor===Number);//true4,prototype 以上三种方法都会有一些无法判断的情况。为了确保兼容性,可以使用Object.prototype.toString方法来确定对象值属于哪个内置类型。 需要注意区分大小写。alert(Object.prototype.toString.call("String")==='[objectString]')------>true;alert(Object.prototype.toString.call(123)==='[对象编号]')------>true;alert(Object.prototype.toString.call([1,2,3])==='[objectArray]')------->true;alert(Object.prototype.toString.call(newDate())==='[objectDate]')------>true;alert(Object.prototype.toString.call(functiona(){})==='[objectFunction]')------>true;alert(Object.prototype.toString.call({})==='[objectObject]')------>true;小编不易,如果有收获,微信打赏小编一杯娃哈哈单身狗的葵花宝典,撩妹必备,敬请期待!
