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 相关文章推荐
通用javascript脚本函数库 方便开发
Oct 13 Javascript
IE Firefox 使用自定义标签的区别
Oct 15 Javascript
javascript天然的迭代器
Oct 29 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
jQuery实战之品牌展示列表效果
Apr 10 Javascript
jquery限定文本框只能输入数字即整数和小数
Nov 29 Javascript
手机号码,密码正则验证
Sep 04 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
纯前端JavaScript实现Excel IO案例分享
Aug 26 Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
Node+OCR实现图像文字识别功能
Nov 26 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
让你的网站首页自动选择语言转跳
2006/12/06 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
关于PHP开发的9条建议
2015/07/27 PHP
ThinkPHP连接Oracle数据库
2016/04/22 PHP
php技巧小结【推荐】
2017/01/19 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
斜45度寻路实现函数
2009/08/20 Javascript
页面版文本框智能提示JS代码
2009/11/20 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
layui分页效果实现代码
2017/05/19 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
2014/11/18 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python3图片文件批量重命名处理
2019/10/31 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Europcar比利时:租车
2019/08/26 全球购物
大学生收银员求职信分享
2014/01/02 职场文书
倡议书格式
2014/04/14 职场文书
投资合作协议书
2014/04/17 职场文书
施工工地安全标语
2014/06/07 职场文书
教师求职简历自我评价
2015/03/10 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
2015年行政执法工作总结
2015/05/23 职场文书
大学运动会通讯稿
2015/07/18 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书