zoukankan      html  css  js  c++  java
  • Javascript等性运算符

    判断两个变量是否相等是程序设计中非常重要的运算,若是对原始值进行运算,则比较简单,但涉及到对象,则有点复杂.

    ECMAScript提供了两套运算符处理这个问题:

    • 等号和非等号处理原始值
    • 全等号和非全等号处理对象

    1.等号和非等号

    等号由==表示.当且仅当两个运算数相等时,才返回true.

    非等号由!=表示.当且仅当两个运算数不相等时,它返回false.

    为了确定运算数是否相等,这两个运算符都会进行类型转换.类型转换基本规则如下:

    • 如果一个运算数是Boolean值,在检查相等性之前,会把它转换成数字值.true转换为1,false转换为0.
    • 如果一个运算数是数字,另一个运算数是字符串,则尝试将字符串转换为数字.
    • 如果一个运算数是数字,另一个运算数是对象,则尝试将对象转换为数字.
    • 如果一个运算数是字符串,另一个运算数是对象,则尝试将对象转换为字符串.
    • 不能将null和undefined转换成其他类型值.

    运算符在进行比较时,遵循以下规则:

    • 值null与undefined相等
    • 如果某个运算数是NaN,等号返回false,非等号返回true.即使两个运算数都是NaN,等号仍返回false
    • 如果两个运算数都是对象,则比较的是它们的引用值.

    对一些特殊值进行比较,前提代码:

            function display(value){
                document.write(value+"<br/>");
            }
            
            var obj1 = new Object();
            var obj2 = new Object();
            var obj3 = obj1;

    结果:

    比较式 结果
    1=="1" true
    1==false false
    1==true true
    2==true false
    null==undefined true
    1==NaN false
    NaN==NaN false
    NaN!=NaN true
    obj1==obj2 false
    obj1==obj3 true

    2.全等号和非全等号

    全等号由===表示.只有在无需类型转换运算数的情况下,才返回true.

    非全等号由!==表示.

    例子,前提代码:

            function display(value){
                document.write(value+"<br/>");
            }
            
            var obj1 = new Object();
            var obj2 = new Object();
            var obj3 = obj1;

    结果:

    比较式 结果
    1==="1" false
    1===false false
    1===true false
    2===true false
    null===undefined false
    1===NaN false
    NaN===NaN false
    NaN!==NaN true
    obj1===obj2 false
    obj1===obj3 true
  • 相关阅读:
    .Net控件创建热键
    .Net字符串处理
    C++ 中通过函数名字的字符串调用函数
    将.Net应用程序依赖的库文件部署到其他目录下
    VS2012生成事件
    visual studio导出项目模板
    .Net Program Unable to copy a file from objDebug to binDebug
    VBA引用.Net类库
    .Net 自定义事件
    VB.Net 解决winForm界面卡死
  • 原文地址:https://www.cnblogs.com/oneword/p/1631338.html
Copyright © 2011-2022 走看看