JS:i++和++i 有关问题?

JavaScript013

JS:i++和++i 有关问题?,第1张

++i和i++区别在于运算顺序和结合方向。

js中有两种自加运算,其运算符均为++,功能为将运算符自加1.

其中:

++VAR被称为前自加,其后面的变量执行自加操作,其运算为,先执行自加操作,再引用VAR值。

VAR++被称为后自加,其前面的变量执行自加操作,其运算为,先引用VAR值,再进行自加操作。

如果自加语句独立成为一个单独的语句,那么前后自加是完全相同的。

比如单独的一行

a++和++a是一样的。

再比如,常见的for循环:

for(i = 0i <100i ++)

for(i = 0i <100++i)

这里用到的++i和i++是完全相同的,没有区别。

当运算变量本身值会在自加语句中,同时执行其它操作,二者就有区别了。

比如

var i =0

while(i++<10)

i会先和10比较大小,然后执行自加。这样当i=10时,退出循环,再执行一次自加,退出后i值为11。

而如果写成

while(++i<10)

是先执行自加,然后再与10比较。这样在i=9时,先自加,得到i=10,然后比较就会退出循环了。这种情况下,退出后i值为10。

再举一个例子。

var a, i = 10

a = i ++//这里i要先赋值,再自加。语句执行后a=10, i = 11

而如果写成:

var a, i = 10

a = ++i//这里i要先自加,再赋值。语句执行后a=11, i = 11

&:逻辑与,&&同样可以表示逻辑与;

||:逻辑或,|也可以表示逻辑或;

===:先判断左右两边的数据类型,如果数据类型不一致,直接返回false;

!:逻辑非;

++:自加符号,在原有的基础上加上1;

js运算符双竖杠“||”的用法

1、JS双竖线运算符:是或比较。如null||‘1’,返回’1’‘2’||‘1’,返回’2’。即或运算符中,第一个为真,后面的就不用计算了,所以得’2’。

2、js 中 使用双竖线运算符"||",返回第一个有效值

var objOne = undefined || 1 || null || new Date()

var objTwo = new Date()

var objThree = objOne || objTwo

alert(objThree.toString())//out put “1”

扩展资料:

1、逻辑运算符&&、 || 和&、| 性能上的比较

逻辑运算符&&|| 中,如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;

如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。而&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。

2、功能用法

&&和||只能进行逻辑运算,而&和|除了可以进行"逻辑运算"外,还可以进行位运算。

3、位运算

&和|本是位运算符,之所以可以进行"逻辑运算",是由于JS是无类型的语言、各数据类型可以自由转换这一特性决定的,当用&和|进行"逻辑运算"时,实际上true被转换成1,false被转换成0,再进行逐位运算:

document.write(true &false)//JS,结果为0

有。自增操作符放在操作数的前面,会把操作数加1之后的值作为返回值,自增操作符放在操作数的后面,会把操作数加1之前的值作为返回值。JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。