js中是函数声明先提升还是变量先提升

这个昵称没有被占用吧 2016-09-14 10:40:21
在 你不知道的JavaScript(上卷) 一书的第40页中写到:函数会首先被提升,然后才是变量。

console.log(foo);
function foo(){
console.log("函数声明");
}
var foo = "变量";

输出为:
function foo(){
console.log("函数声明");
}

疑问:如果函数先提升,接着变量再提升,那么变量提升后的值不是会覆盖掉函数提升吗,最后执行console.log(foo)时,不是应该输出变量吗,即undefined
...全文
1886 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaerfeng 2017-04-22
  • 打赏
  • 举报
回复 1
引用 5 楼 Bigbigwen 的回复:
var getName = function(){ console.log(2); } function getName (){ console.log(1); } getName(); 这种情况,函数和变量的声明都提升了,输出结果是2,这种情况下getName函数为什么没有覆盖getName变量呢
先理解这句话:函数会首先被提升,然后才是变量。所以你说反了。你后来的变量覆盖了你的函数。代码并不是你写的顺序那样执行的。
BigBigWen 2017-03-21
  • 打赏
  • 举报
回复
var getName = function(){ console.log(2); } function getName (){ console.log(1); } getName(); 这种情况,函数和变量的声明都提升了,输出结果是2,这种情况下getName函数为什么没有覆盖getName变量呢
saintknick 2017-02-20
  • 打赏
  • 举报
回复
在编译阶段,后面的变量声明遇到前面有冲突的变量声明或者函数声明,都会忽略。
LH6235 2016-09-14
  • 打赏
  • 举报
回复
函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖,所以你上面的代码实际上是 function foo(){ console.log("函数声明"); } var foo; console.log(foo); foo = "变量"; 在最后再加上打印就能看到函数已经被覆盖了。 注:初始化变量不会把值也提上上去,只会提升变量的声明。
scscms太阳光 2016-09-14
  • 打赏
  • 举报
回复
理解楼主的疑问。其实主要是var foo;并不会覆盖之前的变量
var foo = "function";
var foo;//它只是定义,全不会覆盖变量
console.log(foo);//返回 function
Devin.qu 2016-09-14
  • 打赏
  • 举报
回复
javascript 函数声明和变量声明会被解释器提升到最顶端,但是变量的初始化不会被提升 因为var foo = "变量"; foo被初始化了
内容概要:该论文研究了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能够同时反射和传输信号,与传统的仅能反射的RIS不同。结合NOMA技术,可以提高覆盖范围、同时服务的用户数量和频谱效率。由于STAR-RIS元素众多,获取完整信道状态信息(CSI)开销大,因此作者提出在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量,以最大化总可实现速率,同时保证每个用户的最低速率要求。仿真结果表明,该方案优于STAR-RIS辅助的OMA系统。论文还提供了详细的Python代码实现,包括系统参数设置、信道模型、速率计算、目标函数、约束函数、主优化函数和结果可视化等内容,完整再现了论文中的关键技术方案。 适合人群:通信工程领域的研究人员、高校教师和研究生,特别是对智能反射面技术、非正交多址接入技术和智能优化算法感兴趣的读者。 使用场景及目标:①研究和开发基于STAR-RIS的无线通信系统;②探索PSO算法在无线通信优化中的应用;③评估STAR-RIS-NOMA系统相对于传统OMA系统的性能优势;④为实际通信系统设计提供理论依据和技术支持。 其他说明:该论文不仅提出了创新的技术方案,还提供了完整的代码实现,便于读者理解和复现实验结果。此外,论文还讨论了与其他优化方法(如DDPG)的对比,并分析了不同工作协议(如模式切换、时间切换和能量分配)的性能差异,进一步丰富了研究内容。

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧