Java面试官老王 2020-10-30 16:42 采纳率: 0%
浏览 53

写代码居然给自己写蒙了

觉得不好使 结果它好使 js 作用域链是执行时才开始搜索的 所以这段代

码才会正常执行

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 17:54
    关注

    参考GPT和自己的思路:

    你的问题描述比较简洁,但是有些地方还是不够清晰。首先,你说“不好使”的具体表现是什么?其次,你所提供的代码片段不够完整,无法很清楚地理解你的疑问。

    根据你提供的信息,我猜测你遇到的问题可能是跟JavaScript的作用域链有关。JavaScript采用词法作用域(静态作用域),也就是说,在函数中定义的变量的作用域是在函数定义时就已经确定的,而不是在函数执行时才确定的。当执行到一个函数时,JavaScript引擎会在当前函数的作用域中寻找变量。如果当前函数的作用域中没有找到变量,就会沿着作用域链向上查找,直到找到该变量为止。

    所以,在你提供的代码片段中,如果函数change内部没有声明变量b,那么JavaScript引擎就会沿着作用域链向上查找,找到外部作用域中的变量b。如果外部作用域中也没有变量b,那么就会继续向上查找,直到找到为止。

    如果你遇到了与作用域链相关的问题,可以检查一下你的代码中是否出现了函数嵌套等情况,以及是否在函数内部声明了变量,但是又在其外部使用了变量等。另外,你也可以在浏览器的开发者工具中打开控制台,调试执行过程,寻找问题所在。

    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵