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。