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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
Apr 14 Javascript
Bootstrap table的使用方法
Nov 02 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
Mar 29 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
vue实现侧边栏导航效果
Oct 21 Javascript
Vue 设置axios请求格式为form-data的操作步骤
Oct 29 Javascript
jQuery 实现扁平式小清新导航
Jul 07 jQuery
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 session处理的定制
2009/03/16 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python中二维阵列的变换实例
2014/10/09 Python
Python简单实现控制电脑的方法
2018/01/22 Python
使用pandas读取文件的实现
2019/07/31 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
UDP协议功能
2013/01/06 面试题
文艺晚会策划方案
2014/06/11 职场文书
个人剖析材料范文
2014/09/30 职场文书
职工培训工作总结
2015/08/10 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers