HTML5学堂:每天一道题,强壮程序员!今日主要涉及12.24日题目的解答,以及一道涉及函数作用域的题目。
12.24日真题题目如下,最终输出的结果是多少?
<script>
var num = 10;
var sum = num++, num = num + 2;
console.log(sum);
</script>
本题目的答案是:10。
第一感觉看上去怎么就不是11呢?原因很简单,首先++运算符在变量后面是遵循“先用后加”原则的;其次就在于此处的“逗号运算符”了。
逗号运算符的运算规则是:多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。因此sum = num++中sum是等于10,num等于11,最后一个等式的num就是会被赋值为13,所以输出的sum是10。
相关知识链接:函数与参数
接下来再来一题作用域的题目压压惊吧——>
<script>
function test() {
var i = 0;
if (typeof null == "object") {
var j = 0;
for(var k = 0; k < 10; k++) {
console.log(k);
}
console.log(k);
}
console.log(j);
}
test();
</script>
关于每日代码练习题的答案和解析,我们会在明日文章当中,发布相关答案以及基本原理。