• js运算符


    算数

    赋值

    比较:

    相等比较运算符(==)和不等比较运算符(!=),再进行比较时,会进行数据类型转换!执行类型转换的规则如下:

    • Numer>Boolean>String>Object

    在比较时,该运算符还遵守下列规则:

    • 在检查相等性时,不能把 null 和 undefined 转换成其他值,值 null 和 undefined 相等,与其他类型均不等
    • NaN ==NaN------->false
    • 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。

    重要提示:即使两个数都是 NaN,等号仍然返回 false,因为根据规则,NaN 不等于 NaN。

    下表列出了一些特殊情况,以及它们的结果:

    表达式
    null == undefined true
    "NaN" == NaN false
    5 == NaN false
    NaN == NaN false
    NaN != NaN true
    false == 0 true
    true == 1 true
    true == 2 false
    undefined == 0 false
    null == 0 false
    "5" == 5 true

    例如:undefined = = 0?1:0  ==>0  

    解析:先比较undefined和0 是否相等,此时进行隐式类型转换(string>number>boolean)undefined-->NaN,    再进行比较,真则返回ture,假返回false

    一个例题:http://caibaojian.com/variable-change.html

    全等号(===)和非全等号(!==)

    全等号比较时不会进行数据类型转化,要类型和大小都相等才返回true

    逻辑运算符都有返回值 :

    1)a||b 返回第一个布尔值为true的变量(后面的变量就不判断了),如果到最后都没有符合条件的,则返回最后一个变量;

    2)a&&b 返回第一个布尔值为false的变量(后面的变量就不判断了),如果到最后都没有符合条件的,则返回最后一个变量;

    3)!a 返回true或false,

    ps:注意逻辑判断符两边的变量可以是任意类型的,也可以是undefined,但是不能是没有被定义的变量!!!否则执行到时会报错。

    条件

    if()、while()、()?a:b、等条件判断语句中,最终都是判断()中的最终值的布尔值!!,即将最终返回值转化为boolean值后再判断是否条件成立

    因为所有的Object类型都会转化 为true,所以if()条件判断语句中,只要对象或者方法,就会判定为真

  • 相关阅读:
    onchange 事件
    JavaScript 声明全局变量和局部变量
    Window 对象 HTML框架标签(Frame)
    HTML DOM Document 对象
    JavaScript 对象
    HTML <frame> 标签的 src 属性
    HTML DOM open() 方法
    数据类型
    python
    angular 在formGroup中失效报错 ngModel cannot be used to register form controls with a parent formGroup directive
  • 原文地址:https://www.cnblogs.com/cui-ting/p/10661975.html
Copyright © 2020-2023  润新知