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

为了省点事,全写在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. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  2. SQL:指定名称查不到数据的衍伸~空格 换行符 回车符的批量处理

    异常处理汇总-数据库系列  http://www.cnblogs.com/dunitian/p/4522990.html 先看看啥情况 复制查询到的数据,粘贴一下看看啥情况 那就批量处理一下~ 就这样 ...

  3. Java类访问权限修饰符

    一.概要 通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞.提高安全性.具备表达力便于使用. 二.权限表 修饰符 同一个类 同一个包 不同包的子类 不同包 ...

  4. iOS 方法修饰符

     一.NS_DESIGNATED_INITIALIZER 用来修饰init方法,被修饰的方法称为designated initializer:没有被这个修饰的init方法称为convenience i ...

  5. 怎样在Dos里切换盘符

    一:在Dos里切换盘符 a:在电脑左下角右击显示图片;(我用的是win10系统,其他系统类似) b:点击运行,输入cmd; c:点击确定: d:输入盘符:(如f:) 或F: 只写字母,不写分号是不行的 ...

  6. 杂项之python描述符协议

    杂项之python描述符协议 本节内容 由来 描述符协议概念 类的静态方法及类方法实现原理 类作为装饰器使用 1. 由来 闲来无事去看了看django中的内置分页方法,发现里面用到了类作为装饰器来使用 ...

  7. .NET 基础 一步步 一幕幕[运算符、占位符、转义符]

      运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...

  8. python描述符理解

    Python中的描述符是一个相对底层的概念 descriptor Any object which defines the methods get(), set(), or delete(). Whe ...

  9. C#基础回顾(一)—C#访问修饰符

    一.写在前面的话 好久没有停下来总结自己,转眼间15年过去好些天,回首过去的日子,亦或失去,亦或所得!生活的节奏,常常让我们带着急急忙忙的节奏去追赶,也许这并不是每个人所期望的生活方式!于他人,于自己 ...

  10. 关于Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...

随机推荐

  1. HNOI 2016 省队集训日记

    第一天 DeepDarkFantasy 从东京出发,不久便到一处驿站,写道:日暮里.  ——鲁迅<藤野先生> 定义一个置换的平方为对1~n的序列做两次该置换得到的序列.已知一个置换的平方, ...

  2. hdu 4602 Partition 数学(组合-隔板法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4602 我们可以特判出n<= k的情况. 对于1<= k<n,我们可以等效为n个点排成 ...

  3. 谈谈C#中的接口

    接口的相关陈述 1.一个接口定义了一个契约. 2.接口可以包容方法.C#属性.事件.以及索引器. 3.在一个接口声明中,我们可以声明零个或者多个成员. 4.所有接口成员的默认访问类型都是public. ...

  4. Angular过滤器 自定义及使用方法

    首先设置自定义过滤器. 定义模块名:angular .module('myApp') .filter('filterName',function(){ return function(要过滤的对象,参 ...

  5. Hard 随机选择subset @CareerCup

    算法同上题 package Hard; import CtCILibrary.AssortedMethods; /** * Write a method to randomly generate a ...

  6. 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记

    第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...

  7. Hadoop 的子项目

    Hadoop Common: 在0.20及以前的版本中,包含HDFS.MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Co ...

  8. PreTranslateMessage作用和用法

    PreTranslateMessage作用和用法  PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗体的消息都要通过这里,比較经常使用, ...

  9. 使用XStream注解实现Java对象与XML互相转换的代码示例

    本文记录一下使用xstream这个api的注解特性对Java对象与XML字符串相互转换的一些代码示例.    我们很多人都处理过XML文件,也有很多非常成熟的第三方开源软件.如:jdom.dom4j等 ...

  10. Android 图标右上角添加数字提醒

    方法一:使用开源项目ViewBadger,github上的地址:https://github.com/jgilfelt/android-viewbadger 效果如图所示: <TextView ...