JavaScript进阶

目录

  • JavaScript
    • 作用域
      • 1.1 局部作用域
      • 1.2 全局作用域
      • 1.3 作用域链
      • 1.4 垃圾回收机制
      • 1.5 闭包
      • 总结
    • 函数进阶
      • 1. 函数提升
      • 2. 函数参数
      • 3. 展开运算符
      • 4.箭头函数
      • 5.结构赋值
      • 6. 解构
      • 7. 构造函数
    • 数组进阶
      • 1. filter
      • 2. reduce
      • 3. ervey
      • 4. some
      • 5. findIdenx
    • 构造函数
      • 1. 编程思想
      • 2. 构造函数
      • 3. 原型对象
      • 4. this指向
      • 5. 原型
      • 6. 原型链
      • 7. instanceof
      • 8. 原型继承(组合式继承)
    • throw 抛异常
    • try/catch
  • 持续更新...

JavaScript

内容记录的是JavaScript进阶笔记。

作用域

作用域(scope)规定了变量能够被访问的"范围",离开了这个范围变量便不能被访问,作用域可以堆叠成层次结构,子作用域可以访问父作用域,作用域分为:

  • 局部作用域
  • 全局作用域
  • 模块作用域

1.1 局部作用域

局部作用域分为函数作用域块作用域

函数作用域:

在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。

function sum(num) {
    // 形参num相当于局部变量
    const num = 10
}
sum(1);
console.log(num) // 外部无法使用函数内部变量

总结

  1. 函数内部生命的变量,在函数外部无法被访问
  2. 函数的形参也可以看做是函数内部的局部变量

块级作用域

在JavaScript中使用{}包裹的代码成为代码块,代码块内部声明的变量外部【有可能】无法被访问。

for (let i = 0; i < 10; i++) {
    // i 只能在改代码块中被访问
    console.log(i); // 正常
}
// 超出了 i 的作用域
console.log(i) // 报错

总结

  1. let/const声明会产生块作用域, var不会产生作用域
  2. 不同代码之间声明的变量无法互相访问
  3. 推荐使用let或const

1.2 全局作用域

你可能感兴趣的:(javascript,笔记,前端)