为了账号安全,请及时绑定邮箱和手机立即绑定

关于f(f(x))

关于f(f(x))

墨独 2017-03-14 20:37:34
var f = function () {console.log(1);}f()//1f(f(x))//打印两次1括号内的f(x)不是外层的f(x)的参数么,这里的参数不影响函数内部,为什么会连续打印两次,也就是f()执行了两次
查看完整描述

1 回答

已采纳
?
习惯受伤

TA贡献885条经验 获得超1144个赞

因为JS是动态语言,并不会像C/C++/C#/JAVA这些语言一样检查参数类型是否一致,在执行时才会传入并使用。

虽然你传入的参数并没有使用,但是在执行的时候分析语句,会分析成:

var temp = f(x); //temp = undefined
f(temp);

这两条语句,所以都执行了,执行两次。

查看完整回答
1 反对 回复 2017-03-14
  • 1 回答
  • 0 关注
  • 1133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信