美文网首页
JS中“==”与“===”的区别,

JS中“==”与“===”的区别,

作者: 仙姑本姑 | 来源:发表于2019-12-08 14:42 被阅读0次

“==”判定较为轻松,只需值相等,可以进行类型转换;
“===”判定严格,类型与值都必须相等;

console.log(3 == "3"); // true
console.log(3 === "3"); // false.
console.log(true == '1'); // true
console.log(true === '1'); // false
console.log(undefined == null); // true
console.log(undefined === null); // false. Undefined and null are distinct types and are not interchangeable.

特殊的

console.log(true == 'true'); // false. A string will not be converted to a boolean and vice versa.
console.log(true === 'true'); // false

[字符串文字与字符串对象是不同的]

console.log("This is a string." == new String("This is a string.")); // true
console.log("This is a string." === new String("This is a string.")); // false

要查看严格相等为什么返回false的原因,请看以下内容:

console.log(typeof "This is a string."); // string
console.log(typeof new String("This is a string.")); //object

一些Tips

  • !!双重非运算符是显式地将任意值强制转换为其对应的布尔值。
    同样的转换可以通过 [Boolean]函数完成。

  • ②不要用创建 Boolean 对象的方式将一个非布尔值转化成布尔值,直接将 Boolean 当做转换函数来使用即可,或者使用[双重非(!!)运算符]:

var x = Boolean(expression);     // 推荐
var x = !!(expression);          // 推荐
var x = new Boolean(expression); // 不太好

对于任何对象,即使是值为 false 的 Boolean 对象,当将其传给 Boolean 函数时,生成的 Boolean 对象的值都是 true。

var myFalse = new Boolean(false);   // false
var g = new Boolean(myFalse);       // true
var myString = new String("Hello");
var s = new Boolean(myString);      // true

相关文章

  • js中== 与 ===区别

    ==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换===:用来检测两...

  • js中 for in 与 for of 区别

    for in是ES5标准,遍历key. (遍历对象返回key, 遍历数组项返回数组的index) for of是...

  • JS中“==”与“===”的区别,

    “==”判定较为轻松,只需值相等,可以进行类型转换;“===”判定严格,类型与值都必须相等; 特殊的 [字符串文字...

  • js中“==”与“===”的区别

    简介 “==”会先比较两边操作数的数据类型,如果两边操作数的数据类型不相同,会先尝试一次类型转换,然后再进行数值比...

  • js中==与===的区别

    大区别 ==代表相同; ===代表严格相同; 比较方式区别 双等号: 先检查两个操作数数据类型,如果相同, 则进行...

  • 单引号和双引号

    JS中 js中单引号和双引号的区别(html中属性规范是用双引号,js中字符串规定是用单引号)(js中单引号区别和...

  • js小知识1

    js的原始类型?null是对象吗,基本数据类型和引用类型的区别 js中类型转化的规则 ==与===区别,什么情况下...

  • 【转载】JS中==与===的区别

    == equality 等同,=== identity 恒等。==, 两边值类型不同的时候,要先进行类型转换,再比...

  • 03-第三章 函数、自定义属性、事件

    一、 变量与属性的区别 属性分节点属性 和js属性节点属性 :元素自带属性js属性:js中自定义的属性 当js属性...

  • null和undefiend区别?

    JS中Null与Undefined的区别 在JavaScript中存在这样两种原始类型:Null与Undefine...

网友评论

      本文标题:JS中“==”与“===”的区别,

      本文链接:https://www.haomeiwen.com/subject/xrsmgctx.html