JS:数据类型检测的方式有那些(*****五颗星)

1.typeof

其中数组、对象、null都会被判断为object,其他判断都正确。

<script>
  console.log(typeof 2);               // number
  console.log(typeof true);            // boolean
  console.log(typeof 'str');           // string
  console.log(typeof undefined);       // undefined
  console.log(typeof null);            // object
  console.log(typeof []);              // object 
  console.log(typeof {});              // object
  console.log(typeof function () { });    // function
</script>

2.instanceof

instanceof可以正确判断对象的类型,其内部运行机制是判断在其原型链中能否找到该类型的原型。

instanceof只能正确判断引用数据类型,而不能判断基本数据类型。instanceof 运算符可以用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

用法:实例对象 instanceof 构造函数。如 A instanceof B    A(实例对象)的类型是不是B(构造函数)  

<script>
  console.log(2 instanceof Number);                    // false
  console.log(true instanceof Boolean);                // false 
  console.log('str' instanceof String);                // false 
  console.log([] instanceof Array);                    // true
  console.log(function () { } instanceof Function);    // true
  console.log({} instanceof Object);                   // true
  console.log([] instanceof Object);                  //true
  console.log(function(){} instanceof Object)         //true
  console.log(null instanceof Object)                 //false
</script>

3.constructor

:使用constructor属性可以获取到创建对象使用的构造器函数(类),即获取构造函数(又叫构造器)。

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务