Primitive wrapper objects
1 2 3 4 5 6 7 8 9 10 11
| const s1 = new String('abc'); const s2 = new String('abc');
const s3 = String('abc'); const s4 = String('abc');
console.log(s1 == s2); console.log(s3 == s4);
console.log(s1 == s3); console.log(s1 === s3);
|
Answer:
- s1和s2都是object类型,所以它们的引用地址不同,所以
s1 == s2
返回false
。
- s3和s4都是string类型,所以它们的值相同,所以
s3 == s4
返回true
。
- s1是object类型,s3是string类型,比较时先将s1转换为primitive类型,也就是字符串类型,所以
s1 == s3
返回true
。
- s1是object类型,s3是string类型,所以
s1 === s3
返回false
。
关于JavaScript中==
的详细规则,请看这里
输出结果是什么?
1 2
| const data = new Uint8Array(); console.log(Array.isArray(data));
|
Answer: false
Uint8Array
是 ArrayBuffer
对象的一个视图,它表示一个8位无符号整数的数组。Uint8Array
实例不是一个数组,所以 Array.isArray(data)
返回 false
。