zoukankan      html  css  js  c++  java
  • javascript中=、==、===区别详解

    javascript中=、==、===区别详解
    今天在项目开发过中发现在一个小问题。在判断n==""结果当n=0时 n==""结果也返回了true。虽然是个小问题,却有着大影响,所以决定深入分析下。
    1、= 赋值运算符

    //例:
    var n=1;
    console.log(n);//1
    n=n+1;
    console.log(n);//2

    2、== 值比较运算符
    值比较运算符在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较.

    //例:
    var a="1";
    var b=1;
    console.log(a==b);//true
    //例:
    var a="";
    var b=0;
    console.log(a==b);//true;

    说明:由于==只是对值进行比较,并不会进行数据类型比较,当两边表达式不一致时,会隐式转换成相同的数据类型,然后进行比较,
    所以
    0 是逻辑的 false
    1 是逻辑的 true
    空字符串是逻辑的 false
    var a="";//解析为了false
    var b=0;//解析为了false
    所以a==b false=false 结果true

    3、=== 值类型比较运算符
    ===表达式不仅进行值比较,还要进行数据类型进行比较。当类型不同时不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型, 它是恒等运算符。

      //例:
        var a="1";
        var b=1;
        console.log(a===b);//false
        //例:
        var a="";
        var b=0;
        console.log(a===b);//false;
        console.log(false===0);//false;
        console.log("1" === 1);//false;

    4、==与===区别
    4.1在相同数据类型比较时==和===是有区别的。
    4.2不同类型间比较,==会将两边表达式转化成同一类型后进行比较是否相等,===如果类型不同,不进行转换,结果就是不等。

  • 相关阅读:
    bzoj3295: [Cqoi2011]动态逆序对
    bzoj3262: 陌上花开
    bzoj1176: [Balkan2007]Mokia
    bzoj1935: [Shoi2007]Tree 园丁的烦恼
    [APIO / CTSC2007]数据备份 --- 贪心
    [APIO2007]风铃 --- 贪心
    [NOI2015]寿司晚宴 --- 状压DP
    [NOI2007]货币兑换 --- DP + 斜率优化(CDQ分治)
    [NOI2009]诗人小G --- DP + 决策单调性
    [HNOI2008]玩具装箱TOY --- DP + 斜率优化 / 决策单调性
  • 原文地址:https://www.cnblogs.com/web369/p/4291341.html
Copyright © 2011-2022 走看看