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 相关文章推荐
js cookies 常见网页木马挂马代码 24小时只加载一次
Apr 13 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
javascript动态创建表格及添加数据实例详解
May 13 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
Jun 25 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
微信小程序 条件渲染详解
Oct 09 Javascript
js生成随机数方法和实例
Jan 17 Javascript
在vue中使用jointjs的方法
Mar 24 Javascript
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
JavaScript日期工具类DateUtils定义与用法示例
Sep 03 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
微信小程序实现点击按钮后修改颜色
Dec 05 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记录产品id,id取得产品信息
2011/05/04 PHP
PHP源码分析之变量的存储过程分解
2014/07/03 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
JavaScript面向对象编程
2008/03/02 Javascript
javascript 函数使用说明
2010/04/07 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
vuex存储token示例
2019/11/11 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
Python多线程编程(一):threading模块综述
2015/04/05 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
python实现键盘控制鼠标移动
2020/11/27 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
群胜软件Java笔试题
2012/09/29 面试题
养殖项目策划书范文
2014/01/13 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
安阳殷墟导游词
2015/02/10 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Go语言中的UTF-8实现
2021/04/26 Golang