当您可以在函数中定义时,定义 var 是否重要?
Is it important to define a var when you can define in a function?
我对在 Javascript 中定义 var 有疑问。
Here is a JS Bin
var newText=document.getElementById("myinput").value;
document.getElementById("changebutton").onclick=function(){
newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<input id="myinput" type="text" value="test" />
<button id="changebutton">Change!</button>
<div id="firstdiv">This is some text</div>
</body>
</html>
在这段代码中,我想在我可以输入内容的框旁边显示内容。上面的代码运行良好,即使在 JS 部分的第一行中没有 var newText=document.getElementById("myinput").value;
。
那么有必要定义变量吗?在其他一些情况下会怎样?
通常你 "dirty" 你的全球范围越小越好。在这种情况下,您将在匿名函数内专门调用该变量,因此答案是:在您的函数内定义它。你可能会奇怪地不定义变量,大多数 javascript 引擎会为你做,但这不是一个明确的方法。
黄金法则:只有在外部作用域或多个 "inner" 作用域中需要时才在外部作用域中定义变量。
在这种情况下,您不必要地弄脏了外部范围。
编辑:在你的情况下:
document.getElementById("changebutton").addEventListener('click',function(){
var newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
});
另请注意,我已将 .onclick
替换为 addEventListener('click', function () {...
-> 这样您就可以为单个事件绑定多个侦听器。
您还可以这样做:
document.getElementById("changebutton").onclick=function(){
var newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
};
我对在 Javascript 中定义 var 有疑问。
Here is a JS Bin
var newText=document.getElementById("myinput").value;
document.getElementById("changebutton").onclick=function(){
newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<input id="myinput" type="text" value="test" />
<button id="changebutton">Change!</button>
<div id="firstdiv">This is some text</div>
</body>
</html>
在这段代码中,我想在我可以输入内容的框旁边显示内容。上面的代码运行良好,即使在 JS 部分的第一行中没有 var newText=document.getElementById("myinput").value;
。
那么有必要定义变量吗?在其他一些情况下会怎样?
通常你 "dirty" 你的全球范围越小越好。在这种情况下,您将在匿名函数内专门调用该变量,因此答案是:在您的函数内定义它。你可能会奇怪地不定义变量,大多数 javascript 引擎会为你做,但这不是一个明确的方法。
黄金法则:只有在外部作用域或多个 "inner" 作用域中需要时才在外部作用域中定义变量。
在这种情况下,您不必要地弄脏了外部范围。
编辑:在你的情况下:
document.getElementById("changebutton").addEventListener('click',function(){
var newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
});
另请注意,我已将 .onclick
替换为 addEventListener('click', function () {...
-> 这样您就可以为单个事件绑定多个侦听器。
您还可以这样做:
document.getElementById("changebutton").onclick=function(){
var newText=document.getElementById("myinput").value;
document.getElementById("firstdiv").innerHTML=newText;
};