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不同类型间比较,==会将两边表达式转化成同一类型后进行比较是否相等,===如果类型不同,不进行转换,结果就是不等。

  • 相关阅读:
    Eclipse安装aptana
    mysql获取下一篇和上一篇文章的ID
    Java回顾之Spring基础
    纯CSS实现各类气球泡泡对话框效果
    百度编辑器ueditor的简单使用
    实施接口
    Java快速教程
    Java GUI程序设计
    JAVA之关于This的用法
    Java 数组基础
  • 原文地址:https://www.cnblogs.com/web369/p/4291341.html
Copyright © 2011-2022 走看看