JavaScript变量初始化赋值为函数调用时函数是否自动执行?
问题解答
- 只要代码中出现带括号的函数调用写法(比如你代码里的
calculateArea(radius)),不管是否将返回值赋值给变量,JavaScript 解析到这行代码时都会立即执行对应的函数。 - 你示例中
var theArea=calculateArea(radius);能输出预期结果,就是因为这行代码执行时先触发了calculateArea函数运行,拿到返回值后再赋值给theArea变量。 - 就算你不做赋值操作,直接写一行
calculateArea(radius);,函数依然会完整运行,只是它的返回值没有被你存储,无法后续使用而已。
你可以做个简单测试验证,给函数加一行执行日志:
function calculateArea(r){ console.log('calculateArea 函数被执行了') var area; if (r<=0){ return 0; } else { area=Math.PI*r*r; return area; } } var radius = 5.2; // 不赋值,直接调用 calculateArea(radius); // 控制台依然会打印 "calculateArea 函数被执行了"
内容的提问来源于stack exchange,提问作者Metalvain
相关产品推荐
相关产品推荐

