Discuss / JavaScript / 补充

补充

Topic source

josancpp199

#1 Created at ... [Delete] [Delete and Lock User]
typeof new Number(123); // 'object'
new Number(123) === 123; // false
new Number(123) == 123; // true

typeof new Boolean(true); // 'object'
new Boolean(true) === true; // false
new Boolean(true) == true; // true

typeof new String('str'); // 'object'
new String('str') === 'str'; // false
new String('str') == 'str'; // true

josancpp199

#2 Created at ... [Delete] [Delete and Lock User]

JS这些语法,带来了任性与混乱。

这些是相等的

0== +0 == -0== false == "" == "0" // Note: 这些基本都是互相相等,除了""!="0"

undefined == null
0== +0 == -0== false == "" == "0"   // 求这些对象的布尔值
console.log(Boolean(0));               // false
console.log(Boolean(-0));              // false
console.log(Boolean(+0));              // false
console.log(Boolean(false));           // false
console.log(Boolean(""));              // false
console.log(Boolean("0"));             // true

总结, 不要用==来判断元素的相等! 不要用==来判断元素的相等! 不要用==来判断元素的相等!

参考链接

Javascript中使用Object.is()判断严格相等


  • 1

Reply