`
tjuking
  • 浏览: 195161 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中with语句的优缺点

阅读更多

前几天参加了LAMP的一个技术分享会,有一个前端开发人员的主题是如何规避bug和性能优化,让我觉得无论是做Java开发还是Web前段开发,优化始终应该是我需要努力的方向。

 

今天看到某前辈写的一个JS控件,里面有比较多的with语句引起了我的好奇。

 

with语句的作用是暂时改变作用域链、减少的重复输入。

 

其语法结构为:

 

with(object){
      //statements
}

 

举一个实际例子吧:

 

with(document.forms[0]){
       name.value = "lee king";
       address.value = "Peking";
       zipcode.value = "10000";
}

与之对应的传统的写法是:

 

document.forms[0].name.value = "lee king";
document.forms[0].address.value = "Peking";
document.forms[0].zipcode.value = "10000";

可以看出with语句的简洁明了,不过在代码的世界里是很难找到真正的完美。

 

js的解释器需要检查with块中的变量是否属于with包含的对象,这将使with语句执行速度大大下降,并且导致js语句很难被优化。为了兼顾速度与代码量可以找到一个比较折衷的方案:

 

var  form = document.forms[0];
form.name.value = "lee king";
form.address.value = "Peking";
form.zipcode.value = "10000";

 

 所以在以后的高效代码开发中我们应该尽可能的避免使用with语句。

 

1
1
分享到:
评论

相关推荐

    关于JavaScript的with 语句的使用方法

    // 使用with语句 with(apple.banana.candy.dog.egg.fog.god.huh) { index = 0; doSomething(index); } ``` 尽管`with`语句可以减少代码量,使代码看起来更简洁,但它的使用却存在一些显著的缺点: 1. **性能问题...

    javascript中的with语句学习笔记及用法

    JavaScript中的`with`语句是一种特殊的作用域控制结构,它允许你在一段代码中方便地访问某个对象的属性,而无需反复地使用`.`或`[]`操作符。`with`语句的基本语法是: ```javascript with (expression) { // 代码...

    理解javascript中的with关键字

    3. 缺乏代码压缩的能力:由于"with"语句在运行时可能会对作用域链进行动态修改,这使得现有的JavaScript压缩工具难以对其进行有效的代码压缩处理,这在生产环境中是一个较大的缺点。 4. 不一致性:在不同的执行环境...

    javascript下with 的简化代码写法

    在JavaScript编程中,`with`语句是一个很有争议的特性,它被设计用来简化对象属性的重复访问。然而,尽管它在某些情况下可以减少代码的冗余,但`with`语句的使用通常被认为是不推荐的,因为它可能会引起代码的混乱...

    深入浅析javascript函数中with

    JavaScript中的`with`语句是一种特殊的作用域控制结构,它允许在一段代码块中便捷地访问指定对象的属性,而无需反复使用`.`操作符。然而,`with`语句也存在一些显著的缺点和性能问题,因此在实际编程中应当谨慎使用...

    深入浅出JavaScript 4th.Edition(英文原版)

    - **继承机制**:探讨JavaScript中实现继承的方式及其优缺点。 - **封装与模块化**:讲解如何通过封装提高代码的可维护性和重用性,以及如何将大型项目分解为模块。 **6. Programming the Browser** - **DOM操作...

    JavaScript操作XML

    XML和JSON各有优缺点,选择哪种取决于具体需求。 8. **转换XML为JSON**:为了适应JSON的流行,经常需要将XML转换为JSON,反之亦然。JavaScript中可以使用`XMLSerializer`和`JSON.parse`或`JSON.stringify`进行转换...

    Building Android Apps with HTML, CSS, and JavaScript

    - **Web应用与原生应用的区别**:首先解释了什么是Web应用和原生应用,并讨论了各自的优缺点。 - **选择适合的方法**:帮助读者根据项目需求和个人技能集决定最适合的方法。 - **Web编程速成课程**:为那些对HTML、...

    Thymeleaf常用功能

    7. **事件处理**:Thymeleaf的`th:onclick`、`th:onchange`等指令可以用于添加JavaScript事件处理代码。 8. **条件和逻辑表达式**:Thymeleaf表达式支持复杂的逻辑运算,如`th:if="${user.age > 18 && user.is...

    JavaScript常见事件处理程序实例总结

    在探讨JavaScript事件处理...以上是关于JavaScript常见事件处理程序的实例总结,通过这些实例,我们可以看到各种事件处理方式的优缺点以及适用场景。开发者可以根据具体的开发需求和环境,选择最合适的事件处理方式。

    金蝶EAS DEP脚本汇总.docx

    with()语句用于指定作用域,例如,with(easNames){...}指定了easNames的作用域,所有在该作用域中的变量和方法都可以调用easNames中的内容。 十、注意事项 在使用DEP脚本时,需要注意以下几点: * 需要了解...

    js批量设置样式的三种方法不推荐使用with

    在现代JavaScript开发中,不推荐使用with语句,特别是在涉及到操作DOM元素及其样式时。 在这三种方法中,推荐使用第一种方法(使用JSON对象)进行批量样式设置,因为它不仅效率高,而且代码结构清晰,可读性和可...

    javascript严格模式详解(含严格模式与非严格模式的区别)

    JavaScript中的“严格模式”(Strict Mode)是一种特殊的执行模式,它在代码的开头通过`'use strict';`声明,旨在使代码更加规范和安全。严格模式不仅有助于提高代码质量,还可以帮助开发者避免一些常见的错误。以下...

    AJAX新手基础教程课程

    **七、AJAX的优缺点** 优点: 1. 提升用户体验,页面无刷新,加载速度快。 2. 数据传输量小,只请求需要的部分数据。 3. 可实现复杂的应用场景。 缺点: 1. 不利于SEO,搜索引擎爬虫无法执行JavaScript,可能无法...

Global site tag (gtag.js) - Google Analytics