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 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
jQuery实现TAB选项卡切换特效简单演示
Mar 04 Javascript
ECMAScript6快速入手攻略
Jul 18 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
解析Json字符串的三种方法日常常用
May 02 Javascript
node基于puppeteer模拟登录抓取页面的实现
May 09 Javascript
vue cli3.0 引入eslint 结合vscode使用
May 27 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用户登录之cookie信息安全分析
2016/05/13 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
关于Python的一些学习总结
2018/05/25 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
介绍一下gcc特性
2015/10/31 面试题
小学安全教育材料
2014/02/17 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
召开会议通知范文
2015/04/15 职场文书
指导老师鉴定意见
2015/06/05 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
Python中的pprint模块
2021/11/27 Python
Java字符串逆序方法详情
2022/03/21 Java/Android
TypeScript 内置高级类型编程示例
2022/09/23 Javascript
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript