JavaScript高级(五)作用域

本是古典 何须时尚 2021-12-18 15:35 346阅读 0赞

作用域

什么是作用域?

*它就是一块“地盘”,一个代码段所在的区域
*它是静态的(相对于上下文对象),在编写时就确定了

作用域的分类

  • 全局作用域
  • 局部作用域
  • 没有块级作用域(ES6有)

作用域的作用

  • *隔离变量,不同作用域下同名变量不会有冲突
  • ***函数内部定义的变量与在函数外部定义的变量同名也是可以的,

    • n+1原则:n是执行函数,1是全局作用域window

    var a = 10;

    1. b = 20;
    2. function fn(x) {
    3. var a = 100;
    4. c = 300;
    5. console.log('fn()', a, b, c, x);//100 20 300 10
    6. function bar(x) {
    7. var a = 1000;
    8. d = 400;
    9. console.log('bar()', a, b, c, d, x);//1000 20 300 400 100
    10. //1000 20 300 400 200
    11. }
    12. bar(100);
    13. bar(200);//**执行函数两次,它的作用域不会变化**
    14. }
  1. fn(10)
  2. //以上代码的输出结果为:
  3. //fn() 100 20 300 10
  4. //bar() 1000 20 300 400 100
  5. //bar() 1000 20 300 400 200
  6. //没有块作用域
  7. // if(true){
  8. // var c=3;
  9. // }
  10. // console.log(c);//3

执行函数两次,它的作用域不会变化

发表评论

表情:
评论列表 (有 0 条评论,346人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaScript作用

    ES5中的作用域 一、全局变量 > 全局变量有 全局作用域: 网页中所有脚本和函数均可使用 > 如果变量在函数内没有声明(没有使用 var 关键字),该变量为全