最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:36:13
文档

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

Javascript优化技巧之短路表达式详细介绍_javascript技巧:什么是短路表达式? 短路表达式:作为&&和操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 一个最简单的例子: 代码如下: foo = f
推荐度:
导读Javascript优化技巧之短路表达式详细介绍_javascript技巧:什么是短路表达式? 短路表达式:作为&&和操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 一个最简单的例子: 代码如下: foo = f


什么是短路表达式?

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

一个最简单的例子:

代码如下:
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的目的。但是需要注意的是,这样写帮我们精简了代码的同时,也带来了代码可读性的降低的缺点。所以比较好的做好是添加是适当的注释。

文档

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

Javascript优化技巧之短路表达式详细介绍_javascript技巧:什么是短路表达式? 短路表达式:作为&&和操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 一个最简单的例子: 代码如下: foo = f
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top