YzzHA 的博客

叩首问路,码梦为生, 记录编程路上的点点滴滴

关于逗号( , )在JS中的使用技巧

第一次写博客,有点紧张,错误的地方大家帮我指导指导 0.0

在变量声明中使用

 var a,b = 3;

我所理解的执行顺序为:

  1. b = 3 
  2. var a = underfind 
  3. var b = 3 
  4. var a = underfind; var b = 3 
Dom:  测试B是否为全局变量
function test(){
  var a,b = 3;
}
test();
b; // b is not defind

function test(){
  var a,b = 3;
  return function(){
     alert(b); // a = underfind
  }
}
test().call(null); // 3

在流程控制语句中

if(a = 3, true) { alert(a) } //  3 

if(a = 3, false) { alert(a) } // no
alert(a) // 3
在上面的例子中,程序先从左至右运行,但是if执行的条件却是根据第二个的boolan值执行,再看一个Dom

var a,b,c = 1;
if(c){  //method1
 b = 1;
 if(b){
   a = 1;
   if(a){
     alert();
   }
 }
}

if(c){  //method2
 if(b=1, c){
   if(a=1, b){
     alert();
   }
 }
}

这两行方法都是等价的,但是可读性却明显不是一个层次,在多重流程控制语句中使用,号是多么舒服

改变运行优先级

alert(3,4)  // 3
alert((3,4)) // 4
这怎么有种 && 短路求值的味道,取最后一个为true的值,即覆盖

在 return 中返回多个值

var a = 3
   ,b = 4;
console.log((function(){ return b = 5,b })()) // 等价于  b = 5; return b

相当于将两个单独的语句合并成一句,可读性更高

再找一个JQ源码上面的例子

( w.fn.init = function(){}).prototype = w.fn,q = w(r) // w.fn;q 也是等价的


未完待续......


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

关于逗号( , )在JS中的使用技巧

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭