运算规则
“+“ 运算 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" );
网友评论