五.对象属性或方法简写?
es6允许当对象的属性和值相同时,省略属性名
es6允许当一个对象的属性的值是一个方法时,可以使用简写的形式。省略了:function
六.JavaScript 的组成?
ECMAScript(核心):JavaScript 语言基础
DOM(文档对象模型):规定了访问 HTML 和 XML 的接口
BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法
七.检测浏览器版本版本有哪些方式?
根据 navigator.userAgent // UA.toLowerCase().indexOf(‘chrome’)
根据 window 对象的成员 // ‘ActiveXObject’ in window
八.解释 JavaScript 中的作用域与变量声明提升?
在 JavaScript 中,作用域为 function(){}内的区域,称为函数(局部)作用域。
JavaScript 变量声明提升:
在 JavaScript 中,函数声明与变量声明经常被 JavaScript 引擎隐式地提升到当前作用域的顶部。
声明语句中的赋值部分并不会被提升,只有名称被提升
函数声明的优先级高于变量,如果变量名跟函数名相同且未赋值,则函数声明会覆盖变量声明
如果函数有多个同名参数,那么最后一个参数(即使没有定义)会覆盖前面的同名参数
九.Javascript 作用链域?
全局函数无法查看局部函数的内部细节,但局部函数可以查看其上层的函数细节,直至全局细节
如果当前作用域没有找到属性或方法,会向上层作用域查找,直至全局函数,这种形式就是作用域链
十.eval 是做什么的?
eval 的功能是把对应的字符串解析成 JS 代码并运行
应该避免使用 eval,不安全,非常耗性能(先解析成 js 语句,再执行)
由 JSON 字符串转换为 JSON 对象的时候可以用 eval(’(’+ str +’)’);