1.后置递增和递减与前置递增和递减有一个非常重要的区别,即递增和递减操作是包含他们的语句被求值之后才执行;
例如:
var num1 = 2; var num2 = 20; var num3 = num1-- + num2 //22 var num4 = num1 + num2 //21
递增递减不仅适合于证书,还可以应用于字符串、布尔值、浮点数和对象
①.在应用于一个包含有效数字的字符串时,将变量转化为树脂字,在执行加减操作,字符串变成数字变量;
②.在应用于一个不包含数字字符串时,将变量的值设置为NaN,字符串变为数字变量;
③.在应用于布尔值false,先将其转换为0再执行
④.在应用于对象时,先调用valueof()方法
2.按位非(~)
var num1=25; var num2=~num1; alert(num2) //-25
3.逻辑非
alert(!false); => true alert(!"blue"); => false alert(!0); => true alert(!NaN); => true alert(!""); => true alert(!132344); => false
4.逻辑与(&&)
①.如果第一个操作数是对象,则返回第二个操作数
②.如果第二个数是对象,则只有第一个操作数的求值结果为true的情况下才会返回该对象
③.如果两个操作数都是对象,则返回第二个操作数
④.如果第一个操作数是NaN,则返回NaN
⑤.如果第一个操作数是undefined,则返回undefined
5.逻辑或(||)
①.如果第一个是对象,则返回第一个操作数
②.如果第一个操作数的求值结果为false,则返回第二个操作数
③.如果两个操作数都是对象,则返回第一个操作数
④.如果两个操作数都是NaN,则返回NaN
⑤.如果两个操作数都是null,则返回null
⑥.如果两个操作数都是undefined,则返回undefined
6.除法(-)
①.如果有一个操作数是NaN,则结果是NaN
②.如果是Infinity被Infinity除,结果是NaN
③.如果是零被零除,则返回NaN
④.如果是非零的有限数被零除,则结果是Infinity或-Infinity,取决于有符号操作数的符号
⑤.如果是infinity被任何非零数值除,结果是Infinity或-Infinity,取决于符号操作数的符号
7.模(%)
①.如果被除数是无穷大值,而除数是有限大的,则NaN
②.如果被除数是优先打的而除数是0.则NaN
③.如果是Infinity 被Infinity除则NaN
④.如果被除数是有限大的,而除数是无线大,则是被除数
⑤.如果被除数是零,则结果0
⑥.如果有一个操作数不是数值,则在后台调用Number()转化为数值,然后再应用规则
8.加性操作符
①.如果一个操作数是NaN =>NaN
②.如果Infinity加Infinity,则结果是Infinity
③.如果-Infinity加-Infinity ,则-Infinity
④.Infinity 加-Infinity =>NaN
⑤.+0 加 +0 => +0
⑥.-0 加-0 =>-0
⑦.+0 加-0 =>+0
9.减法
①.如果有一个操作数是NaN,则结果是NaN
②.如果是Infinity减Infinity,则结果是NaN
③.如果是-infinity j减-Infinity,则结果是NaN
④.如果是Infinity 减-Infinity =>Infinity
⑤.如果是-infinity 减Infinity =>-Infinity
⑥.+0 减 +0 =>+0
⑦.-0 减+0 => -0
⑧.-0减-0 => +0
⑨.如果有一个操作数是对象,则调用valueof()方法,以取得表示该对象的数值,如果的到的是NaN则减法的结果就是NaN
var result1=5-true //4 var result2=NaN-1 //NaN var result3=3-2 //1 var result4=5-"" //5 var result5=5-"2" //3 var result6=5-null //5