二元操作符又叫二元逻辑运算符,是典型的基于boolean(逻辑)值的运算,他们返回的是boolean值。
二元运算符主要包括:
注:&&优先级高于 ||
二元布尔操作符是可进行短路操作的,只有再必要的时候才会计算到最后一项.
三元操作符又叫条件运算符,它将两个结果中其中一个符合运算逻辑的值返回。
三元运算符一般用于替代if条件判断语句。
操作符始终写在前一行,以免分号的隐式插入产生预想不到的问题,正确的书写方式如下所示:
https://www.w3cschool.cn/webdevelopment/jpbfrozt.html
+rad作用是把输入的字符串转换为数值,比如输入a,就会转为0 ===是绝对等于,比如输入a被转为0,就不绝对等于0,那么三元运算符?就不成立,而是:+rad||false +rad||false就是如果+rad不等于0,就取+rad,否则去falsefor (var i = 0 i < nodes1.length i++) {if (nodes1[i].nodeName == "P" && nodes1[i].nodeType == 1) {
if(i%2==0){
nodes1[i].style.backgroundColor = "yellow"
}else{
nodes1[i].style.backgroundColor = "red"
}
}
}
if(){}else{} 是语句,是没有返回值的,而三元表达式则是表达式,是可以直接赋值的。所以你不能想当然就这么用。
如果你真想获得类似三元表达式的效果,可以这样:
for (var i = 0 i < nodes1.length i++) {if (nodes1[i].nodeName == "P" && nodes1[i].nodeType == 1) {
nodes1[i].style.backgroundColor = function(){
if(i%2==0){ //把if语句放入一个匿名函数中
return "yellow"
}else{
return "red"
}
}() //立即执行这个匿名函数
}
}