JS--数据类型与判断
作者:互联网
Js--数据类型:
分为:原始数据类型(基本数据类型),引用数据类型
原始数据类型:String Number Null undefined Boolean Symbol.....
引用数据类型:Object Array Function ......
基本数据类型和引用数据类型存储在内存中的位置不同:
-
基本数据类型存储在栈中
-
引用类型的对象存储于堆中
Js--数据类型的判断
1 <script> 2 var arr = [1, 2, 3] 3 var str = 'abc' 4 var num = 1 5 var obj = { a: 0, b: 1 } 6 var fun = function () { console.log(1); } 7 var be = true 8 var nu = null 9 // 1.typeof 10 // console.log(typeof arr); //object 11 // console.log(typeof str); //string 12 // console.log(typeof num); //number 13 // console.log(typeof obj); //object 14 // console.log(typeof fun); //function 15 // console.log(typeof be); //boolean 16 // console.log(typeof nu); //object 17 // 其中typeof返回的类型都是字符串形式,需注意,例如: 18 // console.log(typeof str == 'string');//true 19 // console.log(typeof num == "number");//true 20 // 判断已知对象类型的方法: instanceof 21 // console.log(arr instanceof Array);//true 22 // console.log(str instanceof String);//false 23 // console.log(obj instanceof Object);//true 24 // console.log(fun instanceof Function);//true 25 // 注意:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支 26 // 3、根据对象的constructor判断: constructor(构造器/构造函数) 27 // console.log(arr.constructor === Array);//true 28 // console.log(str.constructor == String);//true 29 // console.log(obj.constructor == Object);//true 30 // console.log(num.constructor == Number);//true 31 // console.log(fun.constructor == Function);//true 32 // console.log(be.constructor == Boolean);//true 33 // 注意: constructor 在类继承时会出错 34 // function A() { }; 35 // function B() { }; 36 // A.prototype = new B(); //A继承自B 37 // var aObj = new A(); 38 // console.log(aObj.constructor === B)//true; 39 // console.log(aObj.constructor === A)//false; 40 // 而instanceof方法不会出现该问题,对象直接继承和间接继承的都会报true: 41 // console.log(aObj instanceof B);//true 42 // aObj.constructor = A; //将自己的类赋值给对象的constructor属性 43 // console.log(aObj.constructor === A)// true; 44 // console.log(aObj.constructor === B) //false; //基类不会报true了; 45 //4、通用但很繁琐的方法: prototype 46 console.log(Object.prototype.toString.call(arr) === '[object Array]')//true 47 console.log(Object.prototype.toString.call(str) === '[object String]')//true 48 console.log(Object.prototype.toString.call(num) === '[object Number]')//true 49 console.log(Object.prototype.toString.call(obj) === '[object Object]')//true 50 console.log(Object.prototype.toString.call(fun) === '[object Function]')//true 51 console.log(Object.prototype.toString.call(be) === '[object Boolean]')//true 52 console.log(Object.prototype.toString.call(nu) === '[object Null]')//true 53 54 </script>
标签:console,log,--,Object,数据类型,JS,typeof,constructor,true 来源: https://www.cnblogs.com/jingxin01/p/16389043.html