无法理解javascript函数的输出

时间:2019-03-06 17:01:17

标签: javascript

我得到 5 作为以下代码的输出

function myfunction1(){
	  number = 5;
}

function myfunction(number){
	 number = number + 10;
}

myfunction1();
myfunction(number);

console.log(number);

我希望为数字引发参考错误。如果有人可以解释一下行为,那就太好了。

2 个答案:

答案 0 :(得分:2)

JavaScript解释器从未声明number,而是将number评估为全局变量。

如果您这样做:

function myfunction1(){
	  var number = 5;
}

function myfunction(number){
	 number = number + 10;
}

myfunction1();
myfunction(number);

console.log(number);

这应该引发一个错误,因为现在number=5仅在myfunction1内为真

答案 1 :(得分:0)

因为您要为全局变量和函数自变量分配相同的名称,所以

这应该有效。

let number;

function myfunction1(){
  number = 5;
}

function myfunction(n){
 number = n + 10;
}

myfunction1();
myfunction(number);

console.log(number);