js短路表达式】的更多相关文章

今天碰见个题目,感觉短路表达式很好用. 题目: 定义一个计算圆面积的函数area_of_circle(),它有两个参数: r: 表示圆的半径: pi: 表示π的值,如果不传,则默认3.14 function area_of_circle(r, pi) { } 我的写法: if(arguments.length>=2) { return pi*r*r; } else if(arguments.length==1) { return 3.14*r*r; } else return false; 别人…
什么是短路表达式? 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值.这是这两个操作符的一个重要属性. 一个最简单的例子: foo = foo||bar; 这行代码是什么意思?答案: //如果foo存在,值不变,否则把bar的值赋给foo if(!foo) foo = bar; 在javascript的逻辑运算中,0."".nul…
switch 这种表达式在很多语言中都有,比如java, C等待, 使用switch比使用if else 来得方便,来得清晰.  前言 switch 这种表达式在很多语言中都有,比如java, C等待, 使用switch比使用if else 来得方便,来得清晰.  使用语法很简单:  switch(n)  {  case 1:  执行代码块 1  break;  case 2:  执行代码块 2  break;  default:  n 与 case 1 和 case 2 不同时执行的代码  }…
短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值.这是这两个操作符的一个重要属性. 代码: // || (如果a有值则取a,反之取b) var foo = a || b; // 相当于 if (a) { foo = a; } else { foo = b; } // && (如果a有值则取b,反之取a) var bar = a &am…
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function foo() { // <-- 添加这一行 var a = 3; console.log( a ); // 3 } // <-- 以及这一行 foo(); // <-- 以及这一行 console.log( a ); // 2 虽然这种技术可以解决一些问题,但是它并不理想,因为会导致一些额外的…
在js中的某些场景,","是一种运算符号,只不过他的优先级要低于普通的原酸符,在变量声明或者return中,经常看到逗号表达式. 声明变量: var a=1,b=2,c=3; console.log(a,b,c) 输出:1,2,3 变量赋值: var a=1,b=2; var c=(a++),3; console.log(c); 输出:3 return返回值: var a=1; var fn = function(){ return a++,a }; console.log(fn())…
今天在看lodash的源码中slice这个函数实现的时候发现了里面有这么一行代码 length = start > end ? 0 : ((end - start) >>> 0) start >>>= 0 当时就很疑惑,知道 >>是移位,那>>>又是什么鬼,还有移位0位又有什么意义呢,带着强烈的好奇心,我就去探究了一下 >>> 0它到底暗藏什么玄机. >> 和 >>>有什么不一样 查了M…
JavaScript三元运算符的多种使用技巧 发现代码慢慢写多了的时候会不自觉的将if else 用 三元来替代,仅仅是未了让代码更简洁精辟,当然也有人说用三元可以让你有高潮的感觉.最近在写js 的时候也有这样的感觉,并且收集了一些小技巧,分享分享. 大鸟请跳过下面这段,大大鸟帮忙指正 ^__^ ====普及线==== 表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3.…
js代码的形式: 1.直接量 2.表达式 3.语句 1; "a"; true; null; var a; function fn(){}; b; var c = 20; var fm = function(){}; 1.数组初始化表达式 2.对象初始化表达式 3.成员访问表达式 4.调用表达式 var arr = [1,2,3,function fn() {}]; arr[0]; //访问成员 var arr = new Array(); //创建一个新数组 arr[3](); //调…
上一篇写到了jQuery插件的3种类型,介绍了第一种类型的写法--封装jQuery对象的方法插件.这一篇要介绍第二种插件类型:封装全局函数的插件:这类插件就是在jQuery命名空间内部添加函数:这类插件就是普通的函数,没有什么特别的地方.既然普通+无特点...那这篇还要讲什么呢,忧思辗转呢. 那就先开始讲解第二类插件吧,记得上面讲过,所有的插件都放在下面的一段代码之内: ; (function ($) { //编写代码 })(jQuery); 封装全局函数的插件实现的通过$.extend();方…