原生js学习笔记(二)

xiaoxiao2021-02-28  44

递增递减操作符

前置型:变量值在语句被求值之前改变;

后置型:递增递减操作是在包含它们的语句被求值之后才执行的。

位操作符

按位非操作:操作数的负值减1,用~表示;

按位与操作:将两个数值(二进制)的每一位对齐,同时为1 时才返回1 ,其余都返回0,用&表示;

按位或操作:同时为0才返回0,其余都返回1,用|表示;

按位异或:只有一个1时才返回1,都是1或者都是0返回0,用^表示;

左移:将数值所有位向左移动指定为主,用<<表示;

有符号的右移:将数值向右移动,单保留符号位,用>>表示;

无符号的右移:将数值的所有32位都向右移动,对于正数与有符号右移相同,对于负数右移后的结果是一个非常大的数。

布尔操作符

逻辑非(!):先将操作数转换成布尔值,然后求其反;

逻辑与(&&):属于短路操作,即如果第一个操作数能确定结果,那么就不会再对第二个操作数求值;

var found = true; var result = (found && someUndefinedVariable); //这里会发生错误 alert(result); //不会执行这一行 var found = false; var result = (found && someUndefinedVariable); //不会发生错误 alert(result); //会执行(false)

逻辑或(||):

var found = true; var result = (found || someUndefinedVariable); //不会发生错误 alert(result); //会执行(true) var found = false; var result = (found || someUndefinedVariable); //这里会发生错误 alert(result); //不会执行这一行

相等操作符

对于相等和不相等——先转换再比较;

对于全等和不全等——仅比较而不转换。

在比较相等性之前,不能将null和undefined转换成其他任何值;这就解释了为什么null == 0 结果为false。

条件操作符

var max = (num1 > num2) ? num1 : num2;

break和continue语句

break语句跳出循环后,继续执行循环后的代码;

continue语句如果出现指定条件,终端这个迭代,继续执行下一个迭代。

var num = 0; for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { if(i == 5 && j == 5){ continue; } num++; } } alert(num); //99,这里只有i和j都为5时num未加1 var num = 0; outermost: for (var i = 0; i < 10; i++) { for (var j = 0; j < 10; j++) { if(i == 5 && j == 5){ continue outermost; //跳出内层循环,从外层循环继续执行 } num++; } } alert(num); //95,这里当i=5时,j=5、6、7、8、9,num都未加1ECMAScript函数不介意传递进多少个参数,也不介意传进参数的数据类型;因为参数在内部是用一个数组表示的。可以通过arguments对象访问每一个参数,例如arguments[0]就是数组中的第一个元素。

转载请注明原文地址: https://www.6miu.com/read-2624709.html

最新回复(0)