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实现面向对象类的功能书写技巧
Mar 07 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
jquery动态改变form属性提交表单
Jun 03 Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
解决jquery无法找到其他父级子集问题的方法
May 10 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
移动端使用localResizeIMG4压缩图片
Apr 22 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 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 include,include_once,require,require_once
2008/09/05 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
python的re模块应用实例
2014/09/26 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
python实现爬虫下载美女图片
2015/07/14 Python
python魔法方法-自定义序列详解
2016/07/21 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
Python try except else使用详解
2021/01/12 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
绿色环保倡议书
2015/04/28 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
Pygame Time时间控制的具体使用详解
2021/11/17 Python