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
  • 相关阅读:
    Python数据分析入门
    非常干货之Python资源大全
    机器学习实战笔记之非均衡分类问题
    2^x mod n = 1 【杭电-HDOJ-1395】 附题
    android学习--视图列表(ListView和ListActivity)
    C++第13周(春)项目1
    多个线程怎样操作同一个epoll fd
    UVA
    自己定义progressdialog,改善用户体验
    总结个人项目设计保障5大原则
  • 原文地址:https://www.cnblogs.com/oneword/p/1631338.html
Copyright © 2011-2022 走看看