outside-R
这个作者很懒,什么都没留下…
展开
-
面试题讲解(十三)--vue【nextTick】
vue的nextTick函数,当我们触发事件更新dom后,但是没法在vue中立即获取到dom的最新值,这时候就要用到nextTick函数,他可以帮助我们在下一次Dom更新后执行他的回调函数浏览器对于事件的处理是有自己的一套机制,同步代码进入执行栈,异步代码进入异步队列,异步任务分为宏任务和微任务宏任务与微任务宏任务是浏览器带来的函数,列如setTimeout、setInterval,这些任务都是宏任务微任务是语言带来的函数,比如promise的then函数当浏览器执行时,会先执行同步任务,然后执行异步任原创 2022-06-08 08:57:15 · 748 阅读 · 0 评论 -
面试题讲解(十二)--vue【cacheloader、vite & snowpack 原理】
问题:随着业务代码不断增加,项目深度不断延伸,我们的构建时长也会因此不断增加。渐渐的vue项目编译时间变长##优化方法一些性能开销较大的 loader 前面添加 cache-loader,将结果缓存在磁盘中减少编译时间参考掘金参考vite掘金参考snowpackvite 主要特点是基于浏览器 native 的 ES module (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) 来开原创 2022-06-07 16:14:40 · 833 阅读 · 0 评论 -
面试题讲解(十一)--vue【vue单页面与data】
1.用户体验好,内容的改变不需要重新加载整个页面,对服务器压力较小。2.前后端分离,比如联合项目3.完全的前端组件化,前端开发不再以页面为单位,更多地采用组件化的思想,代码结构和组织方式更加规范化,便于修改和调整1.不支持低版本浏览器2.首次加载页面的时候需要加载大量的静态资源,这个加载时间相对较长。3.不利于SEO(搜索引擎)优化,单页页面,数据在前端渲染,就意味着没有SEO4.页面导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退功能,所以需要自己建立堆栈管原创 2022-06-07 09:13:43 · 121 阅读 · 0 评论 -
面试题讲解(十四)-- window中方法及属性 以及获取路由参数的方法
Location 接口表示其链接到的对象的位置(URL)。所做的修改反映在与之相关的对象上。 Document 和 Window 接口都有这样一个链接的 Location,分别通过 Document.location和Window.location 访问。Location.href包含整个 URL 的一个DOMStringLocation.protocol (en-US)包含 URL 对应协议的一个DOMString,最后有一个":“。Location.host包含了域名的一个DOMString,原创 2022-06-02 11:28:30 · 354 阅读 · 0 评论 -
面试题讲解(十)--vue【计算属性和方法】
计算属性:computed根据已有属性得到一个新的属性,已有属性只要不改变,其方法只会被调用一次,不会再去计算方法:methods跟JavaScript方法一样,写函数,调用几次,计算几次计算属性本质上是包含getter和setter的方法当获取计算属性时,实际上是在调用计算属性的getter方法。vue会收集计算属性的依赖,并缓存计算属性的返回结果。只有当依赖变化后才会重新进行计算。方法没有缓存,每次调用方法都会导致重新执行。计算属性的getter和setter参数固定,getter没有原创 2021-11-28 19:09:38 · 229 阅读 · 0 评论 -
面试题讲解(九)-- 小细节(2)
以下描述错误的是?A.数组对象的find()方法用于找到符合条件的第一个元素。B. Array.of()可以将数组转换为—组值C. Array.from()可以将有iterator接口的对象转换为数组D.数组对象的fill()方法用给定的值填充数组。选:BA、 find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。const array1 = [5, 12, 8, 130, 44];const found = array1.find(element.原创 2021-10-21 16:07:47 · 51 阅读 · 0 评论 -
面试题讲解(八)-- 小细节(1)
var:1、允许重复的变量声明:导致数据被覆盖2、变量提升:怪异的数据访问、闭包问题3、全局变量挂载到全局对象:全局对象成员污染问题let1、let声明的变量不会挂载到全局对象2、let声明的变量,不允许当前作用域范围内重复声明;在块级作用域中用let定义的变量,在作用域外不能访问3、使用let不会有变量提升,因此,不能在定义let变量之前使用它4、在循环中,用let声明的循环变量,会特殊处理,每次进入循环体,都会开启一个新的作用域,并且将循环变量绑定到该作用域(每次循环,使用的是一个全新的原创 2021-10-21 16:28:50 · 78 阅读 · 0 评论 -
面试题讲解(七) --- ES6【Promise】
1、// 该函数为同步执行的const promise = new Promise((resolve, reject) => { //未决阶段 unsettled console.log(1); resolve(); //将任务推向已决 【已决的两种状态:已完成、被拒绝】 console.log(2);})// 注册一个函数【加入任务队列】 同步代码执行完成后执行 setTimeout=0promise.then(() => { /原创 2021-10-14 15:36:10 · 86 阅读 · 0 评论 -
面试题讲解(六) --- ES6【剩余参数】
语法:function (...形参名){}细节:一个函数,仅能出现一个剩余参数一个函数,如果有剩余参数,剩余参数必须是最后一个参数function sum(...args) { //args收集了所有的参数,形成的一个数组 let sum = 0; for (let i = 0; i < args.length; i++) { sum += args[i]; } return sum;}console.log(sum原创 2021-08-29 11:02:55 · 68 阅读 · 0 评论 -
面试题讲解(五)--- ES6 【参数默认值】
**在书写形参时,直接给形参赋值,附的值即为默认值这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是undefined),则会自动使用默认值。**问:abc最后输出几次?function getContainer() { console.log("abc"); return document.getElementById("container");}/** * 创建一个元素 * @param {*} name 元素的名称 * @param {*} contain原创 2021-08-28 14:48:22 · 70 阅读 · 0 评论 -
面试题讲解(四)---事件循环
事件循环JS运行的环境称之为宿主环境。【宿主环境可以实现:原型链、执行上下文、事件循环、console.log、全局对象(window)、DOM/BOM】执行栈:call stack,一个数据结构,用于存放各种函数的执行环境,每一个函数执行之前,它的相关信息会加入到执行栈。函数调用之前,创建执行环境,然后加入到执行栈;函数调用之后,销毁执行环境。JS引擎永远执行的是执行栈的最顶部。function A(){ console.log("A"); fun原创 2021-06-13 22:08:38 · 105 阅读 · 0 评论 -
面试题讲解(三)---执行上下文
执行上下文JS原理:原型链、执行上下文、事件循环预备知识栈栈是类似于数组的一种数据结构。对象引用如果变量是一个对象,实际上变量中存放的是对象的地址概念执行上下文:某个函数或全局代码的执行环境,该环境中包含执行代码需要的所有信息。可以简单的理解为:执行上下文是一个对象,对象中包含了执行代码需要的信息。当执行一个函数时,需要建立执行上下文,建立之后,才正是开始执行。call stack(执行上下文栈):组织管理程序运行过程中的执行上下文执行上下文的内容VO:variabl原创 2021-06-01 20:41:35 · 242 阅读 · 0 评论 -
面试题讲解(二) ---优化问题
** 一、页面级的优化**1、CSS Spritesr 【精灵图】普通图片精灵图 2、使用CDN 【内容分发网络】就近原则Bootstrap国内cdn库//新 Bootstrap 核心 CSS 文件 <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">// jQuery文件。务必在bootstra原创 2021-05-31 22:11:45 · 56 阅读 · 0 评论 -
面试题讲解(一)---原型链
JS面试题:框架js基础知识:1. 原型链 2. 事件循环 3. 执行上下文第三方库基础知识所有的对象都是通过new 函数()创建的,该函数叫做构造函数函数可以产生对象所有对象都是靠函数产生的函数也是一个对象,它是通过new Function创建的对象赋值给变量后,变量中保存的是地址,地址指向对象所在内存原型原型的本质:对象所有的函数都有原型属性prototype默认情况下,prototype是一个Object对象prototype中默认包.原创 2021-05-29 20:31:17 · 7050 阅读 · 1 评论