JavaScript词法作用域经典练习题

这篇博客通过一系列经典练习题深入探讨了JavaScript的词法作用域。首先,展示了如何在全局作用域中声明变量并理解'in'关键字的用法。接着,解释了函数内部的变量覆盖和预解析过程。在第三个示例中,讨论了函数参数的词法作用域,即使在内部定义同名变量,外部变量仍可被访问。第四部分涉及变量提升,指出未声明的变量会导致全局变量的创建。第五题展示了一个嵌套函数和内部函数修改外部变量的场景。第六题说明了在同一作用域内重定义函数会导致预期之外的行为。最后,通过一个对象赋值的例子揭示了引用类型在赋值时的特性,以及如何导致意外的值。这些练习有助于深化对JavaScript词法作用域的理解。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>

<script>
 //1 ====================================================
 var a;
 if ('a' in window) {
   var a = 10;
 }
 alert(a);  // 10
//  注:  in 是一个关键字  用于判断 '属性' in 对象  当前这个属性是否是对象的属性
//2 ====================================================
 var foo = 1;
 function bar() {
   if (!foo) {
     var foo = 10;
   }
   alert(foo); //  1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值