面试题(二)"/>
ES6面试题(二)
1. 判断数组的方法有哪些?
(1)instanceof 操作符判断
用法:arr instanceof Array
(2) 对象构造函数的constructor判断
用法:arr.constructor === Array
(3) Array 原型链上的isPrototypeOf
用法: Array.prototype.isPrototypeOf(arr)
(4) Object.getPrototypeOf方法
用法:Object.getPrototypeOf(arr) === Array.prototype
(5) Object.prototype.toString方法
用法:Object.prototype.toString.call(arr) === Array.prototype
(6) Array.isArray方法
用法:Array.isArray(arr)
2. 模板字符串和字符串的区别
模板字符串的语法是: 外面是反引号 ` 内容1 ${参数}, 内容2 ${参数} `
字符串里面需要注入参数的时候,就可以使用模版字符串,其他时候两者用哪一个都可以,两者输出的结果一样,就是拼接方式方式不同;
模板字符串中,所有的空格、换行或缩进都会被保留在输出之中,普通字符串不会;模板字符串要输出特殊字符` 或者\需要加上转义字符‘\’,字符串要输出’也要加上转义符;模板字符串只要最终能得到一个值的,就可以通过${}注入到模板字符串中。模板字符串中嵌入变量,需要将变量名写在${}之中。
3. 箭头函数
①结构:const/let 函数名 = (参数) = > {函数体};
②一般函数转为箭头函数步骤:声明形式->函数表达式形式->箭头函数
function fun() {}; ->const/let add = function() {}; -> const/let add = ()=>{};
③注意事项:单个参数可以省略圆括号,无参或者有多个参数不能省略圆括号
④单行函数体可以同时省略{}和return,多行函数体不能省略。
⑤单行对象:如果箭头函数返回单行对象,可以在{}外面加上(),让浏览器不再认为那是函数体的花括号
⑥不适用箭头函数的场景:作为构造函数(因为构造函数有this指向而箭头函数没有this指向);需要this调用对象时;需要使用arguments时(箭头函数没有arguments)
4. 严格模式和非严格模式的区别
①严格模式优点:消除了js语法的一些不合理、不严谨之处,减少怪异行为;保证代码运行的安全;提高代码编译效率,提高运行速度;为新版本的js做好铺垫。
②开启严格模式:为整个脚本开启严格模式:在脚本语句之前放一个特定语句”use strict”;为函数开启:把”use strict”声明放在函数体的所有语句之前。
③区别:在非严格模式,若变量没有声明就赋值,默认是全局变量,不会报错,而严格模式下变量必须添加关键字声明才可以,否则会报错;在非严格模式下,全局作用域中的函数内部this默认指向window,在严格模式下则指向的是undefined;非严格模式允许重复变量命名,严格模式不允许。
5. 对象字面量的增强
①创建对象的方法:
//创建对象的两种方法//1.通过构造函数实例化对象const obj = new Object();
//给对象添加属性obj.age = 18;Obj[‘age’] = 18;//2.字面量对象const obj = {};
②属性的简洁表示法
// 键名和变量或常量名一样的时候可以只写一个const age = 18;const person = {// age:ageage};console.log(person); // {age:18}
③方法的简洁表示法
/方法的简洁表示法const person = {// speak:function() {}speak() {}};console.log(person); // {speak: ƒ}
④方括号语法可以写在对象字面量中,方括号中可以放[值或者通过计算可以得到值的(表达式)]
onst prop = 'age';const person = {[prop]: 18[‘sex’]:’男’[fun()]:18[‘s’ + ‘ex’]:’男’};console.log(person); //{age: 18 ....}
6. 方括号语法和点语法的区别
点语法是方括号语法的特殊形式。当属性或方法名是合法标识符(属性名由数字、字母、下划线以及$构成,且不能以数字开头)时,可以使用点语法或者方括号语法,当属性或方法名不是合法标识符只能使用方括号语法;使用变量或者常量保存属性名时,只能使用方括号语法。针对同一个属性,方括号与语法与简洁表达式不能同时使用。
更多推荐
ES6面试题(二)
发布评论