JavaScript中的操作符

1.算数操作符(=、+、+=、-、-=)

=:赋值操作符(从右向左赋值)

  • eg: var a=10;

+:(以+为例)

a+b:

1.a、b均为Number,直接相加

eg:

2.如果两个变量均为非Number类型,并且均不为String类型,也不为object类型(null、undefined、boolean-),直接转换为Number类型进行相加

eg:

3.如果其中一个值为String类型,另一个为Number,直接进行字符串拼接

eg:

4.如果一方为object类型,另一方不为String类型

  • 默认情况下调用toString()     --->返回值为[object  object]类型
    • eg:
  • 如果只重写了toString(),调用toString()
    • eg:
    •  输出的sum值为20,说明调用了toString,返回10,然后sum值10+10=20
  • 如果只重写了valueOf(),调用valueOf()
    • eg:
    • 输出的sum值为40,说明调用了valueOf(),valueOf返回30,sum值为10+30=40
  • 如果既重写了toString,又重写了valueOf,调用valueOf()
    • eg:

2.比较操作符(>、>=、<、<=、==、===)

  • 返回值均为Boolean类型

>:     例如 a、b进行比较:

1.如果双方都为Number类型,直接进行比较

2.如果一方为Number类型,另一方为非Number数据类型(不为string),那么将非Number转换为Number进行比较

3.如果均为非Number类型,都转换为Number类型比较

  • 如果两个均为非Number类型中的String类型,比较字符编码
  • 如果一方为Number类型,另一方为object
    • 默认情况下调用tostring()
    • 如果只重写了tostring(),调用tostring()
    • 如果只重写了valueof(),调用valueof()
    • 如果既重写了tostring,又重写了valueof,调用valueof()

==:

1.同上述情况一样

2. obj==obj(比较引用地址)

  • 先进行数据类型转换,再比较 值
  • "10"==10 //true
  • 直接测试:console.log("10"==10);   -->true

===:全等操作符

  • 先进行数据类型的比较,数据类型相同,再比较值
  • 如果数据类型不同,直接返回false
    • eg:
    • obj===obj  ----> 比较引用地址是否相同

3.逻辑运算符

  • &&: 逻辑 与
    • 规则: a&&b:
    • 不是说a&&b为true、flase,(在if条件语句中需要boolean)
      • 转为Boolean的结论:同真才真,有假则假
        • 1.如果第一个数为 flase、""、null、undefined、nan能够转换为flase的值,则返回第一个数
        • 2.如果第一个数不返回false,则返回第二个数
        • if(a&&b){ }
  • | |:逻辑 或
    • 结论:有真则真,同假才假
      • 1.如果第一个数为 flase、""、null、undefined、nan能够转换为flase的值,则返回第二个数
      • 2.如果第一个数不为上述值,返回第一个数
  • !:逻辑 非
    • !null
      • 1.先将null转换为Boolean       //Boolean()转换函数
      • 2.取反
      • 结果一定为Boolean类型
        • eg:console.log();

  注:对一个变量连用两次逻辑非,相当于(直接调用Boolean()转换函数)将当前变量转换为boolean类型

  • !!null ---》flase

4.三目运算符

  • 表达式(转为boolean值判断)?成立:不成立
    • 表达式?true:false
    • a>b? console.log(a):console.log(b)
  • 等同于条件分支语句

5.一元操作符

  • +(使用在变量之前)
    • +a:相当于调用了Number(a)
    • eg:
  • -
    • -a
      • -(+a) :相当于 - Number(a)
  • ++
    • a++:a=a+1
      • 先进行变量操作,再进行++操作
        • eg1:
    • ++a:a=a+1
      • 先进行++操作,再进行变量操作
        • eg2:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值