javascript - 函数语句与函数表达式奇怪的行为

标签 javascript

var a = function b() {

};

console.log(typeof b); //gives undefined
console.log(typeof a); //gives function

为什么两个输出不同?

我理解函数表达式和函数语句之间的区别,但无法理解上面的输出。

据我所知,javascript 使 var a 指向此处分配给命名函数 b 的内存。在这种情况下 typeof b 也应该返回 function 但它返回 undefined

有什么解释吗?

最佳答案

因为命名函数表达式的名称在表达式范围内。

var a = function b() {
    console.log(typeof b); //gives function
    console.log(typeof a); //gives function
};

console.log(typeof b); //gives undefined
console.log(typeof a); //gives function

a();

关于javascript - 函数语句与函数表达式奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42456251/

相关文章:

javascript - Firebase 身份验证 : Calling `createUserWithEmailAndPassword` calls `createAuthUri` on error

javascript - 禁用 ="disabled"属性不会禁用 IE10 中的文本字段

javascript - 如何在 React Native 上获取 IDFA 和 ADID?

javascript - onclick 事件处理程序不触发

javascript - jQuery 停止附加删除 div

javascript - 添加兄弟 div 后更改 div 的样式

javascript - Chrome 扩展程序可通过扩展程序弹出窗口中的按钮更改 DOM

javascript - 如何在 JavaScript 中读取 html 表格列表

javascript - jquery ui selectmenu 滚动条不工作

javascript - 不同时区的javascript日期问题