当前位置: 首页 > 编程笔记 >

Javascript优化技巧之短路表达式详细介绍

侯和惬
2023-03-14
本文向大家介绍Javascript优化技巧之短路表达式详细介绍,包括了Javascript优化技巧之短路表达式详细介绍的使用技巧和注意事项,需要的朋友参考一下

什么是短路表达式?

短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。

一个最简单的例子:


foo = foo||bar;

这行代码是什么意思?答案:


//如果foo存在,值不变,否则把bar的值赋给foo

if(!foo)

    foo = bar;

在javascript的逻辑运算中,0、""、null、false、undefined、NaN都会判定为false,而其他都为true。所以在上式的foo = foo||bar;中,||先计算第一个运算数,如果可以被转换成true,也就是表示foo已经存在有值,那么返回左边这个表达式的值,否则计算第二个运算数bar。

另外,即使||运算符的运算数不是布尔值,仍然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值。

当然,使用如下做法会更加严谨:


if(foo)      //不够严谨

 

if(!!foo)    //更为严谨,!!可将其他类型的值转换为boolean类型

可以测试一下:


var foo;

var number = 1;

var string = "string";

var obj = {};

var arr = [];

 

 

console.log(typeof(foo));  // undefined

console.log(typeof(number));  //number

console.log(typeof(string));  //string

console.log(typeof(obj));  //object  

console.log(typeof(arr));  //object

 

console.log(typeof(!!foo));  // boolean

console.log(typeof(!!number));  //boolean

console.log(typeof(!!string));  //boolean

console.log(typeof(!!obj));  //boolean

console.log(typeof(!!arr));  //boolean

利用这一点可以很好的符合,优化javascript工程一文中提到的,使脚本少运行或者不运行,以达到优化javascript的目的。但是需要注意的是,这样写帮我们精简了代码的同时,也带来了代码可读性的降低的缺点。所以比较好的做好是添加是适当的注释。

 类似资料:
  • 本文向大家介绍正则表达式优化JSON字符串的技巧,包括了正则表达式优化JSON字符串的技巧的使用技巧和注意事项,需要的朋友参考一下 json字符串很有用,有时候一些后台接口返回的信息是字符串格式的,可读性很差,这个时候要是有个可以格式化并高亮显示json串的方法那就好多了,下面看看一个正则表达式完成的json字符串的格式化与高亮显示 首先是对输入进行转换,如果是对象则转化为规范的json字符串,不

  • 今天,很多网站的 URL 的设计都是有问题的——因为 RESTful。依据 RESTful API 原则,我们设计出来的 API 的 URL 都会有这样那样的缺陷。 在过去的几年里,搜索引擎的影响力发生了一些变化——其影响力的趋势是逐渐变弱。应用程序已经变成了流量的一个大入口,当然搜索引擎也还是一个大的 入口。搜索引擎优化看上去并没有那么重要,企业靠活动、运营来挖掘新的用户。可当所有的人不重视,而

  • 本文向大家介绍详细介绍Ruby中的正则表达式,包括了详细介绍Ruby中的正则表达式的使用技巧和注意事项,需要的朋友参考一下 正则表达式是一种特殊序列的字符,它通过使用有专门语法的模式来匹配或查找其他字符串或字符串集合。 语法 正则表达式从字面上看是一种介于斜杠之间或介于跟在 %r 后的任意分隔符之间的模式,如下所示: 这将产生以下结果: 正则表达式修饰符 正则表达式从字面上看可能包含一个可选的修饰

  • 本文向大家介绍JavaScript正则表达式解析URL的技巧,包括了JavaScript正则表达式解析URL的技巧的使用技巧和注意事项,需要的朋友参考一下 正则表达式是一个描述字符模式的对象。 首先,此片文章并不是直接告诉你,url的正则表达式是什么,以及怎么使用这个正则表达式去解析一个URL地址,相信这种问题在网络上已经能找到很多。本文的宗旨在于教你如何理解URL的正则表达式,以达到理解正则表达

  • 本文向大家介绍python正则表达式re模块详细介绍,包括了python正则表达式re模块详细介绍的使用技巧和注意事项,需要的朋友参考一下 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮。 正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊

  • 本文向大家介绍Mysql优化技巧之Limit查询的优化分析,包括了Mysql优化技巧之Limit查询的优化分析的使用技巧和注意事项,需要的朋友参考一下 前言 在实际业务中对于分页来说是一个比较常见的业务需求。那么就会使用到limit查询,当我们在使用Limit查询的时候,在数据比较小、或者只查询前面一部分数据的时候效率是很高的。但是当数据量大的时候,或者查询offset数量比较大的时候,如:lim