@songying
2019-10-05T17:16:46.000000Z
字数 937
阅读 1205
JavaScript
function functionname(arg1, ...)
{
...
}
# 匿名函数
var functionname = function(arg1, ...){
...
};
undefined
它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array。
function foo(a, b, ...rest) {
...
}
JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性。
任何变量(函数也视为变量),如果没有在当前函数作用域中找到,就会继续往上查找,最后如果在全局作用域中也没有找到,则报ReferenceError错误。
全局变量会绑定到window上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。
减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。
// 唯一的全局变量MYAPP:
var MYAPP = {};
MYAPP.name = 'myapp';
在for循环等语句块中是无法定义具有局部作用域的变量的, 因此往往将 for 循环中的 var 改为 let
for (let i=0; i<100; i++) {
}
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
carname="Volvo"; //此时,carname就是一个全局变量