如何在函数内定义全局变量?

时间:2013-09-16 11:20:14

标签: javascript global-variables

我想在javascript中的函数内定义一个全局变量,我不想为它赋值。我试过以下:

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

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

4 个答案:

答案 0 :(得分:1)

如果没有为变量赋值,则无法定义变量。您是否有理由需要一个可以包含任何可能值的变量?如果没有,您可以将其设置为某个标记 - null通常适用于此 - 并检查该值以查看变量是否已“设置”。

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

答案 1 :(得分:1)

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

js>x = undefined
js>undefined
js>x
js>undefined
js>var y
js>undefined

答案 2 :(得分:0)

你无法在函数内部定义全局变量window.gl_var;它正试图调用gl_var并且没有找到它,因此它会抛出错误。

答案 3 :(得分:0)

在javascript中使用未定义的变量只会破坏所有内容,首先定义它

var gl_var="";var gl_var=null;

function defineGlobal(){
        window.gl_var;
        console.log(gl);
    }