javascript现在和以后声明var

Bet*_*ock 0 javascript

在编写Javascript函数时,我总是使用var作为变量的第一个赋值

var x = 1;
Run Code Online (Sandbox Code Playgroud)

后来x可能是别的东西.我应该写

if (something ) {
x = 2;}
Run Code Online (Sandbox Code Playgroud)

要么

if (something) {  
var x = 2;}
Run Code Online (Sandbox Code Playgroud)

如果你能说出为什么那会有所帮助.

ahr*_*ren 5

var如果要更改已声明的变量的值,则不应使用关键字.

所以:

var x = 1;

if(something) x = 2;
Run Code Online (Sandbox Code Playgroud)

如果测试很简单,你也可以像这样写:

var x = something ? 2 : 1;
Run Code Online (Sandbox Code Playgroud)

这也与范围有关.在函数内创建新范围.

例如:

var x = 1;

function myFunction(){
  var x = 2;  
}

myFunction();

console.log(x); // 1
Run Code Online (Sandbox Code Playgroud)

然而,如果您var在函数中省略了关键字,那么您将改变x外部范围中变量的值并console.log(x)显示2.

  • 祝贺10K! (4认同)