各位上午好,在if语句中要判断p是否存在,根据作用域的查找规则,如果在局部函数中没有该变量,
查询就会向上进行,而在全局变量中已经有了var p=8;为啥还会返回"p不存在"的提示框呢?谢谢!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
重新声明了p,没有赋值,相当于现在p为undefined。
题主所谓的"根据作用域的查找规则,如果在局部函数中没有该变量,查询就会向上进行",这里if判断时,已经找到了p(值为undefined),所以不会再往上查找。
然而你在上一层匿名闭包中申明了一个 p,其值为 undefined,因此此处访问到的是这个局部 p
因为你在函数内部作用域又定义了一个
p变量啊。