Vue前端面试题总结(二) 数据类型判断详解

数据类型判断

我们常见的数据类型有两种
基本数据类型引用数据类型
基本数据类型

  1. Number

  2. String

  3. Null

  4. Boolean

  5. undefined

  6. Symbol(ES6新增)

引用数据类型

1.Object
2.Array
3.Date
4.Function
5.Error
6.RegExp
7.Math
8.Number
9.String
10.Boolean
11.Globle。

通常判断数据的方法有四种

typeof
instanceof
constructor
Object.prototype.toString.call()

我们先来说

1、typeof

可以判断基本数据类型,它返回的数据类型的字符串
(返回结果只能包括 number,boolean,string,function,object,undefined
但不能判断null、array,可以使用typeof判断变量是否存在(如if(typeof a!=“undefined”){…});但是对于一些创建的对象,它们都会返回’object’
简单的例子

console.log(typeof a);    //'undefined'
console.log(typeof (true));  //'boolean'
console.log(typeof '123');  //'string'

2、Instanceof

判断引用数据类型的 用来测试一个对象在原型链中是否存在一个构造函数prototype 属性,但它不能检测null 和 undefined (Instanceof 不是一个函数,是一个操作符)
用来判断A是否为B的实例,A instanceof B, 返回 boolean 值。
instanceof 检测的是原型
代码实现:

function Student() {

}
var a = new Student()
console.log(a instanceof Student)  //返回true

3、constructor

除了undefined和null之外,其他类型都可以通过constructor属性来判断类型,似乎完全可以应对基本数据类型和引用数据类型, 但如果声明了一个构造函数,并且把他的原型指向改变了,这种情况下,constructor 就不行。
代码实现:

var str = ""
console.log(str.constructor) //输出结果String

4、Object.prototype.toString.call()

代码实现

var date = newDate();
Object.prototype.toString.call(date); // "[object Date]"
Object.prototype.toString.call(true);// "[object Boolean]"

判断某个对象值属于哪种内置类型。不能准确判断一个实例是否属于某种类型
实现:返回对象的类型字符串,可以用来判断一个值的类型

原理:由于实例对象可能会自定义toString方法,覆盖掉Object.prototype.toString方法,所以为了得到类型字符串,最好直接使用Object.prototype.toString方法。通过函数的call方法,可以在任意值上调用这个方法,帮助我们判断这个值的类型。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值