执行顺序令人困惑

时间:2015-07-31 00:26:21

标签: javascript html parseint

这是我用来将客户端宽度作为JavaScript整数变量的代码,以便我可以对其执行操作。

var width1;
window.onload = function()
{
    width1 = document.body.clientWidth;
}
var width = parseInt(width1);

变量宽度为NaN

1 个答案:

答案 0 :(得分:0)

您编写的代码不是从上到下执行,等待定义的函数被执行 - 分配给window.onload的函数被推迟到该事件被满足,即窗口已加载

该值的任何后处理也需要在该回调中发生。

window.onload = function() {
    var width = parseInt(document.body.clientWidth);
    // Now do your work with `width` here.
}

Further reading

此外,在JavaScript中不建议使用大括号样式,因为如果您使用它来返回对象文字,则该语言的某些部分无法正常工作。

return 
{
    prop: 'value'
}

语法说return之后不能有行终止符,所以你会得到标准的return undefined行为,并且有一个孤立的对象文字。