js对象属性赋值时,可以用三元表达式为什么不能用if(){}else{}

JavaScript017

js对象属性赋值时,可以用三元表达式为什么不能用if(){}else{},第1张

for (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"

            }

        }()  //立即执行这个匿名函数

    }

}

%   + - * /

% 取余 两个数相除的余数。

++ 自增运算,自增为1,++在前是在自身先加1后进行赋值,如

var a=5;

var b=++a;

所以a自身加1后给b赋值,结果即为a=5;b=5;

++在后是先赋值后再自身加1,已赋值不会受到影响, 如

var a=5;

var b=a++;

a先给b赋值后在自身加1,5+1=6,所以结果是 a=6;b=5;

-- 自减运算,减量为1,

--在前先自身减1后赋值

--在后先赋值后自身减1,

关系运算符

<   >   <=    >=    !=    !==    ==    ===

==只判断数值是否相等,不判断类型。

===既判断数值也判断类型

!=只判断数值是不相等,不判断类型。

!==既判断数值也判断类型

逻辑运算符

&&与   必须同时满足条件才是true,有一不满足就是false。

||或    满足一个条件就是true

!非  取反 

                                                                心态良好

运算符是完成操作的一系列符号,在javascript中有赋值去运算符,算术运算符,字符串去处符,逻辑运算符,比较运算符,条件运算符及位运算符,(其中位去处符几乎很少用到,也已超出我们介绍的内容).

1.赋值运算符

赋值运算符通常被用于在一个表达式中进行赋值,如example="this

is

a

book"其中"="就是一个赋值运算符.

2.算术运算符

javascript中的算术运算符有双目运算符和单目运算符.

标准的双目运算符有五种:+(加),-(减),*(乘),/(除),%(取模)

3.比较运算符

比较运算符的基本操作过程是,首先对它的操作数进行比较,然后再返回一个true或false值.

4.逻辑运算符

主要将布尔值作为操作数,而且同比较去处符一样,也返回布尔值.

5.字符串运算符

字符串运算符为+,主要用于两个字符串的组合,例如"this

is

"+"book"

//结果为"this

is

book"

6.条件运算符

条件运算符与前面介绍过的运算符有所不同,因为条件表达式会根据条件计算出一个或两个不同的值,其结构为(条件)?结果1:结果2。望采纳。