0

这可以通过编写一些代码来拦截全局范围默认声明或通过每个程序或函数都可以访问的javascript引擎本身的设置来完成吗?

我的意思是,如果我可以在程序(或函数)的顶部告诉 javascript 引擎对未声明的变量使用本地范围而不是全局范围......那么,当 javascript 引擎编译每个函数时,它会声明它们在本地范围内。

我理解如果你想在当前范围之外声明一个变量,那应该明确地完成,因为没有人知道你想在哪里声明它,但我认为默认为全局范围会留下太多的错误空间并强制输入过多的 var每个函数中的语句,所以如果可能的话,我想更改我的程序中的默认值。

我的主要目的是避免在每个函数顶部的 var 语句中键入局部变量列表,并避免在我在函数中使用局部变量时保持该列表与局部变量同步。不允许全局范围默认值也降低了出错的风险。

我绝不希望未声明的变量最终处于比首次使用它们的范围更高的范围内。让它们默认为我可以看到的全局范围没有任何价值。

我知道我可以在当前范围(或全局范围)中显式声明变量,但希望避免这样做并使用比 JavaScript 内置的全局范围默认值更有用的默认值。

我也知道我可以使用“使用严格”来强制明确声明所有变量。不想争论它的对错,而只是询问是否有任何方法可以将给定函数的默认值更改为本地范围而不是全局范围。

4

1 回答 1

1

不,Javascript 的行为方式就是这样,没有开关可以翻转来改变它的变量声明规则。

'use strict'是一个您可以用来帮助您更轻松地发现问题的选项,但它不会改变规则。

你想要的是一种不同的语言;例如CoffeeScript,一个 Javascript 预处理器,除其他外,它恰好明确地解决了这个变量声明问题。

于 2015-01-12T00:19:06.503 回答