- 博客(163)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Promise对象实现Ajax封装
封装Promise一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。文章目录封装Promise一、封装二、调用结果截图一、封装/**默认methods:'GET'*默认url:'http://localhost:3306'*默认data:null*/const axios = ({ methods = 'GET', url = 'http://localhost:3306', data = null }) => { var promise
2020-11-06 12:58:52
459
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 set和map以及for...of的用法
set和map数据结构一个正在努力爱好运动的程序猿座右铭:越努力越幸运,越运动越健康,热爱编程,热爱运动。文章目录set和map数据结构一、set数据结构二、map数据结构三、for.of的用法总结一、set数据结构 //JS数据结构 Array Object Set Map var arr1 = new Array(); var arr2 = [3,4,5,6,7,7,8]; arr2.push(1); arr2[1] = 2; var o
2020-11-05 12:13:27
995
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 this指向,认识与理解this指向
this指向this指向 -------简单的理解谁调用它就指向谁文章目录this指向下面从几方面来理解this1、简单函数2、内置函数3、回调函数4、数组5、对象6改变对象指向(call apply bind)总结下面从几方面来理解this1、简单函数 //简单函数 /this ===window function f(){ console.log(this); //window }2、内置函数 //内置函数 this ===wi
2020-10-23 12:56:15
314
原创 vue笔记
项目搭建一.VueVue (读音 /vjuː/,类似于 view),不要读错。Vue是一个渐进式的前端框架,什么是渐进式的呢? VUE全家桶渐进式意味着你可以将Vue作为你应用的一部分嵌入其中,或者如果你希望将更多的业务逻辑使用Vue实现,那么Vue的核心库以及其生态系统。比如Core+Vue-router+Vuex+axios,也可以满足你各种各样的需求。Vue的特点和Web开发中常见的高级功能:解耦视图和数据双向数据绑定可复用的组件前端路由技术状态管理虚拟DOM
2021-05-14 22:37:08
819
2
原创 jQuery知识详解
故心故心故心故心小故冲啊一.jQuery 的简介什么是JS框架和库JS框架和库都是将原本JS的部分功能集合成一个JS文件,并且在使用的时候,引入这个文件,便可以使用这里面的功能。库和框架区别:框架(framework)通常是强制执行解决方案的一种方式,就像一个模具,需要你把所需的原材料放在模具里面,然后成品就会出来,由于模具已经建好,所以原材料不能乱加,人家要什么你就给什么,这时控制权在模,框架就像一门语言,有自己的世界。库(library)的形式就不同,控制权在用户手中,想实现
2021-04-10 20:57:23
352
1
原创 dom进阶知识详解
故心故心故心故心小故冲啊文章目录一.JS的组成二.事件1.注册事件,解绑事件2. 事件的三个阶段3. 解决冒泡3.事件对象4.事件委托三.获取元素四. 修改样式五.开关属性六.自定义属性1.JS的自定义属性2. H5 的自定义属性七.节点节点校验八.定时器九.跳转页面十.三大家族十一.拖拽一.JS的组成ECMAScript : 规范,规定了js的基本语法和功能DOM : document object model 文档对象模型,浏览器提供的一套操作元素的APIBOM : browser
2021-03-31 18:20:30
467
原创 数组方法之includes(写出我的myIncludes)
数组方法之includes(写出我的myIncludes)首先,includes()方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。先来简单的使用一下include()方法var arr = [10,20,30,40,50];arr.includes(10); //true当传入俩个参数的参数var arr = [10,20,30,40,50];arr.includes(10,1); //false竟然变成false了那么先介绍一下对于include
2021-03-30 19:17:30
1569
原创 对象的深层次获取
故心故心故心故心小故冲啊文章目录在写代码的时候遇到一个问题,在访问一个对象嵌套对象在嵌套对象,例如var obj = { a:{ c:123 }}获取c的值obj.a.c //123那么如果只能通过obj[ ] 的方式应该如何去获取呢?这样获取吗?obj['a.c'] //错误那么如何实现obj[ ] 这样的方式获取呢?可以从上面可以知道obj.a.c 是可以获取到值的,那么我们就可以通过一个lookup函数来变成这样/**obj
2021-03-08 19:09:29
367
1
转载 简述ajax和axios、fetch的区别
故心故心故心故心小故冲啊文章目录1.jQuery ajax2.axios3.fetch1.jQuery ajax$.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () {}, error: function () {}});传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpReq..
2021-02-28 08:45:11
241
原创 计算属性缓存 vs 方法vswatch侦听属性
故心故心故心故心小故冲啊文章目录计算属性缓存 vs 方法计算属性 vs 侦听属性不同点总结计算属性缓存 vs 方法<p>Reversed message: "{{ reversedMessage() }}"</p>// 在组件中methods: { reversedMessage: function () { return this.message.split('').reverse().join('') }}computed: { /.
2021-02-25 10:25:56
210
原创 总结面试
故心故心故心故心小故冲啊文章目录1.async await 如何检测异常2.vue中的修饰符3.在vue中样式设置了scope唯一性,那么如果需要里面的一个样式呢?push和 replace的差别 就是 this.\$router.push() 和this.\$router.replace() 以及go的差别1.async await 如何检测异常通过try catch2.vue中的修饰符3.在vue中样式设置了scope唯一性,那么如果需要里面的一个样式呢?vue引用了第三方组件,
2021-02-24 22:24:55
305
原创 vue中修饰符
故心故心故心故心小故冲啊文章目录vue中修饰符分为以下五种:表单修饰符事件修饰符鼠标按钮修饰符键盘修饰符v-bind修饰符vue中修饰符分为以下五种:表单修饰符事件修饰符鼠标按键修饰符键值修饰符v-bind修饰符表单修饰符lazy在我们填完信息,光标离开标签的时候,才会将值赋予给value,也就是在change事件之后再进行信息同步trim自动过滤用户输入的首空格字符,而中间的空格不会过滤number自动将用户的输入值转为数值类型,但如果这个值无法被parseFloat解析
2021-02-24 22:16:05
1293
原创 javascript继承
故心故心故心故心小故冲啊文章目录JavaScripy常见的继承方式原型链继承构造函数继承(借助 call)组合继承(原型链 +构造函数继承)原型式继承寄生式继承寄生组合式继承JavaScripy常见的继承方式原型链继承构造函数继承(借助 call)组合继承原型式继承寄生式继承寄生组合式继承原型链继承原型链继承是比较常见的继承方式之一,其中涉及的构造函数、原型和实例,三者之间存在着一定的关系,即每一个构造函数都有一个原型对象,原型对象又包含一个指向构造函数
2021-02-23 10:12:16
172
2
原创 github的使用
故心故心故心故心小故冲啊文章目录1.新增仓库2.仓库详细信息下载仓库到本地命令创建分支1.新增仓库2.仓库详细信息下载仓库到本地命令git clone +仓库地址 克隆仓库内容git status 查看本地分支文件信息,确保更新时不产生冲突git add .将本地工作区的所有文件添加到缓存区git commit -m “要描述的内容” 描述这次提交的内容 (推送到本地库中)git push origin master 推送到远端仓库中git pull 从远程仓库拉
2021-02-22 10:24:28
143
原创 为何Vue采用异步渲染?
故心故心故心故心小故冲啊文章目录为何Vue采用异步渲染?为何Vue采用异步渲染?因为响应式数据都是组件化的,也就是说,每一次更新都是渲染整个组件,如果是同步渲染,只要数据中一个数据进行了修改,就会使得整个组件重新去渲染,如果同时修改了多个数据就会更新多次.这样子子是非常消耗性能的.而采用异步渲染的话,只需要更新一次,异步渲染主要采用的是nextTick这个方法,来清空队列.nextTick方法原理?主要使用宏微任务来处理当前队列,首先会先判断当前环境是否支持promise,如果支持将采用.
2021-02-21 10:45:58
298
原创 Vue如何监听数组的变化?
故心故心故心故心小故冲啊提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Vue如何监听数组的变化?Vue为什么不能检测数组变动$set为啥能检测数组变动Vue如何监听数组的变化?理解:使用函数劫持的方式,重写了数组的方法 Vue 将 data 中的数组,进行了原型链重写。指向了自己定义的数组原型方法,这样当调用数组 api 时,可以通知依赖更新.如果数组中包含着引用类型。会对数组中的引用类型再次进行监控重写了数组中的原型的方法1.获取数组中的原型方法,因为拦截.
2021-02-21 10:18:08
4475
原创 响应式页面渲染过程
故心故心故心故心小故冲啊文章目录function initData (vm: Component) {... // observe data observe(data, true /* asRootData */)}最重要的就是这一步,把数据添加到观察者中 也就是把数据添加到observe()这个方法observe()这个方法干了什么?将data数据变成可观察的Observe实例对象Observe实例对象又干了啥?Observer`会对对象的每个属性进行劫持怎么实现劫持?
2021-02-20 10:41:39
343
原创 new Vue实例化对象时会做哪些事?
故心故心故心故心小故冲啊文章目录当new Vue实例化对象的时候,最主要的就是执行this._init()方法,这个方法是在上面「初始化Vue构造函数」时调用initMixin()函数时给Vue.prototype上添加的所以当我们在执行new Vue()的时候,最关键的就是执行_init()函数给vm上添加$options,如果是非Component的话调用mergeOptions合并参数初始化生命周期initLifecycle初始化事件initEvents初始化渲染initR.
2021-02-19 21:59:26
919
原创 手写call apply bind
故心故心故心故心小故冲啊文章目录callapplybindcall //1.手写步骤 // 将函数设为对象的属性 // 执行该函数 // 删除该函数 //细节 --参数问题 //this == null =>指向的是window Function.prototype.myCall = function (context) { //细节 --参数问题 //获取参数 //slice() 用于创建一个包含原.
2021-02-19 20:59:55
162
1
原创 手写深浅拷贝封装
文章目录手写浅拷贝封装手写深拷贝封装手写浅拷贝封装//浅拷贝 // 浅拷贝比较容易实现,注意一下细节就好了 //遍历对象,然后把属性和属性值都放在一个新的对象不就好了~ function shallowCopy(obj) { //1.只针对对象来进行遍历 if (typeof obj !== 'object') return; //2.新建一个对象或者数组 //instanceof查找构造函数中的原型是否..
2021-02-19 16:00:19
136
原创 常忘题目
故心故心故心故心小故冲啊文章目录闭包作用域作用域链原型原型链闭包闭包就是 外部函数中返回一个内部函数,而这个内部函数又引用了外部函数作用域的变量保存在自己的作用域中优点:在外部函数中作为局部变量,但是在内部函数中作为全局变量,避免了全局的污染,又进行了缓存.缺点:无法回收,一直保存.浪费内存 function a() { let x = 3; return function() { x++; conso
2021-02-19 11:39:05
124
1
原创 webpack总结
文章目录webpack装载器loader插件plugin代理热加载多页面处理webpack从项目入口文件开始,装载转换所有文件,优化处理文件,生成最终发布文件重要概念:入口(main.js),出口(dist),装载器loader,plugin.装载器loaderLoader的作用是让webpack拥有了加载和解析非JavaScript文件的能力。装载器loader, 装载并转换(css,less) ,常用它装载器loaderless-loader less转化csscss-lo..
2021-02-18 10:36:57
171
1
原创 webpack总结四
文章目录多页面处理跨域通过node模拟接口通过webpack解决跨域启动前端服务热加载webpack多环境vuecli多环境配置配置不同的打包命令定义变量多页面处理多个入口多个入口文件 需要一个个指定多个输出文件 [name].js打包输出了多个js文件, 需要把js文件添加到html 需要html-webpack-plugin通过chunks指定不同的html页面引用不同的js文件跨域url三部分不同就跨域 (协议 域名 端口)http://www.baidu.com ..
2021-02-18 10:14:06
101
原创 webpack总结三
故心故心故心故心小故冲啊文章目录前面全局变量图片处理(三种方式)模块化样式兼容性前面装载器loader(加载):css-loader, less-loader, babel-loader, style-loaderMiniCssExtractPlugin.loader插件plugin(加工):optimize-css-assets-webpack-pluginterser-webpack-pluginhtml-webpack-pluginmini-css-extract-plug
2021-02-18 10:09:38
83
原创 webpack总结二
故心故心故心故心小故冲啊文章目录css文件打包loader执行顺序loader与plugin区别lesscss抽取js,css压缩处理依赖包降级处理es6打包支持css文件打包css怎么引入? 是在index.js引入, 因为webpack是以js为入口webpack默认不支持css打包,若要支持需要css-loadercnpm i -S css-loader配置css-loader, 见webpack.config.jscss-loader只是装载css文件,不会把装载后的文件整合到
2021-02-18 10:07:47
74
2
原创 webpack总结一
故心故心故心故心小故冲啊文章目录## webpack与vuecli关系- vuecli基于webpack建构的,有一些配置还需要直接使用webpack的配置项- 要完全掌握vuecli,必须掌握webpack- vuecli的配置项较少,若要使用webpack的配置项,则要用configureWebpack- vuecli启动项目,实际上启动的是webpack-dev-server## 为什么要打包?- 项目分2种: 企业级项目,互联网项目- 企业级项目:jsp, asp, (写.
2021-02-18 10:05:25
153
原创 vue-router addRoutes多次添加路由重复问题
故心故心故心故心小故冲啊文章目录在@router中const createRouter = () => new VueRouter({ routes: constantRoutes //constantRoutes为默认路由});const router = createRouter();export function resetRouter() { //这个是重置函数 const newRouter = createRouter(); router.matcher =
2021-02-17 10:35:02
1703
原创 浏览器/html/css面试题
故心故心故心故心小故冲啊文章目录1.什么是盒模型2.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?3.简述src和href的区别4.什么是css Hack5.什么叫优雅降级和渐进增强6.px和em的区别 +rem7.HTML5 为什么只写8.Http的常用状态码有哪些9.一次完整的HTTP事务是怎么一个过程(三次握手)10.HTTPS是如何实现加密11.浏览器是如何渲染页面的12.浏览器的内核有哪些?分别有什么代表的浏览器13.页面导入时,使用link和@i.
2021-02-14 17:25:34
667
转载 面试官:== 和 ===区别,分别在什么情况使用?
故心故心故心故心小故冲啊文章目录一、等于操作符二、全等操作符三、区别小结一、等于操作符等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true前面文章,我们提到在JavaScript中存在隐式转换。等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等遵循以下规则:如果任一操作数是布尔值,则将其转换为数值再比较是否相等let result1 = (true == 1); // true如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,
2021-02-08 15:01:43
992
1
原创 Javscript字符串的常用方法有哪些?
故心故心故心故心小故冲啊文章目录一、操作方法增concat用于将一个或多个字符串拼接成一个新字符串删改trim()、trimLeft()、trimRight()repeat()padEnd()toLowerCase()、 toUpperCase()查charAt()indexOf()startWith()、includes()二、转换方法split 把字符串按照指定的分割符,拆分成数组中的每一项三、模板匹配方法match()search()replace()一、操作方法我们也可将字符串常用的操
2021-02-05 17:10:35
313
原创 路由拦截与角色权限
故心故心故心故心小故冲啊文章目录路由拦截存储角色信息--vuex通过角色信息动态添加路由通过vuex存储的路由信息来动态渲染路由路由拦截//分析// 当前是否在登录页面 =>在=>放行// 不在 =>没有登录或者已经登录了的// 已经登录了(有角色信息的) =>放行// 已经登录了(没有角色信息==>进行了刷新操作(或者第一次进去))=> 获取角色信息// 没有登录的 =>返回登录页router.beforeEach(async (t
2021-02-05 15:48:50
255
原创 Javscript数组的常用方法有哪些?
故心故心故心故心小故冲啊文章目录一、操作方法增push()添加到数组末尾 返回数组的最新长度unshift() 添加任意多个值,然后返回新的数组长度splice 返回空数组concat() 返回这个新构建的数组删pop() 返回被删除的项shift() 返回被删除的项splice() 返回包含删除元素的数组slice() 不会影响原始数组改splice()查indexOf() 返回要查找的元素在数组中的位置,如果没找到则返回1includes()返回要查找的元素在数组中的位置,找到返回true,否则fa
2021-02-03 17:01:58
164
原创 javascript高级程序设计(红宝书)记录
故心故心故心故心小故冲啊文章目录第3章.语法基础第4章.变量作用域与内存第5章.基本引用类型第24章.网络请求与远程资源第25章.客户端存储第3章.语法基础undefined 值是由 null 值派生而来的,因此 ECMA-262 将它们定义为表面上相等,如下面的例子所示:console.log(null == undefined); // trueconsole.log(undefined === null); //false用等于操作符(==)比较 null 和 undefined
2021-02-02 11:31:43
652
1
转载 Vue之理解.sync修饰符
故心故心故心故心小故冲啊文章目录.sync 修饰符是事件绑定的语法糖。.sync 修饰符是事件绑定的语法糖。应用场景是在父子组件传值的,且子组件要修改这个数据的时候使用。它的原理是利用EventBus,子组件触发事件,父组件响应事件并实现数据的更新,避免由子组件直接修改父组件传过来的内容。(如果子组件直接操作,vue会有警告提示)用一个现实中的例子来说:正常来说,钱都是在父亲身上的,儿子要用钱是告诉父亲要用钱,然后父亲从身上拿出钱给儿子使用。如果说子组件直接操作父父组件传过来的值,等同于儿子没
2021-01-29 16:13:25
189
转载 Vue-element-ui 导出Excel表
故心故心故心故心小故冲啊文章目录Vue+Element表格通过前端导出为Excel文件1.安装xlsx库2.安装file-saver库3.编写保存函数,文件位置:src/utils/htmlToExcel.js4.在表格中使用函数,文件位置src/views/TablePage.vue总结Vue+Element表格通过前端导出为Excel文件注:此方法能够导出多级表格,默认已安装ElementUI。1.安装xlsx库npm install xlsx 2.安装file-saver库np
2021-01-28 14:14:50
807
1
原创 防抖节流
故心故心故心故心小故冲啊文章目录前防抖节流总结前data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')print(data.head())该处使用的url网络请求的数据。防抖原理:事件回调函数(doSomething)在一段时间(300毫秒)后才执行, 如果在这段时间内再次调用则重新从0开始计算到300毫秒的时间, 当预定的时间内没有再次调用该函数,则执行事件回调
2021-01-28 13:19:24
271
原创 封装axios
故心故心故心故心小故冲啊文章目录封装axios进行拦截响应处理封装axios进行拦截响应处理import axios from 'axios';import {getToken} from '@/utils/token.js'// 默认地址前缀axios.defaults.baseURL = 'http://localhost:8888/api/';//请求拦截器axios.interceptors.request.use((res) => { //在发送请求前
2021-01-25 17:35:28
58
原创 封装token
故心故心故心故心小故冲啊文章目录封装token封装tokenconst tokenKey = 'token';//设置tokenexport function setToken(token) { return sessionStorage.setItem(tokenKey, token)}//获取tokenexport function getToken() { return sessionStorage.getItem(tokenKey);}//移出tokene
2021-01-25 17:33:16
161
原创 封装vue项目中的全局过滤器
故心故心故心故心小故冲啊文章目录封装全局过滤器导出的函数封装全局过滤器import Vue from 'vue'import * as filters from './filters' //引入filters对象(所有的)Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]); //通过循环添加全局过滤器})导出的函数//过滤状态export function getStatus(dat
2021-01-25 17:31:05
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人