JavaScript 的怪僻 4:未知变量名创建全局变量

JavaScript 的怪癖 4:未知变量名创建全局变量当你使用了一个未知的变量名,通常 JavaScript 会自动创建全局

JavaScript 的怪癖 4:未知变量名创建全局变量

当你使用了一个未知的变量名,通常 JavaScript 会自动创建全局变量:

function f() { foo = 123 } f() foo 123

好在你会在 ECMAScript5 的严谨模式得到警告[1]:

function f() { 'use strict'; foo = 123 } f() ReferenceError: foo is not defined

参考

[1]?JavaScript’s strict mode: a summary