一 、逗号运算符使用,逗号隔开的表达式各自运算,结果为最后一个表达式结果
二、括号运算符的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 );