Javascript-变量、函数和对象
我是从AS3到HTML5的javascript,所以这有点让人困惑: 一, 我注意到在对象内部,您不需要声明变量:Javascript-变量、函数和对象,javascript,function,object,var,Javascript,Function,Object,Var,我是从AS3到HTML5的javascript,所以这有点让人困惑: 一, 我注意到在对象内部,您不需要声明变量: var player = { type:'player', x:50, } var(var类型,var x)显示错误也是一样,为什么会这样 二,。为什么我不需要在函数中声明变量: createPlayer = function(){ a = 5; console.log(a); //works } 三,。 我假设在一个函数中,一旦创建了一个新的变量,如下所示: var a;
var player = {
type:'player',
x:50,
}
var(var类型,var x)显示错误也是一样,为什么会这样
二,。为什么我不需要在函数中声明变量:
createPlayer = function(){
a = 5;
console.log(a); //works
}
三,。
我假设在一个函数中,一旦创建了一个新的变量,如下所示:
var a; //global var
createPlayer = function(){
a = 3;
}
它首先搜索是否存在一个名为a的全局变量,如果它已经存在,它会更改它的值,如果不存在,它会在函数中本地创建它。对吗
var
。在对象文字中设置属性时,不要
var
,但不建议这样做,因为变量将变为全局变量。并且不使用var
抛出严格模式
如果在函数中使用关键字
var
,则它将被视为局部变量,否则它将被视为附加到窗口对象的全局变量,让我给您举个例子
function test(){
var attr1 = "first attribute"; // this is a local variable
attr2 = "second attribute"; // this is a global variable, so you can acess it from outside that function, once you call it
}
// call the test function
test();
console.log(attr1); // we get undefined because we used the keyword var
console.log(attr2); // we get the valeu "second attribute" because it is considered as a global variable
我希望这有助于不要在未使用
var
声明变量的情况下分配变量,这样您就永远不会对它的定义范围感到困惑。如果不使用var
声明变量,它将成为一个全局变量,这被认为是一种非常糟糕的做法,事实上,在严格模式下实际上是一个错误。重复?谢谢,确实有帮助。如果有帮助,请竖起大拇指:)