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 相关文章推荐
jQuery 技巧大全(新手入门篇)
May 12 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
Feb 08 Javascript
使用jQuery实现动态添加小广告
Jul 11 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
vue.js中$set与数组更新方法
Mar 08 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 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程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
PHP序列化操作方法分析
2016/09/28 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
jQuery中position()方法用法实例
2015/01/16 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python实现神经网络感知器算法
2017/12/20 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
创建文明学校实施方案
2014/03/11 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
聘任书范文大全
2015/09/21 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js