2

我对网络开发很陌生,我一直在做一些我在网上找到的 JavaScript 练习。其中一个要求提示用户输入名字和姓氏并将这些名字添加到文档中。

在研究这一点时,我发现使用了很多变量的代码。我的解决方案是这样的:

var el = document.getElementById("welcome");
var txt = fullName;
var node = document.createTextNode(txt);
el.appendChild(node);
    };

greet()

我玩了一下,发现这行得通:

document.getElementById("welcome").appendChild(document.createTextNode(fullName));

您可以在jsFiddle看到我的原始解决方案。我还在 HTML 中添加了说明。

我的问题是为什么大多数 tuts 都建议放入变量?这是最佳实践吗?为什么?

哦,如果你去那里,有人能告诉我为什么我的订购清单没有数字吗?jsFiddle 是否在其 CSS 上使用重置?

注意:我不确定是否需要将其放入函数中,但现在,将所有内容放入一个盒子中有助于我保持井井有条。

感谢您的帮助戴夫

4

5 回答 5

1

变量可以为值“命名”。这些名称 - 可以,但并非总是 - 使代码更具自我描述性并且更易于遵循。不幸的是,示例中的变量名是一个很好的描述性名称的坏例子,但是..

(请考虑这个)

var welcomeElm = document.getElementById("welcome");
var titleElm = document.createTextNode(fullname);
welcomeElm.appendChild(titleElm);
// and maybe also do something else too ..
// (no need to re-evaluate getElementById)
welcomeElm.className = "available";
于 2012-12-26T05:40:08.067 回答
1

如果您不止一次需要“document.getElementById("welcome")”,则使用变量是一个好习惯。

它将减小您的页面大小,从而使您的页面运行得更快。

于 2012-12-26T05:41:00.513 回答
1

并不是说你需要在代码中使用很多变量,只是你是一个初学者,而且作者通常不会使用超级编程技能来教初学者,因为当你学习时,你可以让你的代码更强大、更短、更很聪明。因此,如果您在学习时编写了更好的代码,那么您的学习速度似乎要快得多...使用变量来保存值通常是一种好习惯..但是当然,如​​果您足够聪明,可以在不使用太多的情况下完成工作其中没有害处...这是一个简单的示例,您实际上并不需要 2 个变量

var a = 5, b = 5;
var result = a + b;

alert(result); //Results 10 

可以简单地写成

var total = 5 + 5;
alert(total); //Results 10 too

但是再次使用第二种方法时,您可能不会在var total任何地方使用,并且每次需要结果时都需要自己更改值,因此最好创建足够的变量,这将使您更容易修改代码并相应地使用数据

对于另一个问题,是的 jsfiddle 会重置 CSS

如果您不想重置元素,只需取消选中Normalized CSS

于 2012-12-26T05:41:38.347 回答
1

变量用于在代码中存储值。如果您使用代码而不将它们存储在变量中,那么您将很难操作数据。与您的代码一样,您使用了提示符。如果您没有在变量中创建它,那么您如何获得用户输入的值和 Javascript 中的变量可以帮助我们不编写大代码并节省我们的时间!

于 2012-12-26T05:43:26.417 回答
1

使用它们的几个原因,尽管我怀疑这里的情况。

自我记录。

var title = "Program crashed";
var msg = "Program crashed";
do_alert(title, msg);

更容易调试:(代码根据注释略有更改)

var step1 = long_complex_function();
alert(step1);
//console.log(step1);

var step2 = long_other_calcuation;
alert.log(step2);
//console.log(step2);

do_major_func(step1, step2);
于 2012-12-26T05:47:50.010 回答