一、","
先看外面的括号(优先级高),然后返回,后面的值
var x = (1,2);
console.log(x); // 2
var f = (
function f() {
return "1";
},
function g() {
return 2;
}
)(); //f是函数g()执行后的返回值,所以f是2
console.log(typeof f); // number
二、立即执行函数实例
1.
var x = 1;
if (function f() {}) {
x += typeof f;
}
console.log(x); //1undefined
f函数外加括号, 已经变成函数表达式, 不再是函数声明, f已经成为undefined;
2.
2.1
function foo(x) {
console.log(arguments);
}()
报错语法错误,只有函数表达式才可以被执行
2.2
function foo(x) {
console.log(arguments);
}(1,2,3,4,5)
2.2的理解
function foo(x) {
console.log(arguments);
}
(1,2,3,4,5)
可以理解为分家了 不执行也不报错
3.
var test = function () {
console.log('a');
}();
在控制台访问test --> undefined,执行完后立即销毁