var a;
function a(){}
console.log(a)
答案是 function a(){}
很疑惑的是 函数声明里面的函数名不是可以随便取吗,也可以不取,做匿名函数。比如
function(){} 这样
或者
var b = function a(){}如此
所以为啥 上面的答案是function a(){}
我觉得function a(){} 这里的 a 和var a 里的 a只是凑巧名字一样而已 为什么会赋值?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
函数声明会覆盖变量声明,你这里只是声明了变量,a和后面的函数声明重名了,于是就被覆盖了。
赋值操作会覆盖声明操作,比如这样——
虽然函数的声明覆盖了变量的声明,但是变量的赋值操作又覆盖了函数的声明,所以最后的结果是0。
关于第一个问题,“函数声明里面的函数名不是可以随便取吗,也可以不取,做匿名函数。比如:function(){}”。
你确定这个代码是可以执行的么? -
function(){}并不是有效的Javascript代码吧?当你希望使用匿名函数时,必须将其赋值给一个变量,或者用在
iife(Immediately Invoked Function Expression),如:我觉得function a(){} 这里的 a 和var a 里的 a只是凑巧名字一样而已 为什么会赋值?
这话从何而来?怎么还整出赋值来了?我猜你可能把栗子理解成这样了:
这么理解会不会好点儿?