Javascript中这些函数声明之间的区别是什么?
我很难理解以下声明之间的区别Javascript中这些函数声明之间的区别是什么?,javascript,function,declaration,Javascript,Function,Declaration,我很难理解以下声明之间的区别 var User = function(name, email) { this.name = name; this.email = email; }; 及 我知道最基本的区别是var User=function(name,email)在运行时创建,而function User(name,email)将在解析时创建 添加示例 这将在这里起作用,因为解析文件时,name可用 name(); function name () { console.
var User = function(name, email) {
this.name = name;
this.email = email;
};
及
我知道最基本的区别是
var User=function(name,email)
在运行时创建,而function User(name,email)
将在解析时创建
添加示例
这将在这里起作用,因为解析文件时,name
可用
name();
function name () {
console.log('My Name')
}
但这将抛出一个名为未定义不是函数的错误
但这里的问题是,在读取行var name=function()
之前,它不会被声明
函数表达式与函数声明您可能会发现以下解释很有帮助:““解析”通常是将某些数据转换为另一种表示形式的过程。例如,对于JS,它可以是从文本到某种字节码(我实际上不知道)。但在那一刻,不可能创建任何运行时对象(如函数)。不同之处在于函数声明的求值先于其他任何东西。
name();
function name () {
console.log('My Name')
}
name()
var name = function(){
console.log('My Name');
}