JavaScript中with语句的用法与性能优化替代方案

作者:沉舟

时间:2026-10-22

浏览:232

本文介绍JavaScript中with语句的语法及其在简化代码中的作用,同时指出其因作用域链查找导致的性能问题。文章提供了使用局部变量引用对象作为替代方案,以在保持代码简洁的同时提升执行效率。

文章目录

with语句的基本语法

with (object)


statements


参数


object


新的默认对象。


statements


一个或多个语句,object 是该语句的默认对象。


说明


with语句的使用示例

with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:



x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)


y = Math.tan(14 * Math.E)


当使用 with 语句时,代码变得更短且更易读:


代码如下:

 
with (Math){
x = cos(3 * PI) + sin (LN10)
y = tan(14 * E)
} 


with(),,,;


with(document)write(fileSize),write('<br>'+lastModified)


  


避免使用JavaScript的With

with语句的性能问题与替代方案

JavaScript允许使用with关键字来指定某个对象的一系列属性或者方法。比如有这样一段代码:


代码如下:

 
var x = document.body.scrollLeft;
document.write('text1');
document.write('text2');
document.write('text3');

如果用with的话,可以这样写:


代码如下:

 
with document {
var x = body.scrollLeft;
write('text1');
write('text2');
write('text3');
} 

但是,这样看似精简代码的方法却会使JavaScript的执行时间增加许多。因为它会去检查大括号内的每个变量是否是这个对象的属性或者方法。


所以,如果要精简代码的话,可以这样写,从而避免使用with。


代码如下:

 
var d = document;
var x = d.body.scrollLeft;
d.write('text1');
d.write('text2');
d.write('text3');

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章