1

我被困在某个地方(就像新手一样)。是否可以在对变量进行修剪和内容测试后重新定义它?

    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 = "";     
            }
4

3 回答 3

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;
}
于 2012-05-30T18:20:37.157 回答
1

是的,您可以这样做,而且是合法的。

于 2012-05-30T18:18:56.760 回答
0

它可能“有效”,但不推荐。你不需要重新声明它。

可能想通过JSLint运行您的代码。您需要解决一些整洁/支撑问题。

于 2012-05-30T18:23:35.597 回答