原文: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
相关推荐
- 不建议使用JavaScript的保留字作为变量名,例如 `for`, `if`, `else` 等,因为它们有特殊的语义。 - 变量名是大小写敏感的,`myVariable` 和 `myvariable` 是两个不同的变量。 - 推荐使用驼峰命名法(camelCase...
在JavaScript中,变量的作用范围分为两种主要类型:全局作用域和局部作用域。 1. 全局作用域(Global Scope): 全局变量是在函数外部定义的变量,或者在脚本的顶层定义的变量。它们在整个脚本或JavaScript文件中都...
全局变量是编程中一个双刃剑,它为程序提供了极大的灵活性,同时也可能导致代码难以理解和维护。在许多编程语言中,全局变量可以在程序的任何地方被访问和修改。本文将探讨如何在函数中修改全局变量,包括这种做法的...
看看有帮助,全局变量,与局部变量的差异!
- **命名规则**:变量名必须以字母、下划线(_)或美元符号($)开头,后面可以跟字母、数字、下划线或美元符号。 - **注意事项**:变量名是区分大小写的,因此 `myVariable` 和 `MyVariable` 是两个不同的变量。 *...
为了防止全局变量污染和提升代码质量,可以考虑使用立即执行的函数表达式(IIFE, Immediately Invoked Function Expression),这样可以在函数内部创建私有作用域,避免了全局变量的创建。例如: ```javascript ...
JavaScript全局变量的本质与页面共享问题是一个重要的编程概念,尤其是在网页开发中。JavaScript是一种广泛使用的脚本语言,它的全局变量在程序中的角色独特,且与页面的生命周期和浏览器环境紧密相关。 首先,我们...
- **禁止隐式全局变量**:阻止未经声明的变量赋值,防止意外地创建全局变量。 - **函数调用的严格性**:限制使用`arguments.callee`和`arguments.caller`等可能引发性能问题的属性。 - **禁止使用`with`语句**:因为...
2. **基于对象**:虽然不是面向对象的语言,但JavaScript支持对象的创建和操作。 3. **自动内存管理**:具有垃圾回收机制,自动回收不再使用的对象所占用的内存。 4. **动态类型**:变量的类型在运行时确定,不需要...
为了提升性能,减少潜在的命名冲突,并且遵循最佳实践,推荐在JavaScript中尽可能使用局部变量来代替全局变量。这一点在众多开发者的共识中已经成为一个基本规则。Nicholas C. Zakas是这一建议的早期倡导者之一,他...
JavaScript:变量与数据类型.docx
- **链的最顶端**:全局执行上下文。 #### 十五至五十及结局篇 从第十五篇开始,汤姆大叔详细介绍了JavaScript中的各种功能特性、设计模式以及代码组织方式等内容。这些内容覆盖了从基本概念到高级应用的各个方面...
有时候即使你不想这样做,但也有可能会定义出全局变量。在如今的浏览器中,全局变量都被存储在 window 对象中。而因为有许多的东西都在那个里面,所以你有可能把一些默认值都给覆盖掉了。 假设你有一个 HTML 文件...
JavaScript是一种轻量级的编程语言,广泛用于网页和前端开发,以创建交互式的网页。自1995年诞生以来,JavaScript已成为最流行的编程语言之一,不仅限于浏览器,还扩展到了服务器端(如Node.js)和其他平台。 ### ...
Vue2 中设置全局变量有两种方法:全局变量专用模块和全局变量模块挂载到 Vue.prototype 里。 1. 全局变量专用模块 全局变量专用模块是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好。例如,...
实际上是在全局对象上创建了一个名为a的属性,其值为10。 2. 函数上下文中的变量对象:当一个函数被调用时,一个活动对象(Activation Object, AO)会被创建,它作为变量对象来使用。活动对象除了存储变量和函数...
JavaScript 中声明变量:var 变量名 "+"可以用于两个数相加,还可以用于连接字符串 parseInt() 和 parseFloat() 函数将字符串分别转换为整型和小数 运算符号分为算术运算符、比较运算符、逻辑运算符 分支结构 条件...
- **作用域**: JavaScript有全局作用域、函数作用域和块级作用域。 通过以上知识点的梳理,我们可以看到《JavaScript权威指南》第6版涵盖了从基础语法到高级特性的全面内容,对于希望深入了解JavaScript及其在Web...
:fire: JavaScript备忘单 :world_map: 这是JavaScript基本概念的备忘单。... 第7页:创建变量的方法-var,let,const +事件循环PNG , PDF 第8页:浏览器PNG , PDF 第9页:DOM-查询,创建,更新,删除,DOM PNG和P