JS typeof与instanceof - Kaiqisan

typeof :由于js是弱类型的语言,在程序执行中,很容易就出现很多隐性的数据类型的变换,在有些时候,这些隐性的变换很容易就会造成一些不必要的困扰(比如在数据判断的时候使用 “===” 如果数据类型不匹配就是false,或者在和后端交互的时候,提交字符串的时候提交了数字就会造成后端的错误)
它返回字符串

let a = 100
let b = '100'
let c = false
let d = {}
console.log(typeof a, typeof b, typeof c, typeof d);
// 输出为 number string boolean object

typeof运算符用于判断对象的类型,它有以下返回值

"number""string""boolean""object""function" "undefined"

以下可能会在面试题中有,需要注意

console.log(typeof null); // object
// null 并不是空值这么简单的意思,它的实际含义是空指针.

instanceof : 用于测定某个实例的构造函数,返回布尔值,说得通俗一些,这个方法就是找爸爸

	function App(name, uid) {
		this.name = name
		this.uid = uid
    }

    let a = new App('kaiqisan', 10001) 
	console.log(a instanceof App) // true

如果有继承关系,这个方法同样适用,这个方法可以在继承关系中用来判断一个实例是否属于它的父类型。

	class App {
		constructor(name, uid) {
        	this._name = name
        	this._uid = uid
        }
	}

	class Tencent extends App {
	    constructor() {
	        super()
		}
	}

    let a = new Tencent('kaiqisan', 10001)
	console.log(a instanceof App) // true

PS:以下为面试题常出

console.log(Array instanceof Object); // true
console.log(Function instanceof Object);//true  
// 因为函数,数组本质就是对象
console.log(Object instanceof Object);//true 
console.log(Function instanceof Function);//true
// 建议查看js的原型链

总结

面试题高频方法 + 测试常用方法
instanceof 在java比较多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaiqisan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值