词法作用域

客官°小女子只卖身不卖艺 2022-07-12 10:45 342阅读 0赞

1、概念

变量的作用域 是由代码 书写的位置决定 而不是 变量被使用的位置决定;只有函数可以限定作用域。

2、作用域链

在JavaScript中使用变量,JavaScript解释器首先在当前作
用域中搜索是否有该变量的定义,如果有,就是用这个变量;如果没有就到父域中寻找该变量.
以此类推,直到最顶级作用域,仍然没有找到就抛出异常”变量未定义”.
注意:如果要找的变量在链的函数参数中也会停止查找,表明已经找到

  1. var num = 10;
  2. (function fn(){
  3. var fn2 = function(){
  4. console.log(num) //10
  5. }
  6. fn2()
  7. })();
  8. var num = 10;
  9. (function fn(){
  10. var fn2 = function(n){
  11. console.log(num) //10
  12. }
  13. fn2()
  14. })();

但是

  1. var num = 10;
  2. (function fn(){
  3. var fn2 = function(num){
  4. console.log(num) //undefined
  5. }
  6. fn2()
  7. })();

发表评论

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

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

相关阅读

    相关 js作用词法分析

    JavaScript作用域: 以函数作为作用域 函数的作用域在函数未被调用之前,已经被创建 函数的作用域存在作用域链,并且也是在被调用之前创建 示例一

    相关 词法作用(marksheng)

    作用域模式 作用域的工作模式分为两种,静态作用域与动态作用域 其中静态作用域包括函数作用域和块作用域 可能同学要问那么词法作用域呢 其实词法作用域和静态作用域

    相关 JavaScript笔记:词法作用

    1、词法阶段 简单地说,词法作用域就是定义在词法阶段的作用域。 后面会介绍一些欺骗词法作用域的方法,这些方法在词法分析器处理过后依然可以修改作用域,但是这种机制

    相关 词法作用

    1、概念 变量的作用域 是由代码 书写的位置决定 而不是 变量被使用的位置决定;只有函数可以限定作用域。 2、作用域链 在JavaScript中使用变量,Java