原生js学习笔记(二)

递增递减操作符

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

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


位操作符

按位非操作:操作数的负值减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都未加1
ECMAScript函数不介意传递进多少个参数,也不介意传进参数的数据类型;因为参数在内部是用一个数组表示的。可以通过arguments对象访问每一个参数,例如arguments[0]就是数组中的第一个元素。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值