Javascript 如果变量为';它只会被使用一次

Javascript 如果变量为';它只会被使用一次,javascript,Javascript,如果变量只使用一次,那么声明变量有什么意义? 看看这两个函数。有区别吗?哪一个更好,为什么 function showtext(){ var elem = document.getElementById("elemid"); var txt1 = '<p>Some random text</p>'; elem.innerHTML = txt1; } 函数showtext(){ var elem=document.getElementById(“elemid”); var

如果变量只使用一次,那么声明变量有什么意义? 看看这两个函数。有区别吗?哪一个更好,为什么

function showtext(){
var elem = document.getElementById("elemid");
var txt1 = '<p>Some random text</p>';
elem.innerHTML = txt1;
}
函数showtext(){
var elem=document.getElementById(“elemid”);
var txt1='一些随机文本

'; elem.innerHTML=txt1; }

函数showtext(){
document.getElementById(“elemid”).innerHTML='一些随机文本

'; }
在这种情况下使用变量的唯一原因是可读性更好的代码(分散在多行上,而不是一行太长),尤其是在声明中使用描述性变量名时


在这种特殊情况下(除了我们处理的是绝对初学者),什么也得不到,因为
getElementById
显然返回
elem
ent,而
txt1
意味着什么都没有。

JavaScript是函数范围的,所以一旦离开函数,所有变量都会被清除

对我来说,为每件事声明单独的变量对于保持代码的易读性是有意义的。在任何编程语言中使用变量的意义在于命名和描述事物

因此,不是:

function showtext(){
    var unimaginativeName1 = document.getElementById("elemid");
    var unimaginativeName2 = '<p>Some random text</p>';
    unimaginativeName1.innerHTML = unimaginativeName2;
}
函数showtext(){
var unimaginativeName1=document.getElementById(“elemid”);
var unimaginativeName2='一些随机文本

'; unimaginativeName1.innerHTML=unimaginativeName2; }
您可以通过以下方式讲述更好的故事:

function showtext(){
    var elemDescription = document.getElementById("elemid");
    var elemTxt = '<p>Some random text</p>';
    elemDescription.innerHTML = elemTxt;
}
函数showtext(){
var elemDescription=document.getElementById(“elemid”);
var elemTxt='一些随机文本

'; elemDescription.innerHTML=elemTxt; }
这本书读起来比这本好

document.getElementById("elemid").innerHTML = '<p>Some random text</p>';
document.getElementById(“elemid”).innerHTML='一些随机文本;

给定这种代码,就没有意义了。但是如果您想确保
elem
不是
null
,那么它对该变量更有意义,但对
txt1
仍然没有意义。。。除非
#elemid
不存在并且您得到一个错误(您可以测试该错误,或者使用
try/catch
)。或者是@CookieMonester所说的。另外,第一个选项在教程中可能会更好看,特别是如果您添加了两条注释。可能与其他注释相同,
getElementById
也可能返回null。当然,但代码不希望返回null。那么为什么变量名应为?:-)我的评论不是针对代码片段,而是针对它们的作者;-)
document.getElementById("elemid").innerHTML = '<p>Some random text</p>';