javascript变量作用域

javascript变量作用域,javascript,scoping,Javascript,Scoping,为什么javascript允许在本地代码中创建全局变量? 一个例子 function f() { x=10; } function g() { print(x); } f(x); g(x); 当您不使用var对变量进行排序时,它们将自动在全局范围内。当您不使用var对变量进行排序时,它们将自动在全局范围内 为什么javascript允许在本地代码中创建全局变量 因为它不是一种完美的语言 使用var关键字限制变量的范围 为什么javascript允许在本地代码中创建全局变量 因为它不是一种完美的

为什么javascript允许在本地代码中创建全局变量?
一个例子

function f() { x=10; }
function g() { print(x); }
f(x);
g(x);

当您不使用
var
对变量进行排序时,它们将自动在全局范围内。

当您不使用
var
对变量进行排序时,它们将自动在全局范围内

为什么javascript允许在本地代码中创建全局变量

因为它不是一种完美的语言

使用
var
关键字限制变量的范围

为什么javascript允许在本地代码中创建全局变量

因为它不是一种完美的语言


使用
var
关键字来限制变量的范围。

我认为您需要在变量声明之前指定
var
,使其进入范围。

我认为您需要在变量声明之前指定
var
,使其进入范围。

设计错误。此缺陷已在ES5严格模式下删除。为什么不删除?我想这可能会引起命名冲突,但如果这是一个问题,你应该给出更好的变量名。我上面陈述的来源:(第四个项目符号)和演示这一点的现场演示:(在旧浏览器中不起作用)谢谢你,你能把这些评论作为答案吗?一个设计错误。此缺陷已在ES5严格模式下删除。为什么不删除?我想这可能会引起命名冲突,但如果这是一个问题,你应该给出更好的变量名。我上面陈述的来源:(第四个项目符号)和演示这一点的实时演示:(在旧浏览器中不起作用)谢谢你,你能把这些评论作为答案吗?