小工具知识网

当前位置: 首页 > 行业知识 > 2024年前端最新精简ES6知识点(1),10年阿里开发架构师经验分享

行业知识

2024年前端最新精简ES6知识点(1),10年阿里开发架构师经验分享

2026-11-14 10:28:00 来源:互联网转载

Vue 面试题

1.Vue 双向绑定原理

2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程?

3.你是如何理解 Vue 的响应式系统的?

4.虚拟 DOM 实现原理

5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异?

6.Vue 中 key 值的作用?

7.Vue 的生命周期

8.Vue 组件间通信有哪些方式?

9.watch、methods 和 computed 的区别?

10.vue 中怎么重置 data?

11.组件中写 name 选项有什么作用?

12.vue-router 有哪些钩子函数?

13.route 和 router 的区别是什么?

14.说一下 Vue 和 React 的认识,做一个简单的对比

15.Vue 的 nextTick 的原理是什么?

16.Vuex 有哪几种属性?

17.vue 首屏加载优化

18.Vue 3.0 有没有过了解?

19.vue-cli 替我们做了哪些工作?

如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  1. Object.keys():返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名

  2. Object.preventExtensions();让一个对象变的不可扩展,也就是永远不能再添加新的属性

  3. Object.isExtensible();判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)

  4. Object.seal();封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变

  5. Object.isSealed();判断一个对象是否被密封

  6. Object.freeze();可以冻结一个对象

  7. Object.isFrozen();方法判断一个对象是否被冻结

回到顶部 目录

ES6


新增加的语法

  • 局部变量/常量:let/const

  • 对象方法简写:const obj = { aa(){} }

    // 对象结构赋值

    const str = {user1: ‘he’, user2: 20};

    const {user1: name, user2: sex} = str;

    // 数组结构赋值

    const [a, b, c] = [1, 2 ,3];

    // 字符串结构赋值

    const [a1, b1, c1, d1, e1] = ‘hello’;

    // default

    function fn1(name = ‘he’, age = 26){}

    // rest参数

    function fn2(x, …y){

    return x * y.length;

    }

    fn2(1, “hello”, true); // => 2

    // …

    function fn3(q, w, e, r){

    return q + w + e + r;

    }

    fn3(4, 3, 2, 1) //=>10

    • 箭头函数(自动绑定this):var fn = () => {}

      const [name, age] = [‘he’, 20];

      console.log(姓名:${name},今年:${age});

      // 姓名:he,今年:20

      • 遍历对象:

      • for…in:循环遍历对象自身的和继承的可枚举属性(不含 Symbol 属性)

      • Object.keys(obj):返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名

      • Object.getOwnPropertyNames(obj):返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名

      • Object.getOwnPropertySymbols(obj):返回一个数组,包含对象自身的所有 Symbol 属性的键名

      • Reflect.ownKeys(obj):返回一个数组,包含对象自身的所有键名,不管键名是 Symbol 或字符串,也不管是否可枚举

      • 迭代器 + for…of

      • 迭代器有一个next方法,该方法有两个属性:

      • 第一次迭代:{value:elem, done: false}

      • 最后一次迭代:{value:returnValue, done: true}

      • for…of:遍历迭代对象

        const arr = [1,2,3,4,5];

        for(value of arr){

        console.log(value)

        }

        // 1,2,3,4,5

        function* myGenerator() {

        yield ‘hello’;

        yield ‘world’;

        return ‘Generator’;

        }

        var g = myGenerator();

        g.next(); // { value: ‘hello’, done: false }

        class A{

        constructor(name){

        this.name = name;

        }

        ace(){

        return ${this.name}第一名

        }

        }

        class B extends A{

        constructor(name, age){

        super(name);

        this.age = age;

        }

        ace(){

        return ${super.ace()},今年${this.age}

        }

        }

        const user = new B(‘he’, 20);

        console.log(user.ace()) // he第一名,今年20

        console.log(user instanceof A) // true

        console.log(user instanceof B) // true

        • Modules:import * from url

          const s = new Set();

          s.add(‘hello’).add(‘world’);

          console.log(s.size === 2); //true

          console.log(s.has(‘hello’)) // true

          const ws = new WeakSet();

          ws.add({data: 42});

          console.log(ws)

          const m = new Map();

          m.set(‘hello’, 10);

          m.set(s, 10);

          console.log(m.get(‘hello’)) // 10

          console.log(m.get(s)) // 10

          const wm = new WeakMap();

          wm.set(s, {ece: 10});

          console.log(wm.get(s)) // {ece: 10}

          • Symbol:值类型,唯一性const s = Symbol('symbol')

            function gettime(url){

            return new Promise((resolve, reject)=>{

            if(!url){

            resolve()

            }else{

            reject()

            }

            })

            }

            var p = gettime();

            p.then((res)=>{

            console.log(res)

            }).catch((err)=>{

            console.log(err)

            })

            async function test1(){

            return 111;

            }

            async function test2(){

            const res = await test1();

            console.log(res);

            }

            test2();

            const target = {};

            const handler = {

            get(receiver, name){

            return hello ${name};

            }

            };

            const p = new Proxy(target, handler)

            console.log(p.world === ‘hello world’) // true

            回到顶部 目录

            新增加的方法:

            • String:
              1. String.fromCodePoint():可以识别大于0xFFFF的字符

              2. String.raw():模板字符处理转义字符

              3. String.prototype.codePointAt():32 位的 UTF-16 字符的码点

              总结

              阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。

              开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

              解。

              开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

上一篇:揭秘DMIT,掌握未来职业发展的核心技能,开启成功之门!

下一篇:越南服务器哪里便宜好?