有没有对JS了解比较深的朋友
@老虎会游泳, 这样看来在严格模式下会影响块级作用域中定义函数的行为,最后我找到了一个标准说明,或许和这个有关系 https://262.ecma-international.org/6.0/#sec-block-level-function-declarations-web-legacy-compatibility-semantics 这样看来这应该属于一个未定义行为,是语言标准之外的东西
红米K30 Pro 变焦版
小米MIX2s(白)
小米MIX2s(白)
<!-- markdown -->
@老虎会游泳,函数提升在预编译阶段实现,而赋值在运行阶段,很明显我们不是在做延迟选择量子擦除实验
,。解释我倾于像16楼我说的那样,参考来自 https://stackoverflow.com/questions/31419897/what-are-the-precise-semantics-of-block-level-functions-in-es6
红米K30 Pro 变焦版
@水木易安,我说错了,其实想表达的是惠勒延迟选择实验
,实验内容: https://www.bilibili.com/video/BV1x4411T7dg ,大概意思就是这个实验看起来像是颠倒了因果关系
红米K30 Pro 变焦版
看了你们的讨论过程,我的问号更多了
人生若只如初见
@枫叶飘,正常,由于历史原因,js本身是有缺陷的。
我觉得可以停止观战了。
令人迷惑的东西就应该避免,而不是用作谈资。
https://www.zhihu.com/question/387134172
小米MIX2s(白)
@SKSlience,不能反推答案,先知道了结果再去找代码不同,然后得出结论
。我不管是调试,还是分析a变量作用域都在Local Scope,只是预编译过程黑箱了,不知道其中的过程
红米K30 Pro 变焦版