源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-02-14 23:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Javascript优化技巧之短路表达式详细介绍
[b]什么是短路表达式?[/b] 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。这是这两个操作符的一个重要属性。 一个最简单的例子:
[u]复制代码[/u] 代码如下:
foo = foo||bar;
这行代码是什么意思?答案:
[u]复制代码[/u] 代码如下:
//如果foo存在,值不变,否则把bar的值赋给foo if(!foo)     foo = bar;
在javascript的逻辑运算中,0、""、null、false、undefined、NaN都会判定为false,而其他都为true。所以在上式的foo = foo||bar;中,||先计算第一个运算数,如果可以被转换成true,也就是表示foo已经存在有值,那么返回左边这个表达式的值,否则计算第二个运算数bar。 另外,即使||运算符的运算数不是布尔值,仍然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值。 当然,使用如下做法会更加严谨:
[u]复制代码[/u] 代码如下:
if(foo)      //不够严谨   if(!!foo)    //更为严谨,!!可将其他类型的值转换为boolean类型
可以测试一下:
[u]复制代码[/u] 代码如下:
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的目的。但是需要注意的是,这样写帮我们精简了代码的同时,也带来了代码可读性的降低的缺点。所以比较好的做好是添加是适当的注释。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部