JavaScript 之 进阶

文章目录

    • JavaScript 进阶
      • 1. 作用域
        • 局部作用域
          • 函数作用域
          • 块作用域
        • 全局作用域
        • 作用域链
        • 垃圾回收机制
          • 引用计数法
          • 标记清除法
        • 闭包
        • 变量提升
      • 2. 函数进阶
        • 函数提升
        • 函数参数
          • 动态参数
          • 剩余参数
          • 展开运算符
        • 箭头函数
          • 箭头函数语法
          • 箭头函数参数
          • 箭头函数 this
      • 3. 解构赋值
        • 数组解构
        • 对象解构
      • 4. 深入对象
        • 创建对象
        • 构造函数
        • 实例成员
        • 静态成员
      • 5. 内置构造函数
        • 引用类型
          • Object 类型
          • Array类型
        • 包装类型
          • String类型
          • Number类型
      • 6. 编程思想
        • 面向过程编程
        • 面向对象编程
      • 7. 构造函数
      • 8. 原型
        • 原型
        • constructor属性
        • 对象原型
        • 原型继承
        • 原型链
      • 9. 深浅拷贝
        • 浅拷贝
        • 深拷贝
      • 10. 异常处理
        • throw抛异常
        • try/catch捕获异常
        • debugger
      • 11. 处理this
        • this指向
        • 改变this
          • **call改变this指向**
          • **apply改变this指向**
          • **bind改变this指向**
          • 三者的总结
      • 12. 性能优化
        • 防抖
        • 节流

JavaScript 进阶


1. 作用域

  • 作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问。
  • 作用域分为:
    • 局部作用域
    • 全局作用域
局部作用域
  • 局部作用域分为函数作用域块作用域
函数作用域
  • 在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。
    • 函数内部声明的变量,在函数外部无法被访问
    • 函数的参数也是函数内部的局部变量
    • 不同函数内部声明的变量无法互相访问
    • 函数执行完毕后,函数内部的变量实际被清空了
<script>// 声明 counter 函数function counter(x, y) {// 函数内部声明的变量const s = x + yconsole.log(s) // 18}// 设用 counter 函数counter(10, 8)// 访问变量 sconsole.log(s)// 报错
script>
块作用域
  • 在 JavaScript 中使用 { } 包裹的代码称为代码块,代码块内部声明的变量外部将【有可能】无法被访问。
    • let 声明的变量会产生块作用域,var 不会产生块作用域
    • const 声明的常量也会产生块作用域
    • 不同代码块之间的变量无法互相访问
    • 推荐使用 letconst
    • 在开发中 letconst 经常不加区分的使用,如果担心某个值会不小被修改时,则只能使用 const 声明成常量。

全局作用域

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部