HTML5学堂:每天一道题,强壮程序员!今日主要涉及12.15日关于操作符以及操作符优先级、数据类型比较的题目解答,以及一道涉及函数返回值的题目。
12.15真题题目如下,最终输出的结果是多少?
<script>
if (10 > 9 > 8 == true) {
console.log('HTML5学堂');
} else {
console.log('H5course');
}
</script>
本题目的答案是:H5course。
首先回顾一下操作符的优先级。操作符的优先级如下:逻辑非>算术操作符>关系操作符>逻辑与、或>条件操作符>赋值操作符。关系操作符的比较方式是从左到右的。先比较10和9,10 > 9是成立的,关系操作符返回的应该是布尔值,也就是true和false,此时返回的是true。true和8进行比较运算,此时会出现数据类型的转换,true会转换成数字1,再与8进行比较,1自然是小于8的,因此此处返回的是false。最后比较false和true,这两者自然是不等的,因此if语句中的条件不能成立,执行else,打印出H5course。
<script>
(function f(f){
return typeof f();
})(function(){ return 1; });
</script>
关于每日代码练习题的答案和解析,我们会在明日文章当中,发布相关答案以及基本原理。(PS:周六日不发布题目)