`

js 逗号运算符和括号运算符的使用和闭包的理解

 
阅读更多

 

一 、逗号运算符使用,逗号隔开的表达式各自运算,结果为最后一个表达式结果

二、括号运算符的2个作用: 1)强制表达式运算 2)执行函数 

 

 1 逗号运算符 

 

//逗号运算符,逗号隔开的表达式分别运算,但整个表达式的值是最后一个 
console.log( (1, 2, 3) );   //结果为3
//这个第一个括号的表达式值位alert,连接("执行了alert方法!") 则表示执行alert方法
console.log( (1, 2, 3, alert )("执行了alert方法!")  );  //第一个括号结果为alert 
 
console.log( [1,2,3][1] ); //返回值为2 ,第二个括号变成了索引功能 
console.log( [1,2,3][1,0]);//返回值位1 ,第二个括号用逗号运算符计算为0,然后起索引功能,第一个[]为数组,取数组第0个,最后结果为1 

 

2 括号运算符理解 

  1) json的转换

var json = strToJson(testJson );
alert(json);
function strToJson(str){  
    // eval 中字符串两旁加了      强制运算符()  
    var json = eval('(' + str + ')');   
    console.log(typeof json );
    return json;  
}

  2)闭包的使用 

   

//1 解释括号作用: 下面函数第一个()中为函数变量,第一个小括号的作用是强制表达式运算,第二个小括号作用是执行函数,是把第一个小括号中返回的函数执行,并且传递参数进入函数
//2 闭包函数作用 1)变量的封装,这个例子中的方法在闭包外面是调用不到的 

//deluser();  这种方法无法调用,为了测试闭包内部的访问范围
;(function(w,j){
	console.log( "11111111=="+w +"   ==  "+j );
    function deluser(){
    	console.log( "3333333"+ "   ==  "+jQuery);
    }
})(window, jQuery);


//下面是闭包的两种写法, 个人不知道具体有什么本质区别,有高手可以指点一下多谢
var res1 = (function(){
	 var k;
	 return 1;
})();
console.log("括号在外面的自调用函数1=="+res1 );

var res2 = (function(){
	 return alert; 
}()) 
console.log("括号在外面的自调用函数2=="+res2 );


 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics