gpt4 book ai didi

javascript - Javascript 中 `function fx () {}` 形式的函数声明是 LHS 还是 RHS 查找?

转载 作者:行者123 更新时间:2023-12-03 08:30:11 25 4
gpt4 key购买 nike

我正在阅读 Kyle Simpson 的范围和闭包标题你不懂 JS,特别是这个主题 Compiler Speak 。本节介绍引擎使用的查找类型。现在我在本节给出的范围内了解了什么是 LHS 或 RHS 查找。

我的问题是注释说 function fx(a) {.. 形式的函数声明不是 LHS 查找。对此有一个解释,但我无法理解。这是整个笔记

You might be tempted to conceptualize the function declaration function foo(a) {... as a normal variable declaration and assignment, such as var foo and foo = function(a){... . In so doing, it would be tempting to think of this function declaration as involving an LHS look-up. However, the subtle but important difference is that Compiler handles both the declaration and the value definition during code-generation, such that when Engine is executing code, there’s no processing necessary to “assign” a function value to foo . Thus, it’s not really appropriate to think of a function declaration as an LHS look-up assignment in the way we’re discussing them here.

任何形式的澄清都会有帮助。即使在 LHS 和 RHS 查找上也是如此。

最佳答案

“查找”主题与表达式求值有关。函数声明语句

function someName() {
// code
}

不是表达式。它是一种不同的语句类型,就像 return 是一种不同的语句类型、whileif 一样。除了要绑定(bind)到本地作用域中的函数名称的新函数对象的隐式实例化之外,函数声明语句中不会发生任何表达式求值。

LHS 和 RHS 值(根据我的经验,文献中通常称为 l 值r 值)的主题很重要,但它只是与函数声明无关。

关于javascript - Javascript 中 `function fx () {}` 形式的函数声明是 LHS 还是 RHS 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33370371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com