javascript中关于&& 和 || 表达式的小技巧分享


Posted in Javascript onApril 10, 2015

如果你还是新手, 而且读完所有这些技巧的详解和每种技巧是如果工作的以后运用它们, 你会写出更加简练高效的JavaScript程序.

确实, JavaScript高手已经运用这些技巧写出了很多强大, 高效的JavaScript程序. 但是你可以这样.

强大的 && 和 || 表达式
你可能在JavaScript库和JavaScript框架中已经见过它们了, 那么我们先由几个基本的例子开始:

例子1. || (或)
设置默认值, 通常用

function documentTitle(theTitle) {

  if (!theTitle) {

 theTitle = "Untitled Document";

  }

}

用这代替:

function documentTitle(theTitle) {

  theTitle = theTitle || "Untitled Document";

}

解析:

首先, 阅读以下的"提示"框复习JavaScript是如何判断布尔值的
|| 操作符首先从左开始判断表达式的真假, 如果为真, 马上返回左边表达式返回的值; 如果左边表达式被判断为假, 则继续判断右边的表达式, 并返回右边表达式的值
如果theTitle被判断为假, 会返回右边表达式的值. 换句话说, 如果theTitle变量被判断为真, 则返回theTitle的值.
! 提示:
JavaScript判断为假的值: null, false, 0, undefined, NaN 和 ""(空字符串).
记住像Infinity(无限大)这种 NaN 类的值是被判断为真不是假. 然而, NaN被判断为假.
除了以上这些, 其他值全部被判断为真.

例子2. &&(并)

不要这么做:

function isAdult(age) {
 if (age && age > 17) {
  return true;
 } else {
  return false;
 }
}

用这代替:

function isAdult(age) {

  return age && age > 17;

}

解析:

&& 操作符从左开始判断表达式, 如果左边的表达式被判断为假, 这马上返回false, 不管右边的表达式是否为真.
如果左边的表达式为真, 则继续判断右边的表达式, 然后返回右边表达式结果
这变得越来越有趣了

例子3.

不要这样做:

if (userName) {
 logIn(userName);
} else {
 signUp();
}

用这代替:

userName && logIn(userName) || signUp();

解析:

如果userName为真, 调用logIn函数并传递userName变量
如果userName为假, 调用logIn函数不传递任何变量

例子4.
不要这样做:

var userID;

if (userName && userName.loggedIn) {
 userID = userName.id;
} else {
 userID = null;
}

用这代替:

var userID = userName && userName.loggedIn && userName.id;

解析:

如果userName为真, 则调用user.loggedIn, 并检查user.loggedIn是否为真; 如果返回真, 则返回第三个表达式的返回值
如果userName为空, 返回null

以上所述就是本文给大家分享的第一个javascript小技巧了,希望大家能够喜欢。

Javascript 相关文章推荐
强大的jquery插件jqeuryUI做网页对话框效果!简单
Apr 14 Javascript
js如何打印object对象
Oct 16 Javascript
JS实现DIV容器赋值的方法
Dec 14 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
js解决软键盘遮挡输入框的问题分享
Dec 19 Javascript
使用proxy实现一个更优雅的vue【推荐】
Jun 19 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
Mar 06 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
简单了解JavaScript arguement原理及作用
May 28 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 Javascript
js简单的点击返回顶部效果实现方法
Apr 10 #Javascript
浅谈JavaScript正则表达式分组匹配
Apr 10 #Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 #Javascript
JavaScript 变量、作用域及内存
Apr 08 #Javascript
JavaScript Function函数类型介绍
Apr 08 #Javascript
JavaScript 模块化编程(笔记)
Apr 08 #Javascript
JavaScript DOM事件(笔记)
Apr 08 #Javascript
You might like
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
经管应届生求职信
2013/11/17 职场文书
经典禁毒标语
2014/06/16 职场文书
员工生日活动方案
2014/08/24 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
依法行政工作汇报
2014/10/28 职场文书
小学副班长竞选稿
2015/11/21 职场文书
六年级作文之预言作文
2019/10/25 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
Python如何将list中的string转换为int
2022/07/15 Ruby