ES6面试题(二)

14 篇文章 0 订阅
12 篇文章 0 订阅

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:age
            age
        };
        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. 方括号语法和点语法的区别

点语法是方括号语法的特殊形式。当属性或方法名是合法标识符(属性名由数字、字母、下划线以及$构成,且不能以数字开头)时,可以使用点语法或者方括号语法,当属性或方法名不是合法标识符只能使用方括号语法;使用变量或者常量保存属性名时,只能使用方括号语法。针对同一个属性,方括号与语法与简洁表达式不能同时使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值