我被困在某个地方(就像新手一样)。一旦变量被修剪并测试内容,是否可以重新定义变量?
function setarea() {
var dbasedata = document.forms[0]._dbase_name.value;
dbasedata = dbasedata.toUpperCase();
dbasedata = dbasedata.replace(/\s/g, "");
dbasedata = dbasedata.remove("UK_CONTACTS", "");
if (dbasedata != "") {
_area.value = _dbase_name.value;
}
else var dbasedata = document.forms[0]._dbase_name.value;
dbasedata = dbasedata.toUpperCase();
dbasedata = dbasedata.replace(/\s/g, "");
if (dbasedata.indexOf("UK_CONTACTS")>-1 {
var dbaseterm = "UK_CONTACTS";
else var dbaseterm = "";
}
答案 0 :(得分:4)
对同一范围内的同一变量多次使用var
没有意义。由于所有var x;
都被提升到范围的顶部,因此该变量上的每个额外var
都将成为无操作。
虽然分配一个新值很好 - 它们毕竟是变量而不是常量。
function x() {
var x = 123;
foo();
x = 456;
var y = 'hello';
var x = 678;
}
实际上是内部的:
function x() {
var x, y; // both are === undefined
x = 123;
foo();
x = 456;
y = 'hello';
x = 678;
}
答案 1 :(得分:1)
是的,你可以这样做,这是合法的。
答案 2 :(得分:0)
它可能“有效”,但不建议使用。你不需要重新声明它。
可能希望通过JSLint运行您的代码。你想要解决一些整洁/支撑问题。