今天添加检测代码,还得添加好几套,好蛋疼。

为了省点事,全写在HTML的行间onclick里,为此专门琢磨了一下&&的用法。

一般用&&(除了逻辑判断里),是为了简写if语句,比如:

if(true) {alert(1)}
true && alert(1)

这俩效果是一样的,但是有return就不行了,如下:

(function(){if(true) {return true}})() // 正常
(function(){true && return true})() // 报错 SyntaxError: Unexpected token return
(function(){true && (return true)})() // 报错 SyntaxError: Unexpected token return
(function(){true && {return true}})() // 报错 SyntaxError: Unexpected token true

两个return错误,一个值错误,语法问题,这么写是不正确的,所以有return的时候,还是老老实实的if语句吧。

还有就是有else或else if的,不能用&&,用三目或者switch都行,但是注意switch检测的时候是===全等符,只能检测是true的情况,如下:

switch(true) {
case 1>2:
alert(1);
break;
case 1:
alert(2);
break;
default:
alert(3);
}

只会弹出3,1、2都不会弹出。

然后说一下多个连写的,连续触发多个函数的,如下:

if(true) {
alert(1);
alert(2);
}
true && alert(1),alert(2)
true && (alert(1),alert(2))
true && alert(1) || alert(2)

上面四种写法都能执行,弹出1和2,有返回值,是undefined,这样下面这句话不会执行:

true && alert(1),alert(2) && alert(3)

只会弹出1和2,没有3。

因为 , 这个运算符,返回的是最后一项的值,即上句代码中的 alert(2) 的返回值undefined,所以 alert(3) 没有执行,有两种改法,如下:

true && alert(1),alert(2),true && alert(3)
true && alert(1),alert(2) || alert(3)

都会弹出3来。

还有一种用法忘了说,用在赋值的时候,如下:

true && a = 1
true && (a = 1)

第一种会报错 ReferenceError: Invalid left-hand side in assignment ,要加上小括号,以为前一种 = 会把左边和右边各看成一部分,这样就报错了。

第二种则事将 (a = 1) 小括号看作一部分,然后 = 左a,右1,没有错误,并且返回1。

最后加一句||的,和&&一样,都会将里面的函数执行掉,只不过一个是遇到是true的就停,另一个是遇到是false的就停,要稍微注意下。

Array.prototype.map || Array.prototype.map = function(item, index, arr) {
// blablablabla...
};

通常的ES5功能补全用法。

都是自己瞎琢磨的,有不对之处还望指正!

最新文章

  1. WPF系列 Style
  2. Struts2之提交对象数组至后台
  3. Metro UI 菜单(Winform)
  4. MySql中时间比较的实现
  5. LeetCode——Gas Station
  6. SparkSQL External Datasource简易使用之CSV
  7. string.Equals 比较2个字符串是否相同忽略大小写
  8. Qt on_pushButton_clicked()的用法【worldsing笔记】
  9. web-请求无缓存
  10. Duanxx的Altium Designer学习:PCB试想一下,在目前的水平
  11. Spring.Net-创建对象
  12. Flask 扩展 国际化 本地化
  13. Gazebo機器人仿真學習探索筆記(四)模型編輯
  14. J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析
  15. python并发编程之IO阻塞基础知识点
  16. Dynamics 365 Online-Unified User Interface
  17. 数据库的OLE字段写入长二进制文件
  18. CentOS6—HAProxy安装与配置
  19. nginx做负载均衡时其中一台服务器挂掉宕机时响应速度慢的问题解决
  20. man命令使用

热门文章

  1. HNOI 2016 省队集训日记
  2. Delphi WebService连接数据库
  3. 动态规划——B 最大高度问题
  4. [经典] 在未排序数组中返回topK大的数
  5. E - Currency Exchange
  6. PostgreSQL和GreenPlum数据库的区别
  7. 10款AJAX/CSS/HTML的在线表单生成器
  8. java 服务端解决ajax跨域问题
  9. 从零单排c++ primer(17)
  10. PHP Ctype函数(转)