`
somebody_hjh
  • 浏览: 182320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JS的与或用法

 
阅读更多

查看ECMA规范,我们可以看到关于&& 和 || 如何运算的定义。如下:

lref && rref

 

1.Let lref be the result of evaluating LogicalANDExpression.

2.Let lval be GetValue(lref).

3.If ToBoolean(lval) is false, return lval.

4.Let rref be the result of evaluating BitwiseORExpression.

5.Return GetValue(rref).

 

lref || rref

 

1.Let lref be the result of evaluating LogicalORExpression.

2.Let lval be GetValue(lref).

3.If ToBoolean(lval) is true, return lval.

4.Let rref be the result of evaluating LogicalANDExpression.

5.Return GetValue(rref).

两个我们需要关注的信息

1、&&,||运算符是短路的,在判断lref为false/true的情况,直接return了。

2、返回值不是boolean类型,而是返回lref或者rref之一。

 

 

所以我们可以写出很多这样的表达式:

 

var Yahoo=Yahoo||{}   //用于定义类

var result= "ab"||"cd"   //用于赋值操作,减少if,else的判断

var result= true && "test"  //用于赋值操作,减少if,else的判断

 

这里需要注意,在转换lref的值为boolean的时候,有一些特殊数据的转换有如下规则:

 

+0、-0、""、null、false、undefined、NaN 均会被判断为 false。其余情况均为true。

 

根据以上规则,我们可以写出很多简洁的代码。但是请注意可阅读性和简洁性的平衡。

分享到:
评论

相关推荐

    JavaScript js基础用法 示例代码

    本资源主要是关于js基础用法的示例代码 内容包含了js变量定义 js输入输出 js转义符 js注释和编码规范 JavaScript 是一种广泛使用的脚本语言,主要用于网页和Web应用程序的客户端开发。 JavaScript(简称JS)是一种...

    Web3.js教程:使用JavaScript与区块链交互(含代码示例).md

    使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与区块链交互使用JavaScript与...

    js实现map用法

    JavaScript中的Map对象是ES6引入的一种新的数据结构,它提供了键值对的存储方式,与对象类似但有显著区别。Map的主要优势在于键可以是任意类型,而不仅仅是字符串,这使得它在处理复杂数据结构时非常有用。在本文中...

    js_MD5加密插件附使用方法

    本篇文章将详细介绍如何在JavaScript环境下使用MD5加密插件,并提供具体的使用方法。 首先,我们需要一个JavaScript MD5库。在提供的压缩包中,包含了一个名为"md5-min.js"的文件,这很可能是一个压缩过的MD5实现,...

    JavaScript内置对象相关介绍及用法

    JavaScript内置对象相关介绍及用法ppt JavaScript内置对象相关介绍及用法

    delphi与javascript交互

    8. **Electron框架**:虽然Electron主要使用Node.js,但通过Bridge.NET或其他类似的库,可以实现Delphi与JavaScript的互调。Delphi编译为.NET组件,然后在Electron的Node.js环境中调用。 以上就是Delphi与...

    原生JS打印插件之jQuery.EasyPrint.js使用文档

    原生JS打印插件之jQuery.EasyPrint.js使用文档 调用浏览器自带打印功能,使用JavaScript的 window.print(); 方法。 使用JS实现打印功能;JavaScript 实现打印操作;javascript打印大全;通用;js实现打印的方式;JS...

    jstree用法大集合

    这个文件可能包含了一些特定的JavaScript控制库,可能与`jstree`的扩展或定制有关,提供了更多的功能和自定义选项。 6. **树型菜单.rar** 又一个关于树形菜单的示例集合,可能包含了一些独特的用法和技巧,如动态...

    layer.js用法例子

    在本文中,我们将深入探讨`layer.js`的使用方法,帮助开发者更好地理解和应用这个工具。 ### 1. 安装与引入 首先,你需要下载`layer.js`文件,将其放在项目目录中,并通过HTML中的`<script>`标签引入。例如: ```...

    JS forEach和map方法的用法与区别分析.docx

    然而,它们之间还是有区别的,本文将主要介绍JS forEach和map方法的用法与区分,通过实例形式分析它们的功能、原理、使用方法及相关操作留意事项。 一、前言 forEach()和map()两个方法都是ECMA5中Array引进的新...

    jquery.validate.js校验页面的js与使用方法

    <script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery.js"> <script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery.validate.min.js...

    JS调用C#后台方法

    本文将深入探讨如何使用JavaScript调用C#编写的后台方法,并介绍相关技术与实践。 首先,JavaScript作为客户端脚本语言,运行在用户的浏览器上,而C#通常是服务器端的语言,运行在Web服务器上。要实现它们之间的...

    JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】.docx

    由于 JavaScript 基于安全考虑,不允许直接操作本地文件,因此需要使用插件或其他方式来实现文件保存。基于 FileSaver.js 插件实现保存文件到本地的方法是目前最流行和最可靠的方法之一。 FileSaver.js 插件是一个...

    recorder.js 引用

    recorder.js是一个用于在Web浏览器中进行音频录制的JavaScript库。它允许开发者在网页上添加音频录制功能,让用户能够通过...因此,在使用recorder.js时,建议查阅相关的文档或示例代码,以了解其具体用法和最佳实践。

    C++与js相互调用

    在C++中,可以通过V8的API直接与JavaScript代码交互,执行JS脚本,获取或设置变量值,甚至调用JS函数。 具体步骤包括: 1. 初始化V8环境:创建Isolate实例,这是V8引擎的核心,用于管理内存和执行上下文。 2. 创建...

    jsTree中文文档

    引入jsTree所需的JavaScript和CSS文件到HTML页面中,确保在使用前正确加载jQuery库,因为jsTree是基于jQuery构建的。 ```html <link rel="stylesheet" href="jstree/dist/themes/default/style.css" /> ...

    JavaScript中if语句的基础用法

    JavaScript中if语句的基础用法 适合编程初学者必学的内容

    js 实现 在JavaScript运行VBScript函数

    js 实现 在JavaScript运行VBScript函数! 值得下载看看!资源免费,大家分享!!

    video.js使用常用方法110行demo源程序资源

    《video.js使用常用方法110行demo源程序资源详解》 video.js是一款强大的开源JavaScript和CSS库,专为构建响应式、自定义且功能丰富的HTML5视频播放器而设计。这款播放器提供了丰富的API和插件系统,使得开发者能够...

    retire.js, 扫描仪检测使用已知漏洞的JavaScript库的用法.zip

    retire.js, 扫描仪检测使用已知漏洞的JavaScript库的用法 Retire.js 你所要求的也必须退休Web上和 node.js 应用程序中有大量的JavaScript库供用户使用。 这大大简化了开发,但是我们需要在安全修复方面保持。 在安全...

Global site tag (gtag.js) - Google Analytics