• JavaScript快速入门-ECMAScript运算符


    1、逻辑运算符

    逻辑与:&&(and)

    逻辑或:||(or) 

    逻辑非:!(not)

    逻辑 AND 运算符(&&)

    逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。

    如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

    • 如果某个运算数是 null,返回 null。 
    • 如果某个运算数是 NaN,返回 NaN。 
    • 如果某个运算数是 undefined,返回undefined。 

    逻辑 OR 运算符(||)

    与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:

    • 如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。
    • 如果两个运算数都是对象,返回第一个对象。
    • 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
    • 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
    • 如果某个运算数是 undefined,发生错误。

    与逻辑 AND 运算符一样,逻辑 OR 运算也是简便运算(python中叫“短路运算”)。对于逻辑 OR 运算符来说,如果第一个运算数值为 true,就不再计算第二个运算数。

    与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值

    2、比较运算符

    等于 ( == )  、不等于( != ) 、 大于( > ) 、 小于( < ) 
大于等于(>=) 、小于等于(<=)

    a、比较二者都是数字,则按数字大小比较。24<3  #true

    b、比较二者都是数字,但是有一个是字符串类型,一个是整数类型,则都当数字比较;‘24’<3  #false

    c、比较二者都是字符串(数字),则比较字符代码。比如:‘24’<'3'  #true

    d、比较二者都是字符串(非数字),则依次比较字母的字符代码。比如:‘abc’<'acd' #true

    e、比较二者字符串和数字。比如‘abc’<2  #因为字符串在转换数字的过程中会出现NaN,所以结果为false。

    NaN参与的所有的运算都是false,除了!=

    3、算术运算符

    加(+)、 减(-)、 乘(*) 、除(/) 、余数(% )

    乘(*)

    在处理特殊值时,ECMAScript 中的乘法还有一些特殊行为:

    • 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。
    • 如果某个运算数是 NaN,结果为 NaN。
    • Infinity 乘以 0,结果为 NaN。
    • Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity。
    • Infinity 乘以 Infinity,结果为 Infinity。

    注释:如果运算数是数字,那么执行常规的乘法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。

    除(/)

    与乘法运算符相似,在处理特殊值时,除法运算符也有一些特殊行为:

    • 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity。
    • 如果某个运算数是 NaN,结果为 NaN。
    • Infinity 被 Infinity 除,结果为 NaN。
    • Infinity 被任何数字除,结果为 Infinity。
    • 0 除一个任何非无穷大的数字,结果为 NaN。
    • Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity。

    注释:如果运算数是数字,那么执行常规的除法运算,即两个正数或两个负数为正数,两个运算数符号不同,结果为负数。

    取模(%)

    与其他乘性运算符相似,对于特殊值,取模运算符也有特殊的行为:

    • 如果被除数是 Infinity,或除数是 0,结果为 NaN。
    • Infinity 被 Infinity 除,结果为 NaN。
    • 如果除数是无穷大的数,结果为被除数。
    • 如果被除数为 0,结果为 0。

    注释:如果运算数是数字,那么执行常规的算术除法运算,返回除法运算得到的余数。

    4、赋值运算符(=、==、===)

    • 乘法/赋值(*=)
    • 除法/赋值(/=)
    • 取模/赋值(%=)
    • 加法/赋值(+=)
    • 减法/赋值(-=)
    • 左移/赋值(<<=)
    • 有符号右移/赋值(>>=)
    • 无符号右移/赋值(>>>=)
    a、赋值,var a=123;
    b、=代表赋值,两个等号==表示判断值是否相等
      例如,x=1表示给x赋值为1
      if (x==1){...}程序表示当x与1相等时
      if(x==“on”){…}程序表示当x与“on”相等时
    c、配合其他运算符形成的简化表达式
      例如i+=1相当于i=i+1,x&=y相当于x=x&y
    d、JavaScript中的===,表示值相等,类型也必须相等。

     

    
    
  • 相关阅读:
    使用 RAISERROR
    简单计算 2个日期 相差的 天数 和 小时数
    一个 SQL 分段排序的问题(也可以理解为 段内汇总排序问题)
    清除数据库里面所有用户表的数据
    SQL for xml path 应用 很详细
    mybatis读取配置文件报错:Could not find resource configuration.xml
    Attribute "resource" must be declared for element type "mapper".
    Mac OS X Common Lisp环境配置
    【自己习惯太差】最近看书的总结(1),慢慢改正自己的习惯
    LMS权值更新法则
  • 原文地址:https://www.cnblogs.com/skyflask/p/9027342.html
Copyright © 2020-2023  润新知