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 相关文章推荐
学习ExtJS border布局
Oct 08 Javascript
javaScript checkbox 全选/反选及批量删除
Apr 28 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
同步异步动态引入js文件的几种方法总结
Sep 23 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 Javascript
jQuery仿写百度百科的目录树
Jan 03 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
Jan 04 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
Dec 28 Javascript
使用JS实现动态时钟
Mar 12 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实现memcache缓存示例讲解
2013/12/04 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
javascript调试说明
2010/06/07 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
python中scikit-learn机器代码实例
2018/08/05 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
python asyncio 协程库的使用
2021/01/21 Python
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
如何开启linux的ssh服务
2013/06/03 面试题
元旦活动感言
2014/03/08 职场文书
保险经纪人求职信
2014/03/11 职场文书
《金子》教学反思
2014/04/13 职场文书
建材投资建议书
2014/05/16 职场文书
讲党性心得体会
2014/09/03 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
利用JavaScript写一个简单计算器
2021/11/27 Javascript