前端面试题—2019-08-13
一.js基础
1.eval是做什么的?
eval()是javascriptd的一个函数,它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。 由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval('('+ str +')');
提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。所以关于面试的知识点,记住上面加粗部分就好,如果想了解它的具体用法可以一下内容。
语法:eval(string),返回值是传入string的计算结果(如果结果存在)
注意:该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。
例子一:
<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)");
document.write(eval("2+2"));
var x=10;
document.write(eval(x+17));
</script>
输出:200,4,27
例子二:
<script type="text/javascript">
eval("2+3") // 返回 5
var myeval = eval; // 可能会抛出 EvalError 异常
myeval("2+3"); // 可能会抛出 EvalError 异常
2.什么是window对象? 什么是document对象?
window对象是指浏览器打开的窗口。window是浏览器的内置对象,与global全局对象用法、作用都一样。
document对象是Document对象(HTML 文档对象)的一个只读引用,window对象的一个属性。