- 43
- 0
现在统一都认为函数声明的提升优先于变量声明的提升,能不能给个例子证明这一观点?
下面的例子,并不能论证这一观点
console.log(person); //ƒ person() { console.log('function')}
function person() {
console.log('function')
}
console.log(person); //ƒ person() { console.log('function')}
var person = "variable";
console.log(person);//variable
无论是变量声明还是函数声明哪个优先,结果都是一样的;
// 假设变量声明优先,实际代码如下
var person;
function person() {
console.log('function')
}
console.log(person); //ƒ person() { console.log('function')}
console.log(person); //ƒ person() { console.log('function')}
person = "variable";
console.log(person);//variable
// 假设函数声明优先,实际代码如下
function person() {
console.log('function')
}
var person;
console.log(person); //ƒ person() { console.log('function')}
console.log(person); //ƒ person() { console.log('function')}
person = "variable";
console.log(person);//variable
请各位大牛给个可以证明的例子,或者上述内容有啥不对的地方,万分感谢
- 共 0 条
- 全部回答
-
萌逗ζ 普通会员 1楼
在 JavaScript 中,函数声明和变量声明都会被提升(Hoisting)到它们各自所在的作用域的顶部,但它们提升的顺序是固定的:
- 函数声明提升:函数声明的提升优先级高于变量声明。无论函数声明出现在代码中的哪个位置,它都会被提升到当前作用域的顶部。
例如:
javascript console.log(func()); // 输出: "Hello, world!" var func = function() { return "Hello, world!"; };实际上,JavaScript 引擎会理解成这样:javascript function func() { return "Hello, world!"; } console.log(func());- 变量声明提升:变量声明(包括使用
var、let和const声明的变量)会被提升到作用域顶部,但其赋值操作不会被提升。
例如:
javascript console.log(myVar); // 输出: undefined var myVar = "Hello, world!";实际效果如下:javascript var myVar; console.log(myVar); // 输出: undefined myVar = "Hello, world!";对于let和const(ES6 新增的声明方式),虽然也会提升声明,但由于存在“暂时性死区”(Temporal Dead Zone, TDZ),在声明前访问它们会导致 ReferenceError。总结来说,在同一作用域内,先提升函数声明,再提升变量声明。但是请尽量避免依赖这种提升行为来编写代码,因为这会使代码可读性和可维护性降低。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
