三 运算规则及运算符

运算规则

“+“    运算 and 字符串连接

"a" + true =  "atrue"

1+1+”a”+“1”+“1” = "2a11"

0 / 0 = NaN     (Number)

0 * 1 = 0

0 / 1 = 0

1 / 0 = Infinity    (Number)

5 % 4 = 1

4 % 6 = 4

var a = 10; var b = ++a - 1 + a++      b = 21;  a = 12        

习题

var a = 123; var b = 234; 把a b 值交换

解法1: 利用中间变量

解法2:

a = a+b;

b = a - b;

a = a - b;


var a = 1;

var b = a-- + --a;

document.write( b );        //  --运算符放前面的优先级比放后面高 , 答案为 0 




arr [ i ] + = 1;


比较运算符

1 > 2      |        "我好美" > "你好美"       |        "a" > "b"    |  "10">"8"   |

true                        true                                   false                false

字符串比较的是ASCII码顺序

var a = 1 == 2;  //false

var a = Infinity ==Infinity;   //true

var a = NaN == NaN;     //false  NaN和任何东西都不想等,包括自身

逻辑运算符

undefined ,null, NaN,  "", 0, false ===> false  (上述六个值转换成布尔值为false)

短路语句&&

var a = 1 && 2;   //    2     如果第一个表达式是真,则返回第二个表达式的运算结果 

var a = 1 && 2 + 2;   //    4    如果第一个表达式是真,则返回第二个表达式的运算结果 

var a = 1 || 2;    //1   如果第一个表达式是假,则返回自身,否则返回下一个为真的表达式的运算结果 

单个的& 是与运算,按二进制与运算(开发中用处不大)

实际开发中的应用:浏览器兼容

 var event = e || window.event;    //后者为非IE浏览器

if ( 1 > 2 ) { document.write( "false" ); }

等价于

1  > 2 && documet.write( "false" );

你可能感兴趣的:(三 运算规则及运算符)