作用域链的说明

1.1 执行环境及作用域

1.1.1 延长作用域链

利用:有些语句可以在作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。

在以下两种情况下会发生:

  • try - catch 语句的catch块;
  • with语句;

以上语句都会在作用域链的前端添加一个变量对象,with语句会将指定的对象添加到作用域链中。对catch语句来说,会创建一个新的变量对象,包含被抛出的错误对象声明。

ps:

with 语句 为一个或一组语句指定默认对象,为逐级的对象访问提供命名空间式的速写方式。
用法: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语句的JavaScript代码很难优化,因此它的运算速度比不使用with语句的等价代码要慢得多。

而对于with语句实现的语句简化,我们完全可以使用变量来实现。

例如:

var form = frames[1].document.forms[0];
form.address.value = ‘http://www.****.com/;
form.email.value =***@163.com’;

1.1.2 没有块级作用域

js 高级程序设计 p76 暂不叙述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Calmness_7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值