前端面试题之易错面试题系列–1后续
题目四(符号的优先级)
下面这段javascript代码, 输出什么
var msg = "hello";
for (var i = 0; i < 10; i++) {
var msg = "hello" + i * 2 + i;
}
console.log(msg);
先看答案 hello189
解释
这道题的难点不在域.而是String拼接和符号的优先级.
//循环到最后的时候i=9
"hello"+9*2+9
"hello"+18+9
"hello18"+9
"hello189" // 结果为String类型字符串
题目五(运算符的优先级以及前++和后++)
下面这段javascript代码, 输出什么
var x=10;
var y=20;
var z=x<y?x++:++y;
console.log('x='+x+';y='+y+';z='+z);
看一下答案
解析
var x=10;
var y=20;
var z=x<y?x++:++y;
//当执行到这里的时候x=10,y=20,z=x++
console.log('x='+x+';y='+y+';z='+z);
- 赋值=运算符的优先级最低。因此先看右边的表达式。
- 右边的表达式是一个三元运算符。
- 判断x<y(10<20)返回true,因此执行:前的表达式。
- 也就是整个表达式等价于:z = x++。
- x自增前的值为10。
- x++,x最终等于11。
- y的值没有发生变化(因为没有执行:后面的表达式),因此y的值仍为20
题目六(Math.round())
以下代码执行后,result 的值是:
var result = Math.round(11.5) + Math.round(-11.5);
答案为1
解析
Math.round(x)
- 如果参数的小数部分大于 0.5,则舍入到下一个绝对值更大的整数;
- 如果参数的小数部分小于 0.5,则舍入到下一个绝对值更小的整数;
- 如果参数的小数部分恰好等于0.5,则舍入到下一个在正无穷(+∞)方向上的整数。注意,与很多其他语言中的round()函数不同,
题目七(XML)
- 什么是 XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
- XML 与 HTML 的主要差异
- XML 不是 HTML 的替代。
- XML 和 HTML 为不同的目的而设计:
- XML 被设计为传输和存储数据,是扩展标记语言,其焦点是数据的内容。
- HTML 被设计用来显示数据,是超文本标记语言,其焦点是数据的外观。
- HTML 旨在显示信息,而 XML 旨在传输信息。