- 博客(25)
- 收藏
- 关注
原创 日常开发中的ES6+语法
日常开发中的ES6+语法1. 面试官:const、let、var区别2. 面试官:你了解箭头函数吗?箭头函数和普通函数的有什么区别?3.面试官:可以聊聊解构的日常使用场景吗?4.面试官:剩余参数 / 展开语法5.面试官:对象字面量简写语法6.面试官:谈一谈Promise7.面试官:async await对比promise的优缺点推荐阅读:90% 的前端都会使用 ES6 来简化代码,你都用过哪些?近一万字的ES6语法知识点补充1. 面试官:const、let、var区别主要从以下几个方面区分:
2021-09-07 01:23:46
979
1
原创 js基础知识
JS常见面试题1. const、let、var区别1. const、let、var区别主要从以下几个方面区分:作用域不同(是否含有块级元素)是否存在暂时性死区是否存在变量提升能否重复声明变量能否被修改1.作用域不同块级作用域:声明的变量只在该代码块作用域内有效var没有块级作用域,let、const有块级作用域for (var i = 0; i < 5; i++) { console.log(i)}console.log('外层')console.log(i)
2021-04-23 21:08:12
466
原创 HTTP常见面试题
HTTP常见面试题1.HTTP有哪些方法?这些方法的具体作⽤是什么?2.GET和POST有什么区别?3.PUT和POST都是给服务器发送新增资源,有什么区别?4.PUT和PATCH都是给服务器发送修改资源,有什么区别?5.http的请求报⽂是什么样的?6.http的响应报⽂是什么样的?7.聊⼀聊HTTP的部⾸有哪些?聊⼀聊HTTP的状态码有哪些?同样是重定向307,303,302的区别?HTTP的keep-alive是⼲什么的?7.说说http https的区别,https如何保证安全的?(1).为什么有了
2021-04-22 15:16:47
1952
1
原创 JS实际开发项目中的编码小技巧
JS实际开发项目中的编码小技巧一.ES系列中30个常用的JavaScript简写技巧二.前端面试js高频手写大全三.JS逻辑优雅处理技巧1.面试官问:如何拆解URL参数中queryString四.如何让你的代码变得干净优雅且可维护一.ES系列中30个常用的JavaScript简写技巧30个常用的JavaScript简写技巧二.前端面试js高频手写大全三.JS逻辑优雅处理技巧1.面试官问:如何拆解URL参数中queryString入参格式参考:const url = 'http://sample
2021-04-12 11:53:43
481
原创 网络模块封装
常见的网络请求模块,以及优缺点对比一.JSONP的原理和封装1.JSONP原理回顾2.JSONP请求封装二.axios的内容详解1.认识axios网络模块2.发送基本请求3.axios创建实例4.axios拦截器的使用选择什么网络模块?Vue中发送网络请求有非常多的方式,那么,在开发中,如何选择?选择一:传统的Ajax基于XMLHttpRequest(XHR),为什么不用它呢?1.非常好解释,配置和调用方式等非常混乱.2.编码起来看起来就非常蛋疼3.所以真实开发中很少直接使用,
2021-04-07 09:22:58
172
原创 超长列表性能优化
超长列表性能优化今天大概内容会讲一下,js中基础知识,会讲一下怎么是实现代码的切片,怎么渲染切片,完了之后会说一下最核心的虚拟列表,用Vue写的虚拟列表。包括定高的和不定高的怎么去实现。【引言】:长列表优化有两种策略,第一种就是我们可以分片,比如一个很长的列表,我可以分片渲染,第二就是我只渲染可视区域。【必备理论知识】第一先聊一下JS中基本的概念,不会深说,但是会把用得到的深说一下。第一先我们要掌握一下什么是进程,这个概念比较大,当前一个系统,系统每开一个应用,每一个应用程序都会分配一个独立的进程,当
2021-03-15 09:02:45
1497
3
原创 HTML5andCSS3面试题大全
文章目录1.CSS引入(1)有哪些引入方式?通过link和@import引入有什么区别?(* )(2)Style 标签写在 body 后和 body 前有什么区别?(3)什么是 FOUC(Flash of Unstyled Content)?如何来避免 FOUC2.CSS选择器(1) CSS选择器种类(2)CSS选择器的优先级3.CSS伪类和伪元素4.CSS盒模型4.有哪些方式(CSS)可以隐藏页面元素?4.**em\px\rem区别?****5.块级元素水平居中的方法?**1.CSS引入(1)有哪些引
2021-03-08 12:48:40
5878
2
原创 30个常用的JavaScript简写技巧
20个常用的JavaScript简写技巧1.声明变量//Longhandlet x;let y = 20;//Shorthandlet x, y = 20;2.给多个变量赋值我们可以使用数组解构来在一行中给多个变量赋值。//Longhandlet a, b, c;a = 5;b = 8;c = 12;//Shorthandlet [a, b, c] = [5, 8, 12];3. 三元运算符我们可以使用三元(条件)运算符在这里节省 5 行代码。//Longhand
2021-02-15 15:43:21
1175
原创 任务59:从零开始封装一款DIALOG插件
任务59:从零开始封装一款DIALOG插件1.导语:上节课带着大家封装了一款Z-tree树形菜单这样一个插件,而在封装这个插件的过程中,没有过多参数的配置,也没有过多功能的规划,只是把功能简单实现了,这个过程中,让大家初步了解插件封装的特点,插件封装基本上都是基于面向对象的。基于面向对象的好处在于创建每一个当前类的实例的话,都是一个独立的实例,实例的话就有自己的私有属性,还能调用一些共用的方法能实现我们私有和共用相结合的方式,这种方式对我们来说特别好,在过程中我们还可以把这个信息挂载到实例的私有属性上,这
2020-08-13 15:18:45
403
原创 [“吊打面试官“系列之] 一晚带你玩转图片懒加载及其底层原理
一晚带你玩转图片懒加载及其底层原理课程大纲从浏览器底层渲染机制分析懒加载的意义最初基于JS盒模型实现的懒加载方案基于getBoundingClientRect的进阶方案手撕Lodash源码中的debounce(函数防抖)手撕Lodash源码中的throttle(函数节流)终极方案:IntersectionObserver未来设想:img.loading=lazy1.瀑布流大体实现思路比如页面就是一个容器,里面有三列,分别从服务器拿到很多数据,比如从服务器拿到50条数据。50条数据按照
2020-08-01 23:31:48
251
原创 前端算法1
(一)数组去重将以下数组进行去重let ary = [12, 23, 12, 15, 25, 15, 25, 14, 16];1. ES6中setSet这个结构默认就可以把数组进行去重,返回来的结果是Set这个类的实例。那把再它变成数组即可,可以用…展开运算符的方式,也可用Array.from()转换成数组。/* SET */let ary = [12, 23, 12, 15, 25, 15, 25, 14, 16];//new Set(ary)是Set类的实例let arr = [...
2020-08-01 13:34:58
1094
1
原创 任务62:PROMISE的基础知识
任务62:PROMISE的基础知识MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Using_promiseshttps://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise1.步骤详解//promise必须传入executor函数,不传会报错let p1 = new Promise();// Unca
2020-07-30 10:36:53
194
原创 任务24 : JS高阶编程技巧(惰性函数、柯里化函数)
任务24 : JS高阶编程技巧(惰性函数、柯里化函数)1.什么叫闭包?以及优缺点? 应用?它是一种机制,函数执行形成一个私有上下文,它里面具备两大机制,第一个是保护,保护里面的私有变量不受外界影响,或者说保护里边的私有变量和外界不冲突,避免全局变量被污染。第二是保存,形成一个私有上下文,如果说它里边的某个东西被外界占用了,那么当前上下文是不会出栈释放的,不出栈释放那么当前上下文就被保存下来,保存下来那么它里面的变量就保存下来。一般来说市面上所谓的闭包就是函数执行形成一个不被释放的私有上下文,这个上下文里
2020-07-29 00:27:35
379
原创 项目实战之vue掘金小册`WebApp`
掘金小册WebApp1.通过路由信息判断头部和尾部的显示和隐藏,与传统的组件化处理不太一样。\*APP.vue*\<template> <div id="app"> <!-- 头部 --> <van-nav-bar v-if="isNav" :title="navText" left-text="返回" left-arrow @click-left="onClickLeft" /> <!-- 内容 -->
2020-07-27 11:44:12
1184
原创 彻底搞懂前端开发中的this
课时3 :JS中关于THIS的五种情况分析(一)this简介1.this的分布THIS:全局上下文中的THIS是WINDOW;块级上下文中没有自己的THIS,它的THIS是继承所在上下文中的THIS的;在函数的私有上下文中,THIS的情况会多种多样,也是接下来我们重点研究的;①块级中的this{let a = 12;console.log(this)//=>window}------------------------------let obj = { fn(){
2020-07-25 19:04:42
689
原创 Vue技巧大全
Vue面试题大全1.单页应用SPA和多页应用MPA单页应用(SPA)1.概念和原理**概念:**第一次进入页面的时候会请求一个html文件,刷新清除一下。切换到其他组件,此时路径也相应变化,但是并没有新的html文件请求,页面内容也变化了。原理:JS会感知到url的变化,通过这一点,可以用js动态的将当前页面的内容清除掉,然后将下一个页面的内容挂载到当前页面上,这个时候的路由不是后端来做了,而是前端来做,判断页面到底是显示哪个组件,清除不需要的,显示需要的组件。这种过程就是单页应用,每次跳转的时候
2020-07-19 02:23:36
2474
4
原创 Cookie、localStorage、sessionStorage及Storage
Storage封装第1个问题,这是一道面试题,看似非常简单,但是你要完全掌握还是需要功夫的,但凡使用过Storage,不管是localStorage还是sessionStorage其实也都有API了,它们已经有getItem(),setItem(),removeItem(),clear()。本节主要讲cookie和Storage的有什么关联,以及为什么使用Storage?1.Cookie、localStorage、 sessionStorage 三者区别?(1)localStorage和session
2020-07-17 23:23:12
642
原创 任务61:AJAX中的串行和并行(回调地狱)
任务61:AJAX中的串行和并行(回调地狱)1.Promise简介Promise是ES6中新增的一个内置类:它是一种“承诺“设计模式,主要是有效规划异步编程的代码,尤其是再处理AJAX异步请求的“回调地狱”上有很大的帮助。2.AJAX的串行和并行真实项目中的AJAX请求一定都是异步请求的(每发送AJAX相当于发送一个HTTP请求任务AJAX的串行:下一个请求依赖上一个请求的信息,或者上一个请求成功,下一个请求才能发送。AJAX的并行:利用HTTP的并发性,同时发送多个异步请求,当所有请求都成功
2020-07-17 02:16:29
256
原创 任务58 发布订阅模式
任务58: 发布订阅模式1.定义所谓发布订阅就相当于订一个计划表,把我们到达条件干的事情先一步步列在计划表里面。等真到达条件的时候,我们就通知计划表中的方法一个个去执行。比如,先列一个结婚的计划表:把结婚当天要做的事情一件件都列举出来。结婚时:按照计划表中的计划一件件的去执行即可。2.实现原理(1)发布订阅(按照了DOM2事件池的机制)①创建事件池②向事件池中追加方法/移除方法③通知事件池中的方法执行(2)两种数据结构代码实现方式第一种用数组,数组就是容器,每往进加一个事件,就创建一个对
2020-07-16 21:27:16
221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人