数据类型区分和数据类型检测

基本数据类型和引用数据类型的区别:基本数据类型操作的是值,而引用数据类型操作的是对存储空间的引用地址

在这里插入图片描述

基本数据类型:是把值直接给变量,接下来的操作过程中,直接拿值操作,可能两个变量存储的值一样,但是之间没有关系,其中一个改变,另一个没有影响
引用数据类型:
1.定义一个变量
2.开辟一个新的空间,然后把属性名和属性值保存在这个空间,并且有一个空间引用地址
3.接下来把这个地址又告诉了另外一个变量,所以另外一个变量存储的也是这个地址,此时两个变量操作的是同一个空间
4.其中一个改变了空间的内容,另一个也会跟着改变

JS中检测数据类型的方式
  • typeof 运算符
  • instanceof运算符
  • constructor
  • Object.prototype.toString.call()

typeof:局限性,不能具体检查object下细分的类型,都返回object

typeof "world"    //"string"
typeof 1          //"number"
typeof true       //"boolean"
typeof undefined  //"undefined"
typeof null       //"object"
typeof {}         //"object"
typeof []         //"object"
typeof /^$/         //"object"
typeof function(){}  //"function"

面试题:

console.log(typeof (typeof(typeof(typeof([]))))
//① typeof []  ==> "object"
//② typeof "object" ⇒ "string"
//③ typeof "string" => "string"
//④ typeof "string" => "string"

出现两个和两个以上typeof的时候,最终结果都是"string"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值