js 运算符

1.string 和 string 也能够关系运算

字符编码顺序:数字,大写字母,小写字母

'a'<'b' //true

'A'<'B' //true

'A'<'a' //true  大写字母在字符集里面是在小写字母前面

'1'<'A' //true  数字在字母前端

'blank'>'blue' //true

2. 与数字进行关系运算时,纯数字字符串被转换成数字, null 转换为0,true转换为1,false转换为0,null不能进行和0的相等判定

  null <0.00001  //true

  null > -0.0001 //true

  null == 0 //false   object?

  false ==0 //true

 true==1 //true

NAN 不能和自己进行相等运算 不等于自己 不全等于自己

3.逻辑运算符

  && 逻辑与运算 "且"  都真才真

  || 逻辑或运算  "或"   有真就真,都假才假

  ! 逻辑非运算   "非"    相反的

 正统来说,参与逻辑运算的是boolean和Boolean,得到的结果也是Boolean 值按照真值来表定

逻辑运算符的 "短路语法" :  

  如果计算机计算一个且运算时,比如a&&b,当计算机发现a是false时,将不会计算b,直接输出false,

  如果a是true,不管b是什么,直接把b当做结果输出.

  比如: false && 8 --> false , true && 8 -->8  
     null && 8 --> null  因为计算机发现,且运算a已经是false性的了,直接扔出来null

  12&&13 -->13   13&&12 -->12

  当前面的存在 且为正性的话,直接输出后面的内容.

  document.documentElement && document.document.documentElement.clientWidth = "500px";

  实质上计算机进行a&&b运算的时候,不是在进行逻辑分析,要么a,要么b, 如果a是正性的,直接输出b,如果a是负性的,直接扔出a.
                                            ---要么a被短路,要么b被短路啊11

  负性的:false,null,0,NaN ,空字符串(""),undefined

  正性的: 除了上面的,全是正性的.

 || 逻辑或的短路语法也类似. 计算机发现a是真,那么扔a,发现a是假,输出b

4.赋值运算符

    = 赋值 

  += 等价于 先加再赋值

    

  

原文地址:https://www.cnblogs.com/moli-/p/6511761.html