`

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

 
阅读更多

原文:JavaScript quirk 4: unknown variable names create global variables

译者:justjavac


此文是 javascript 的 12 个怪癖(quirks) 系列的第四篇。

当你使用了一个未知的变量名,通常 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

分享到:
评论

相关推荐

    JavaScript声明全局变量访问方法

    - **直接访问**:无论在哪一部分代码中,只要不在同名局部变量的作用域内,都可以直接通过变量名访问全局变量。 ```javascript console.log(globalVar); // 输出:"我是全局变量" console.log...

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    javascript全局变量说明示例

    看看有帮助,全局变量,与局部变量的差异!

    JavaScript:变量与数据类型

    - **命名规则**:变量名必须以字母、下划线(_)或美元符号($)开头,后面可以跟字母、数字、下划线或美元符号。 - **注意事项**:变量名是区分大小写的,因此 `myVariable` 和 `MyVariable` 是两个不同的变量。 *...

    深入JavaScript严格模式:最佳实践与应用指南

    - **禁止隐式全局变量**:阻止未经声明的变量赋值,防止意外地创建全局变量。 - **函数调用的严格性**:限制使用`arguments.callee`和`arguments.caller`等可能引发性能问题的属性。 - **禁止使用`with`语句**:因为...

    JavaScript变量

    - **变量提升**:即使变量在使用前没有显式声明,JavaScript也会自动创建一个全局变量。 ```javascript test = "hello"; console.log(test); // 输出 "hello" ``` #### 三、变量类型 JavaScript中的变量类型...

    javascript 用局部变量来代替全局变量第1/2页

    为了提升性能,减少潜在的命名冲突,并且遵循最佳实践,推荐在JavaScript中尽可能使用局部变量来代替全局变量。这一点在众多开发者的共识中已经成为一个基本规则。Nicholas C. Zakas是这一建议的早期倡导者之一,他...

    JavaScript:变量与数据类型.docx

    JavaScript:变量与数据类型.docx

    javascript变量作用域

    inner 函数, inner 函数中没有定义 rain 变量,因此 JavaScript 会继续查找 rainman 函数中的 rain 变量,如果 rainman 函数中也没有定义 rain 变量,JavaScript 则会继续向上查找直到找到全局对象中的 rain 变量。...

    JavaScript全局变量的本质及页面共享问题 -页面.pdf

    JavaScript全局变量的本质及页面共享问题 -跨页面访问变量的问题

    javascript 显示全局变量与隐式全局变量的区别

    在JavaScript编程语言中,全局变量是一种在整个脚本或应用程序中都可以访问的变量。全局变量有两种声明方式:显式声明和隐式声明。了解这两种声明方式的区别对于编写可维护且无错误的代码至关重要。 **显式全局变量...

    JavaScript语言教程.docx

    JavaScript是一种轻量级的编程语言,广泛用于网页和前端开发,以创建交互式的网页。自1995年诞生以来,JavaScript已成为最流行的编程语言之一,不仅限于浏览器,还扩展到了服务器端(如Node.js)和其他平台。 ### ...

    JavaScript基础:变量、数据类型、函数、数组、对象、条件语句与循环

    内容概要:本文详细介绍了JavaScript的基础知识,包括变量与数据类型、函数与作用域、数组与对象的操作、以及流程控制中的条件语句与循环。首先,介绍了JavaScript的基本数据类型(undefined、null、boolean、number...

    vue2 全局变量的设置方法

    Vue2 中设置全局变量有两种方法:全局变量专用模块和全局变量模块挂载到 Vue.prototype 里。 1. 全局变量专用模块 全局变量专用模块是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。例如,...

    深入理解JavaScript系列(12) 变量对象(Variable Object)

    实际上是在全局对象上创建了一个名为a的属性,其值为10。 2. 函数上下文中的变量对象:当一个函数被调用时,一个活动对象(Activation Object, AO)会被创建,它作为变量对象来使用。活动对象除了存储变量和函数...

    01 JavaScript基本语法.ppt

    JavaScript 中声明变量:var 变量名 "+"可以用于两个数相加,还可以用于连接字符串 parseInt() 和 parseFloat() 函数将字符串分别转换为整型和小数 运算符号分为算术运算符、比较运算符、逻辑运算符 分支结构 条件...

    [JavaScript权威指南(第6版)].(JavaScript:The.Definitive.Guide).David.Flanagan.文字版.pdf

    - **作用域**: JavaScript有全局作用域、函数作用域和块级作用域。 通过以上知识点的梳理,我们可以看到《JavaScript权威指南》第6版涵盖了从基础语法到高级特性的全面内容,对于希望深入了解JavaScript及其在Web...

    uni-app 全局变量的几种实现方式代码示例.zip

    【uni-app全局变量的实现方式】 在uni-app开发中,常常需要在多个页面之间共享数据,这时就需要用到全局变量。全局变量可以确保数据在各个页面之间保持一致,提高应用的可维护性和用户体验。uni-app是基于Vue.js构建...

    JavaScript设计模式+JavaScript模式+JavaScript异步编程

    - 模块模式:通过闭包创建私有变量和方法,同时提供公共接口。 - 函数组合模式:将多个函数组合起来,形成新的功能。 2. **JavaScript模式**: JavaScript模式不仅包括设计模式,还包括编码风格和最佳实践。例如...

Global site tag (gtag.js) - Google Analytics