javascript中关于&& 和 || 表达式的小技巧分享

 更新时间:2015年04月10日 09:19:43   投稿:hebedich  
我将会介绍和解析12个简单但是强大的JavaScript技巧. 这些技巧所有的JavaScript程序员都可以马上使用, 你不需要成为JavaScript高手才能理解这些.下面我们开始本系列的第一篇文章,介绍下强大的&& 和 || 表达式

如果你还是新手, 而且读完所有这些技巧的详解和每种技巧是如果工作的以后运用它们, 你会写出更加简练高效的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插件

    这篇文章主要介绍了创建与框架无关的JavaScript插件,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下
    2020-12-12
  • bootstrap快速制作后台界面

    bootstrap快速制作后台界面

    这篇文章主要为大家详细介绍了如何利用bootstrap快速制作后台界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • javascript强制弹出新窗口实现代码

    javascript强制弹出新窗口实现代码

    javascript强制弹出新窗口,主要是利用的动态创建链接。
    2009-12-12
  • 解决layui页面按钮点击无反应,也不报错的问题

    解决layui页面按钮点击无反应,也不报错的问题

    今天小编就为大家分享一篇解决layui页面按钮点击无反应,也不报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 给事件响应函数传参数的四种方式小结

    给事件响应函数传参数的四种方式小结

    这篇文章主要介绍了给事件响应函数传参数的四种方式。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • eval(function(p,a,c,k,e,d)系列解密javascript程序

    eval(function(p,a,c,k,e,d)系列解密javascript程序

    在网上下载源代码时,很可能发现代码里的JS脚本看不懂,这是由于JS加密造成的。如果你发现JS是以eval(function(p,a,c,k,e,r){e=function(c)开头的,看到这个页面你就可以解决他
    2007-04-04
  • 微信小程序prettier 格式化的配置方法

    微信小程序prettier 格式化的配置方法

    文章介绍了如何在微信小程序中安装和配置Prettier插件,以实现代码格式化,通过在开发者工具的设置中添加配置,并在项目根目录创建`.prettierrc`文件,可以自定义格式化规则,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • JS中‘hello’与new String(‘hello’)引出的问题详解

    JS中‘hello’与new String(‘hello’)引出的问题详解

    这篇文章主要给大家介绍了关于JS中'hello'与new String('hello')引出的问题的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-08-08
  • JS实现电影票选座的项目示例

    JS实现电影票选座的项目示例

    电影院选座基本上每个人都用到过,本文主要介绍了JS实现电影票选座的项目示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • js实现数字每三位加逗号的方法

    js实现数字每三位加逗号的方法

    这篇文章主要介绍了js实现数字每三位加逗号的方法,以实例形式讲述了js实现数字每三位加逗号的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02

最新评论