`

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 声明全局变量的三种方式详解

    - 函数封装性:全局变量可能导致函数内部逻辑依赖外部状态,破坏函数的封装性和可复用性。 - 可读性降低:由于多个函数都可能访问全局变量,调试和理解代码变得困难,容易引发错误。 - 变量冲突:在大型项目中,不同...

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

    JavaScript全局变量的本质与页面共享问题是一个重要的编程概念,尤其是在网页开发中。JavaScript是一种广泛使用的脚本语言,它的全局变量在程序中的角色独特,且与页面的生命周期和浏览器环境紧密相关。 首先,我们...

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

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

    JavaScript变量

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

    JavaScript模块化:深入理解和实践

    2. **基于对象**:虽然不是面向对象的语言,但JavaScript支持对象的创建和操作。 3. **自动内存管理**:具有垃圾回收机制,自动回收不再使用的对象所占用的内存。 4. **动态类型**:变量的类型在运行时确定,不需要...

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

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

    JavaScript:变量与数据类型.docx

    JavaScript:变量与数据类型.docx

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

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

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

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

    JavaScript语言教程.docx

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

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

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

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

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

    [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-cheatsheet:了解JavaScript的基本术语,概念和语法

    :fire: JavaScript备忘单 :world_map: 这是JavaScript基本概念的备忘单。... 第7页:创建变量的方法-var,let,const +事件循环PNG , PDF 第8页:浏览器PNG , PDF 第9页:DOM-查询,创建,更新,删除,DOM PNG和P

Global site tag (gtag.js) - Google Analytics