IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:with语句

共 1 篇相关文章

IT 累计浏览 2,519

javascript with延伸的作用域是只读的吗?

这篇讲的是 JavaScript 中一个经典的误解:with 语句延伸的作用域是否是只读的。作者从两本权威著作——《JavaScript 权威指南》和《JavaScript 高级程序设计》——的矛盾表述出发,对这个看似清晰的问题进行了追问。 文章的核心是对比和验证。书中一方认为 with 语句创建的作用域链对象是只读的,内部变量的修改不会影响外部;另一方则隐含了不同看法。为了厘清真相,作者编写了简洁的测试代码,直接修改 with 语句块内的变量并观察外部变量的变化。 最终的测试结论明确打破了“只读”的误解:在 with 语句延伸的非严格模式作用域中,对未重新声明的变量的赋值操作,会直接作用到其所在的外部作用域。文章的价值在于,它不仅仅告诉了你答案,更演示了如何通过实验去验证一个技术疑点。这对于理解 JavaScript 的作用域机制,尤其是在处理复杂或历史代码时,能有效避免因错误假设而产生的 bug。