精华内容
下载资源
问答
  • 本文整理汇总了ES6相关的面试题以及对应的参考答案,大家可以在面试前梳理一遍相关知识点,用最好的状态去迎接面试。 1.聊聊 promise?promise 是一个异步函数,主要是为了解决异步处理回调地狱(也就是循环嵌套的...

    ES6全称是ECMAScript6,它可以帮助JavaScript语言成为企业级开发语言,编写大型且复杂的应用程序。在前端面试中,ES6也是一个经常出现的考点。本文整理汇总了ES6相关的面试题以及对应的参考答案,大家可以在面试前梳理一遍相关知识点,用最好的状态去迎接面试。

    f115f893fbd529e58512d8f1f4b355e4.png

    1.聊聊 promise?
    promise 是一个异步函数,主要是为了解决异步处理回调地狱(也就是循环嵌套的问题)而产生的,有 3 种状态,Fulfilled 为成功的状态, Rejected 为失败的状态,Pending 既不是 Fulfilld 也不是 Rejected 的状态,可以理解为 Promise 对象实例创建时候的初始状态,要会写 promise 这个方法。

    2、ES6特性你了解多少?如果遇到一个东西不知道是ES6还是ES5,你改如何区分?
    常用的es6新特性:let && const;let 命令也用于声明对象,但是作用域为局部;iterable 类型。为了统一集合类型,ES6 标准引入了新的 iterable 类型,Array、map和 Set 都属于 iterable 类型,具有 iterable 类型的集合可以通过新的for … of 循环来遍历。es6 比 es5 增加了很多特殊的方法,如果你遇到了这些特殊的方法, 你就可以确定它是 es6。如果你的代码中没有引用这些特殊的方法,那我们就可以认为他是es5 的。所以前提你需要了解 es6 的语法才能做判断,高频使用的特性有箭头函数、解构赋值、let、const。


    3、ES6 的继承和 ES5 的继承有什么区别?
    es5 的继承是通过原型或者是构造函数机制来实现,es6 用过 class 关键字定义类,里面有构造方法,类之间通过 extends 关键字实现,子类必须在 constructor 方法中调用 super 方法。


    4、let 和 const 的优点?
    let 和 const 有了块级作用域,变量声明不会提升相比于 var。


    5、ES6 generator 是什么,async / await 实现原理?
    generator 函数就是一个封装的异步任务,也就是异步任务的容器,执行Generator 函数会返回一个遍历器对象,async 函数的实现, 就是将Generator 函数和自动执行器,包装在一个函数里。


    6、ES6 和 node 的 commonjs 模块化规范的区别。
    ES6是Js的增强版,是Js的语法规范,commonjs 都只是为了解决Js文件之间的依赖和引用问题,所以是一种Js的包管理规范,其中的代表是Node遵循commonjs规范。


    7、箭头函数,以及他们的this。
    所谓的箭头函数是在写法上面很简便和之前相比,类似于:(a,b)=>{returna+b;},箭头函数的 this 默认指向在定义它时,它所处的对象,而不是执行时的对象, 定义它的时候,可能环境是 window(即继承父级的 this)。 以上就是前端关于ES6的面试题汇总以及答案。大家要是对于前端问题有人任何的问题,可以在博学谷官网资讯在线老师,或是在留言板给我们留言。

    展开全文
  • 关于 ES6 中 Promise 的面试题

    千次阅读 2018-10-29 13:12:45
    最近在复习 Promise 知识,所以就做了一些,这里挑出几道,大家一起看看吧。 题目一 const promise = new Promise ( ( resolve , reject ) => { console . log ( 1 ) ; resolve ( ) ; ...

    说明

    最近在复习 Promise 的知识,所以就做了一些题,这里挑出几道题,大家一起看看吧。

    题目一

    const promise = new Promise((resolve, reject) => {
        console.log(1);
        resolve();
        console.log(2);
    })
    
    promise.then(() => {
        console.log(3);
    })
    
    console.log(4);
    

    解析

    首先 Promise 新建后立即执行,所以会先输出 1,2,而 Promise.then() 内部的代码在 当次 事件循环的 结尾 立刻执行 ,所以会继续输出4,最后输出3。

    答案

    1
    2
    4
    3
    

    题目二

    const promise = new Promise((resolve, reject) => {
        resolve('success1');
        reject('error');
        resolve('success2');
    });
    
    promise.then((res) => {
        console.log('then:', res);
    }).catch((err) => {
        console.log('catch:', err);
    })
    

    解析

    resolve 函数将 Promise 对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;

    reject 函数将 Promise 对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

    而一旦状态改变,就不会再变。
    所以 代码中的reject('error'); 不会有作用。

    Promise 只能 resolve 一次,剩下的调用都会被忽略。
    所以 第二次的 resolve('success2'); 也不会有作用。

    答案

    then: success1
    

    题目三

    Promise.resolve(1)
      .then(2)
      .then(Promise.resolve(3))
      .then(console.log)
    

    解析

    Promise.resolve 方法的参数如果是一个原始值,或者是一个不具有 then 方法的对象,则 Promise.resolve 方法返回一个新的 Promise 对象,状态为resolvedPromise.resolve 方法的参数,会同时传给回调函数。

    then 方法接受的参数是函数,而如果传递的并非是一个函数,它实际上会将其解释为 then(null),这就会导致前一个 Promise 的结果会穿透下面。

    答案

    1
    

    题目四

    红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次;如何让三个灯不断交替重复亮灯?(用Promse实现)三个亮灯函数已经存在:

    function red() {
        console.log('red');
    }
    function green() {
        console.log('green');
    }
    function yellow() {
        console.log('yellow');
    }
    

    解析

    红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次,意思就是3秒,执行一次 red 函数,2秒执行一次 green 函数,1秒执行一次 yellow 函数,不断交替重复亮灯,意思就是按照这个顺序一直执行这3个函数,这步可以就利用递归来实现。

    答案

    function red() {
        console.log('red');
    }
    function green() {
        console.log('green');
    }
    function yellow() {
        console.log('yellow');
    }
    
    var light = function (timmer, cb) {
        return new Promise(function (resolve, reject) {
            setTimeout(function () {
                cb();
                resolve();
            }, timmer);
        });
    };
    
    var step = function () {
        Promise.resolve().then(function () {
            return light(3000, red);
        }).then(function () {
            return light(2000, green);
        }).then(function () {
            return light(1000, yellow);
        }).then(function () {
            step();
        });
    }
    
    step();
    

    题目五

    实现 mergePromise 函数,把传进去的数组按顺序先后执行,并且把返回的数据先后放到数组 data 中。

    const timeout = ms => new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve();
        }, ms);
    });
    
    const ajax1 = () => timeout(2000).then(() => {
        console.log('1');
        return 1;
    });
    
    const ajax2 = () => timeout(1000).then(() => {
        console.log('2');
        return 2;
    });
    
    const ajax3 = () => timeout(2000).then(() => {
        console.log('3');
        return 3;
    });
    
    const mergePromise = ajaxArray => {
        // 在这里实现你的代码
    
    };
    
    mergePromise([ajax1, ajax2, ajax3]).then(data => {
        console.log('done');
        console.log(data); // data 为 [1, 2, 3]
    });
    
    // 要求分别输出
    // 1
    // 2
    // 3
    // done
    // [1, 2, 3]
    

    解析

    首先 ajax1 、ajax2、ajax3 都是函数,只是这些函数执行后会返回一个 Promise,按题目的要求我们只要顺序执行这三个函数就好了,然后把结果放到 data 中,但是这些函数里都是异步操作,想要按顺序执行,然后输出 1,2,3并没有那么简单,看个例子。

    function A() {
        setTimeout(function () {
            console.log('a');
        }, 3000);
    }
    
    function B() {
        setTimeout(function () {
            console.log('b');
        }, 1000);
    }
    
    A();
    B();
    
    // b
    // a
    

    例子中我们是按顺序执行的 AB 但是输出的结果却是 ba 对于这些异步函数来说,并不会按顺序执行完一个,再执行后一个。
    这道题就是考用 Promise 控制异步流程,我们要想办法,让这些函数,一个执行完之后,再执行下一个,看答案吧。

    答案

    // 保存数组中的函数执行后的结果
    var data = [];
    
    // Promise.resolve方法调用时不带参数,直接返回一个resolved状态的 Promise 对象。
    var sequence = Promise.resolve();
    
    ajaxArray.forEach(function (item) {
        // 第一次的 then 方法用来执行数组中的每个函数,
        // 第二次的 then 方法接受数组中的函数执行后返回的结果,
        // 并把结果添加到 data 中,然后把 data 返回。
        // 这里对 sequence 的重新赋值,其实是相当于延长了 Promise 链
        sequence = sequence.then(item).then(function (res) {
            data.push(res);
            return data;
        });
    })
    
    // 遍历结束后,返回一个 Promise,也就是 sequence, 他的 [[PromiseValue]] 值就是 data,
    // 而 data(保存数组中的函数执行后的结果) 也会作为参数,传入下次调用的 then 方法中。
    return sequence;
    

    题目六

    以下代码最后输出什么?

    const first = () => (new Promise((resolve, reject) => {
        console.log(3);
        let p = new Promise((resolve, reject) => {
            console.log(7);
            setTimeout(() => {
                console.log(5);
                resolve(6);
            }, 0)
            resolve(1);
        });
        resolve(2);
        p.then((arg) => {
            console.log(arg);
        });
    
    }));
    
    first().then((arg) => {
        console.log(arg);
    });
    console.log(4);
    

    解析

    这道题就其实和 Promise 的关系不太大,主要是需要理解 JS执行机制,才能很好的解决这道题,对于 JS 执行机制不了解的朋友推荐看看这篇文章

    这一次,彻底弄懂 JavaScript 执行机制

    第一轮事件循环

    先执行宏任务,主script ,new Promise立即执行,输出【3】,
    执行 p 这个new Promise 操作,输出【7】,
    发现 setTimeout,将回调放入下一轮任务队列(Event Queue),p 的 then,姑且叫做 then1,放入微任务队列,发现 first 的 then,叫 then2,放入微任务队列。执行console.log(4),输出【4】,宏任务执行结束。
    再执行微任务,执行 then1,输出【1】,
    执行 then2,输出【2】。
    到此为止,第一轮事件循环结束。开始执行第二轮。

    第二轮事件循环

    先执行宏任务里面的,也就是 setTimeout 的回调,输出【5】。
    resolve(6) 不会生效,因为 p 这个 Promise 的状态一旦改变就不会在改变了。

    答案

    3
    7
    4
    1
    2
    5 
    

    题目七

    有 8 个图片资源的 url,已经存储在数组 urls 中(即urls = ['http://example.com/1.jpg', ...., 'http://example.com/8.jpg']),而且已经有一个函数 function loadImg,输入一个 url 链接,返回一个 Promise,该 Promise 在图片下载完成的时候 resolve,下载失败则 reject。
    但是我们要求,任意时刻,同时下载的链接数量不可以超过 3 个。
    请写一段代码实现这个需求,要求尽可能快速地将所有图片下载完成。

    var urls = ['https://www.kkkk1000.com/images/getImgData/getImgDatadata.jpg', 'https://www.kkkk1000.com/images/getImgData/gray.gif', 'https://www.kkkk1000.com/images/getImgData/Particle.gif', 'https://www.kkkk1000.com/images/getImgData/arithmetic.png', 'https://www.kkkk1000.com/images/getImgData/arithmetic2.gif', 'https://www.kkkk1000.com/images/getImgData/getImgDataError.jpg', 'https://www.kkkk1000.com/images/getImgData/arithmetic.gif', 'https://www.kkkk1000.com/images/wxQrCode2.png'];
    function loadImg(url) {
        return new Promise((resolve, reject) => {
            const img = new Image()
            img.onload = function () {
                console.log('一张图片加载完成');
                resolve();
            }
            img.onerror = reject
            img.src = url
        })
    };
    

    解析

    题目的意思是需要我们这么做,先并发请求 3 张图片,当一张图片加载完成后,又会继续发起一张图片的请求,让并发数保持在 3 个,直到需要加载的图片都全部发起请求。

    用 Promise 来实现就是,先并发请求3个图片资源,这样可以得到 3 个 Promise,组成一个数组,就叫promises 吧,然后不断的调用 Promise.race 来返回最快改变状态的 Promise,然后从数组(promises)中删掉这个 Promise 对象,再加入一个新的 Promise,直到全部的 url 被取完,最后再使用 Promise.all 来处理一遍数组(promises)中没有改变状态的 Promise。

    答案

    var urls = ['https://www.kkkk1000.com/images/getImgData/getImgDatadata.jpg', 'https://www.kkkk1000.com/images/getImgData/gray.gif', 'https://www.kkkk1000.com/images/getImgData/Particle.gif', 'https://www.kkkk1000.com/images/getImgData/arithmetic.png', 'https://www.kkkk1000.com/images/getImgData/arithmetic2.gif', 'https://www.kkkk1000.com/images/getImgData/getImgDataError.jpg', 'https://www.kkkk1000.com/images/getImgData/arithmetic.gif', 'https://www.kkkk1000.com/images/wxQrCode2.png'];
    function loadImg(url) {
        return new Promise((resolve, reject) => {
            const img = new Image()
            img.onload = function () {
                console.log('一张图片加载完成');
                resolve();
            }
            img.onerror = reject
            img.src = url
        })
    };
    
    function limitLoad(urls, handler, limit) {
        // 对数组做一个拷贝
        const sequence = [].concat(urls)
        let promises = [];
    
        //并发请求到最大数
        promises = sequence.splice(0, limit).map((url, index) => {
            // 这里返回的 index 是任务在 promises 的脚标,用于在 Promise.race 之后找到完成的任务脚标
            return handler(url).then(() => {
                return index
            }); 
        });
    
        // 利用数组的 reduce 方法来以队列的形式执行
        return sequence.reduce((last, url, currentIndex) => {
            return last.then(() => {
                // 返回最快改变状态的 Promise
                return Promise.race(promises)
            }).catch(err => {
                // 这里的 catch 不仅用来捕获 前面 then 方法抛出的错误
                // 更重要的是防止中断整个链式调用
                console.error(err)
            }).then((res) => {
                // 用新的 Promise 替换掉最快改变状态的 Promise
                promises[res] = handler(sequence[currentIndex]).then(() => { return res });
            })
        }, Promise.resolve()).then(() => {
            return Promise.all(promises)
        })
    
    }
    limitLoad(urls, loadImg, 3)
    
    /*
    因为 limitLoad 函数也返回一个 Promise,所以当 所有图片加载完成后,可以继续链式调用
    
    limitLoad(urls, loadImg, 3).then(() => {
        console.log('所有图片加载完成');
    }).catch(err => {
        console.error(err);
    })
    */
    

    总结

    这几道题,有考查 Promise 基础知识的,也有考对 Promise 灵活运用的,如果这些题你都做的很好的话,那你对 Promise 的理解应该是不错的了。

    最后,如果文中有不足或者错误的地方,还请小伙伴们指出,万分感谢。
    如果觉得文章说的内容不够,最后有与题目相关的文章,可以看看。

    参考

    ECMAScript 6 入门 —— 阮一峰

    ES6 系列之我们来聊聊 Promise

    一道关于Promise应用的面试题

    阿里前端测试题–关于ES6中Promise函数的理解与应用

    这一次,彻底弄懂 JavaScript 执行机制

    一个Promise面试题

    ES6原生Promise的所有方法介绍(附一道应用场景题目)

    Promise 异步流程控制

    展开全文
  • https://juejin.im/post/6844904077537574919

    https://juejin.im/post/6844904077537574919

    展开全文
  • 考核内容:ES6的新特性发散度: ★试题难度: ★解题思路:let声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。const声明一个只读的常量。一旦声明,常量的值就不能改变。漫话ES6: ...

    8036a5b2256aaa4cdf56b2839887c95c.png

    300bc9d182f9e1582d5b2a6fe5019167.png

    考核内容: ES6的新特性

    题发散度: ★

    试题难度: ★

    解题思路:

    let声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

    const声明一个只读的常量。一旦声明,常量的值就不能改变。

    漫话ES6: var let 和 const 命令

    ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构

    • 变量的解构赋值
    • 数组的解构赋值
    • 对象的解构赋值
    • 字符串的解构赋值
    • 数值和布尔值的解构赋值
    • 函数参数的解构赋值

    例如:

    let {a,b,c} = {"c":10,"b":9,"a":8}

     结果中,a,b,c的值分别是 8,9,10

    (解析:对象的解构赋值不会受到属性的排列次序影响)

    漫话ES6:part2. 变量的解构赋值

    ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

    作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。

    前端测试题:关于Map结构的介绍,下面说法错误的是?

    遍历器(Iterator)就是这样一种机制。它是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

    一个数据结构只要部署了Symbol.iterator属性,就被视为具有 iterator 接口,就可以用for...of循环遍历它的成员。也就是说,for...of循环内部调用的是数据结构的Symbol.iterator方法。

    for...of遍历,可遍历具有iterator接口的数据结构。

    前端测试题:关于Iterator遍历器的说法,错误的是?

    参考代码:

    df73b45754910f894c18c7ee0e5e53ec.png

    obj 是数组具有 Symbol.iterator 所以可以使用 for of

    d7377977f555215d5cafb3b021e0354b.png

    如果直接使用 对象 是不可以使用 for of 的。因为没有 Symbol.iterable

    0e453abd9ae4c024c3a2279cbcc9ac51.png

    可以采用以下方式:

    1b863856d9a0458de5cc7af11f432f68.png

    有一个全局方法 Array.from 可以接受一个可迭代或类数组的值,并从中获取一个“真正的”数组。然后我们就可以对其调用数组方法了。

    例如:

    9fb17bdd043fef01521044f660200059.png

    可以看出来,键值对不能直接FOR of 操作。需要转换。

    答案

    D. for...of遍历,可直接遍历所有的Object类型的数据结构。

    相关推荐:

    前端测试题:(解析)关于WEB中造成内存泄漏的说法,下面错误的是?

    微信小程序开发经典案例解析“嗨兔儿”

    前端开发"模块打包器"webpack4实战入门

    前端开发单元测试,模拟接口数据(mock)实践

    如果面试官还在问你GIT,你还紧张吗?

    前端开发必备GIT可视化工具SourceTree视频教程

    前端测试题:(解析)js中关于类(class)的继承的说法,下面错误的是?

    前端测试题:(解析)关于ajax跨域的说法,下面错误的是?

    前端测试题:(解析)关于JS中this关键字的说法,下面错误的是?

    微应用:不足百行代码实现绚丽的机械表运行效果

    前端测试题:关于Map结构的介绍,下面说法错误的是?

    前端测试题:(必考)关于JS函数防抖和函数节流,说法错误的是

    前端测试题:(必考)有关于ES6中Promise方法的使用,说法错误的是?

    前端测试题:有关于前端对web安全及防护说明,下面错误的是?

    前端测试题:有关于WEB服务中,HTTP和HTTPS的说法,错误的是?

    前端测试题:对于WEB服务有关http的响应状态码及含义,说法有误的是?

    前端测试题:有关于get、post的区别,下面说法错误的是?

    前端测试题:有关于js中跨域请求的说法,错误的是?

    前端测试题:有关于下面盒模型,说法错误的是?

    前端测试题:关于WEB中常用的度量单位,表述错误的是?

    前端测试题:关于javascirpt中,typeof判断数据类型中不可能出现的是

    前端测试题:var str=’shuke‘ 字符串值(shuke)转为变量名的方法正确的是?

    前端测试题:有关于JS 中的主要错误,表述错误的是?

    前端测试题:有关于双向绑定功能在ES6中实现的数据代理(数据劫持),表述有错误的是?

    前端测试题:以下浏览器对js显示数据方法,表述错误的是?

    前端测试题:关于JAVASCRIPT中以下操作输出的是TRUE的是?

    前端测试题: 关于this的用法下面说法正确的是?

    前端测试题:有关于JAVASCRIPT闭包说明正确的是?

    前端测试题:如何理解JS中对数据的深浅拷贝?

    前端测试题: 关于定义常量的关键字const,定义一个Object对象,再对属性的值进行修改,下列说法正确的?

    前端测试题:ES6中想要获取Map实例对象的成员数,利用的属性是?

    前端测试题:module模块中的注意事项,下列说法错误的?

    前端测试题:module模块中,对下列语句的描述,错误的是?

    前端测试题:关于ES6的module模块,下列说法错误的是?

    前端测试题:在Generator函数中," yield* "语句的作用是?

    前端测试题:Generator函数的yield关键字的作用是?

    前端测试题:关于新特性Generator函数的描述,错误的是?

    前端测试题:关于Iterator遍历器的说法,错误的是?

    前端测试题: 下列数据结构中,不能被for...of遍历的是?

    前端测试题:在类的继承中,关于super的说法错误的是?

    前端测试题:下面关于类class的描述,错误的是?

    前端测试题:关于Promise对象的状态,下列说法错误的是?

    前端测试题:关于WeakMap结构,下列说法错误的是?

    前端测试题:下列Map结构的键名数据类型,描述错误的是?

    前端测试题:关于Map结构的介绍,下面说法错误的是?

    前端测试题: 关于WeakSet结构,说法错误的是?

    前端测试题: 关于set结构,下面说法错误的是?

    前端测试题: 关于for...of的简述,说法错误的是?

    前端测试题: 关于Proxy代理,下面说法错误的是?

    前端测试题: 下面Symbol运算结果,结果为true的是?

    前端测试题: 关于Symbol,错误的说法是?

    前端测试题: 关于箭头函数的描述,错误的是?

    前端测试题: 数组扩展的fill( )函数,[1,2,3].fill(4)的结果是?

    前端测试题: 数组的扩展中,不属于用于数组遍历的函数的是?

    企业面试题: 关于对象的Object.is函数,错误的是?

    关于对象的扩展,错误的是?

    企业面试题: 对前端工程师这个职位是怎么样理解的

    企业面试题: 为什么要初始化CSS样式

    企业面试题:CSS中 link 和@import 的区别是什么

    企业面试题:position的absolute与fixed共同点与不同点

    企业面试题:用css实现div在不同分辨率屏幕上下左右居中

    企业面试题: 解释css sprites 如何使用?

    企业面试题: 1&&2,1||2代码的输出值是?

    企业面试题: cookies,sessionStorage 和 localStorage 的区别?

    企业面试题: 关于JS在使用过程中 0.1+0.2!=0.3 的问题

    企业面试题:js编写数组去重方法

    企业面试题: 实现一个事件委托(事件代理)

    企业面试题:如何显示/隐藏一个DOM元素

    企业面试题:如何实现浏览器内多个标签页之间的通信

    企业面试题:去除字符串空格

    企业面试题:关于js闭包

    企业面试题:如何实现实现1+2+......+n

    企业面试题:变量作用域

    书中自有颜如玉

    79333ab62b1c03a303458efdb3eb468d.png

    展开全文
  • let const var 区别 set map weakset weakmap proxy promise 状态,promise 解决了什么问题,promise拦截诶错误 async await 模块化开发 import export
  • 关于ES6的一些总结

    2019-08-04 15:12:29
    关于ES6的一些总结 最近准备秋招,看了一些面试题,对ES6的一些用法更加清晰了一点,平时虽然也用,但并没怎么注意。写这篇博客主要目的是给自己做备忘。 由于是从OneNote里复制出来的,会自动装换为图片的形式。 先...
  • 豆皮粉儿们,又见面了,今天这一期,由字节跳动数据平台「相逢在雨季」给大家讲一道面试题关于由于ES6综合运用。本文作者:相逢在雨季在面试过程中,经常能看到候选人写熟练掌握或者精通ES...
  • JS面试题总结(含ES6)

    万次阅读 多人点赞 2018-07-30 20:43:08
    主要内容包括:数据类型,变量和常量,数组和常用方法,本地存储,关于异步处理:Generator async promise 区别,关于ES6兼容与优化 数据类型 1,介绍js基本数据类型。 Undefined、Null、Boolean、Number...
  • 考核内容:ES6的新特性发散度: ★试题难度: ★答案:欢迎大家在留言区域进行回复答案与调试下一期会详细分析答案相关推荐:前端测试:(解析)关于WEB中造成内存泄漏的说法,下面错误的是?微信小程序开发经典案例...
  • 面试题 --纯ES6

    万次阅读 2018-06-24 10:05:30
    1.rem理解:(关于页面适配--手写)https://mp.weixin.qq.com/s/-22kMEXf0S-1okqXw40OqQrem 62% 是个 什么意思 16px=1rem 1px=62.5%rem;2.对promise理解:参考:https://mp.weixin.qq.com/s?src=3&...
  • 在写完上一篇我经历前端面试题(一)两个月后今天,我又重新审视自己写东西。果然发现了一些错误。这篇主要纠正上篇文章中最后第13题解法中一些用错地方。 题目:算法题:给一个数组,无序。输出其中...
  • 怎么不用new得到一个新实例?下面看一下两个代码对比 ...其中有个小知识点,关于ES6里面展开运算符。 function fn() {} let arr = [20, 30, 300] fn(...arr) //fn(20,30,300) fn(arr) //fn
  • 本篇总结的是关于JS的Array相关的面试题,希望看完本篇会加强你的JS的Array有进一步的了解。问题一栏如何判断一个变量是否为数组数组的原生方法有哪些?如何将一个类数组变量转化为数组?说一说ES6中对于数组有哪些...
  • 考核内容:ES6的新特性发散度: ★试题难度: ★答案:欢迎大家在留言区域进行回复答案与调试下一期会详细分析答案相关推荐:前端测试:(解析)关于WEB中造成内存泄漏的说法,下面错误的是?微信小程序开发经典案例...
  • 前两天看到了一道前端面试题,《关于数组扁平化,前面写过一篇文章,在这里又看到了一个新方法,在Array.prototype对象当中提供了一个方法:flat(depth)。唯一问题是,该方法目前虽然在部分浏览器当中能用,但是...

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

关于es6的面试题