2

我只想在 javascript 的函数中定义一个全局变量,我不想为它分配任何值。我试过以下:

<script>
    function defineGlobal(){
        window.gl_var;
        console.log(gl);
    }      
</script>

我期待 gl_var 未定义。但它给出了参考错误。

4

4 回答 4

1

你不能定义一个变量而不给它分配一些值。您是否有理由需要一个可以包含任何可能值的变量?如果没有,您可以将其设置为某个哨兵 -null通常适用于此 - 并检查该值以查看变量是否已“设置”。

另一种可能的选择是使用两个变量:一个您实际打算保存值的变量,以及一个以 false 开头但您的程序在第一次使用该变量时设置为 true 的布尔值。您甚至可以用 、 和 函数将其包装在一个小obj.getValue()对象obj.setValue(newValue)obj.valueHasBeenSet()

于 2013-09-16T11:36:51.123 回答
1

使用“gl_var = undefined”。这应该足够了;-) 看看下面的“x”。

js>x = undefined
js>undefined
js>x
js>undefined
js>var y
js>undefined
于 2013-09-19T11:49:43.117 回答
0

您无法在函数内部定义全局变量,因为您正在window.gl_var;尝试调用gl_var它并且没有找到它,因此它会引发错误。

于 2013-09-16T11:23:37.740 回答
0

在javascript中使用未定义的变量只会破坏一切,首先定义它

var gl_var="";或者var gl_var=null;

function defineGlobal(){
        window.gl_var;
        console.log(gl);
    }      
于 2013-09-16T11:28:23.297 回答