Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript全局变量提升问题_Javascript_Hoisting - Fatal编程技术网

JavaScript全局变量提升问题

JavaScript全局变量提升问题,javascript,hoisting,Javascript,Hoisting,这是我的基本问题 <script> var window.my_Global = false; </script> <script> if(my_Global){...} //my_Global here is undefined, not false?? </script> 我知道一定有一个简单的解决方案,但我被卡住了…删除var: 您不需要var语句来设置对象的属性。事实上,这是无效的语法: window.my_Globa

这是我的基本问题

<script>
    var window.my_Global = false;
</script>

<script>
    if(my_Global){...} //my_Global here is undefined, not false??
</script>
我知道一定有一个简单的解决方案,但我被卡住了…

删除var:

您不需要var语句来设置对象的属性。事实上,这是无效的语法:

window.my_Global=true; console.logmy_Global; ifmy_Global{ 世界你好!; } 删除变量:

您不需要var语句来设置对象的属性。事实上,这是无效的语法:

window.my_Global=true; console.logmy_Global; ifmy_Global{ 世界你好!; }
简单的解决方案是尽可能避免这种构造,这几乎总是如此?@adeneo:因为OP明确询问如何创建全局,我相信他知道后果。第一个脚本应该给出一个错误,该错误将显示在浏览器的开发工具控制台中。因此,我已经按照您所说的进行了更改。。。当我从firebug控制台警告该变量时,它说该变量仍然未定义,而不是false。@Cerbrus-因为OP不知道仅执行my_Global=false将在该上下文中创建一个全局变量,我认为有点重要的一点是,通常应该避免。简单的解决方案是尽可能避免此类构造,这几乎总是如此?@adeneo:因为OP明确地询问如何创建全局,我相信他知道后果。第一个脚本应该给出一个错误,该错误将显示在浏览器的开发工具控制台中。因此,我已经按照您所说的进行了更改。。。当我从firebug控制台警告该变量时,它说该变量仍然未定义,而不是false。@Cerbrus-因为OP不知道仅执行my_Global=false将在该上下文中创建一个全局变量,我认为有一点很重要,那就是通常应该避免使用var,并不是说你不需要var,因为它是可选的。这是一个语法错误。所以我按照你说的修改了它。。。当我从firebug控制台发出警报时,它说变量仍然未定义,而不是false。@BradMash-当我发出警报时,它是false:你确定你没有查看console.log的返回值吗?我知道我不需要var,事实上这是一个语法错误。此外,我确信我正在查看返回值。。。即使我没有,警报也应该说false,而不是undefined。控制台是否在同一范围内?你能试试window.my_Global吗?并不是说你不需要var,因为它是可选的。这是一个语法错误。所以我按照你说的修改了它。。。当我从firebug控制台发出警报时,它说变量仍然未定义,而不是false。@BradMash-当我发出警报时,它是false:你确定你没有查看console.log的返回值吗?我知道我不需要var,事实上这是一个语法错误。此外,我确信我正在查看返回值。。。即使我没有,警报也应该说false,而不是undefined。控制台是否在同一范围内?你能试试window.my\u Global吗?
window.my_Global = false;