• 2021121 js基础学习


    1.数组的哪些方法会改变原数组

    splice/reverse/fill/copyWithin/sort/push/pop/unshift/shift

    不修改原数组的有 slice/map/forEach/every/filter/reduce/entries/find

    2. 在JS中什么是变量提升?什么是暂时性死区?

    变量提升就是变量在声明之前就可以使用,值为undefined。

    在代码块内,使用 let/const 命令声明变量之前,该变量都是不可用的(会抛出错误)。这在语法上,称为“暂时性死区”

    暂时性死区也意味着 typeof 不再是一个百分百安全的操作。

    3. prototype 和 proto 区别是什么?

    prototype是构造函数的属性。

    proto 是每个实例都有的属性,可以访问 [[prototype]] 属性。

    实例的__proto__ 与其构造函数的prototype指向的是同一个对象。

    4.Promise和setTimeout的区别 ?

    Promise 是微任务,setTimeout 是宏任务,同一个事件循环中,promise.then总是先于 setTimeout 执行。

    5.什么是函数柯里化?实现 sum(1)(2)(3) 返回结果是1,2,3之和

    函数柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

    
    function sum(a) {
        return function(b) {
            return function(c) {
                return a+b+c;
            }
        }
    }
    console.log(sum(1)(2)(3)); // 6
    
    

    6.v-if和v-for的那个优先级更高,如果两个同时出现,应该怎么优化得到更好的性能

    1、v-for优先于v-if被解析

    2、如果同时出现,每次渲染都会先执行循环在判断条件,无论如何循环都不可避免,浪费了性能

    3、要避免出现这种情况,在外层嵌套template,在这一层进行v-if判断,然后在内部进行v-for循环

  • 相关阅读:
    Linux操作系统(二)
    匿名函数和内置函数
    BeautifulSoup
    Robots协议
    列表和生成器表达式
    迭代器
    排序总结
    图论专题笔记
    Trie树的二三事QWQ
    二分答案经典入门题:)
  • 原文地址:https://www.cnblogs.com/loveliang/p/15628825.html
Copyright © 2020-2023  润新知