扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
var a=new Boolean(false);var b=false;alert(a instanceof Boolean);alert(b instanceof Boolean);第一个弹出true第二个弹出false为什么?不是太懂。
JavaScript 里的值有两种类型:原始类型和引用类型(对象)。
false 是一个 boolean 原始类型的值,不是对象,所以 false instanceof Boolean 是 false。
false
boolean
false instanceof Boolean
同理 "foo" instanceof String 也是 false。
"foo" instanceof String
检查原始类型可以用 typeof。
typeof
你会看到 typeof false 的值是 "boolean",注意是小写“b”。
typeof false
"boolean"
以及:
typeof Boolean 是 "function"Boolean instanceof Object 是 true
typeof Boolean
"function"
Boolean instanceof Object
true
由于 JavaScript 会悄悄做类型转换,很多时候会让使用者疏忽这类型之间的差异。比如 var length = "hello world".length,就是把原始类型 string 转换成了 String 对象的实例。
var length = "hello world".length
string
String
var a = new Boolean(false); var b = false; alert(typeof a); // 'Object' alert(typeof b); // 'Boolean' alert(a === b); // false
instanceof 是用于判断对象是否为某个构造函数的实例 b显然不是对象
除object外,其他类型都属于基本类型,你这里就是判断是否为Boolean实例,属于object,后面的基本类型就是false了,不是new出来的一个Boolean实例,结果当然也就是false了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
JavaScript 里的值有两种类型:原始类型和引用类型(对象)。
false
是一个boolean
原始类型的值,不是对象,所以false instanceof Boolean
是false
。同理
"foo" instanceof String
也是false
。检查原始类型可以用
typeof
。你会看到
typeof false
的值是"boolean"
,注意是小写“b”。以及:
typeof Boolean
是"function"
Boolean instanceof Object
是true
由于 JavaScript 会悄悄做类型转换,很多时候会让使用者疏忽这类型之间的差异。比如
var length = "hello world".length
,就是把原始类型string
转换成了String
对象的实例。instanceof 是用于判断对象是否为某个构造函数的实例
b显然不是对象
除object外,其他类型都属于基本类型,你这里就是判断是否为Boolean实例,属于object,后面的基本类型就是false了,不是new出来的一个Boolean实例,结果当然也就是false了。