自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

原创 vue高频面试题

文章目录VUEvue的核心vue常用指令Vue修饰符vue自定义指令vue过滤器vue生命周期MVVMModel层View层VueModel层vue的响应式原理单向数据流pros赋值给datamethods, computed、watchmutation和actionstyle scoped原理v-if和v-shownextTickv-for和v-ifdata必须是函数vuex的理解vuex如何实现数据持久化vue转场动画vue中slot的作用组件传值|通信`$parent` / `$children`与

2021-04-07 13:43:46 453

原创 js面试题

文章目录原生dom操作方法var、let、const数组去重cookie、localStorage、sessionStoragecall、apply、bind如何解决跨域确定this深拷贝与浅拷贝http状态码浏览器的缓存有哪些es6常用的js设计模式JS面试对象的理解js数组常用的方法js数组内置遍历方法输入url到页面加载过程JS事件代理promise、ajax后端进行数据交互原生dom操作方法【增】appendChildinsertBefore【删】removeChild【查】ge

2021-04-06 23:29:47 334

原创 nodeJS中的Mysql语句

var User = { // 查询用户名 queryUserName(params){ return "select * from user where userName = '"+params.userName+"' or phoneNumber = '" + params.userName + "'"; }, // 验证用户名和密码 queryUserPassWord(params){ // return 'select * from user where userName=' +

2021-03-28 19:55:54 405

原创 模块化vuex的写法

2021-03-22 16:40:21 228

原创 express接口跨域问题

router/index.jsvar express = require('express');var router = express.Router();var connection = require('../db/sql.js');//设置跨域访问router.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); // Access-Control-Allow-Hea

2021-03-20 16:11:25 471

原创 js中的继承

原型继承构造函数继承共享原型临时构造函数继承

2021-02-15 14:06:35 104

原创 require模块的载入策略

文章目录NodeJs中模块的分类模块查找的优先级require方法接受的参数module.pathsrequire查找策略NodeJs中模块的分类内置模块:也叫原生模块,核心模块,内置模块在安装node.js的时候就已经编译成二 进制文件(保存在lib目录下),可以直接加载运行(速度较快),部分内置模块,在node.exe这个进程启动的时候就已经默认加载了,所以可以直接使用。例如:fs、path、http文件模块路径模块:也就是用相对路径或者绝对路径引入的。即本地包(开发人员自己

2021-02-01 13:51:35 449

原创 面试四 模块化组件化

文章目录模块与模块化组件与组件化工程化module的语法CommonJSAMD和CMDES6和CommonJS的不同CommonJS加载原理export命令import命令export 和 export defaultimport()import()使用场合module的加载实现浏览器加载浏览器加载ES6模块node加载ES6模块模块与模块化理解模块就是向外暴露的一些具有特定功能的js程序。一般就是一个js文件。这个文件里面包含了一些数据和对数据的操作,最后在通过指定的方式将他们暴露出去供外部使

2020-10-27 09:35:37 315

原创 面试三 h5+css3新增属性

文章目录H5新特性语义化标签Canvas元素拖放Audio(音频)、Video(视频)HTML 音频/视频 方法:增强型表单新增表单元素新增的表单属性CSS3新增属性选择器css3盒模型CSS3伸缩布局盒模型(弹性盒)背景和边框、阴影2D/3D转换动画、过渡媒体查询RGBA和透明度H5新特性语义化标签查看上面标签语义化相关内容标签描述header定义了文档的头部区域footer定义了文档的尾部区域nav定义文档的导航section定义文档中的节(sect

2020-10-27 09:31:51 548

原创 面试二 es6新特性

文章目录let 命令和const命令let命令const命令块级作用域变量的解构赋值字符串的扩展模板字符串函数扩展函数参数的默认值rest参数箭头函数对象扩展属性的可枚举性属性遍历super关键字Symbol数据类型属性名的遍历Set和Map数据结构SetWeakSetMapWeakMap()Promise对象promise用法推荐Promise.prototype.finally()应用Iterator和for...ofIterator的作用Iterator的遍历过程Iterator 接口的目的调用Ite

2020-10-27 09:23:52 758

原创 面试一

文章目录标签语义化浏览器渲染机制相关概念DOM和CSSOM的构建流程加载资源浏览器的渲染流程浏览器浏览器的多进程浏览器渲染进程的多线程浏览器主进程和渲染进程的通信js运行机制js(引擎)是单线程任务队列js的事件轮询机制宏任务和微任务定时器的注意点标签语义化【谈谈你对标签语义化的认识?】常见的语义化标签:<header></header>头部<nav></nav>导航栏<section></section>区块(有语义化的d

2020-10-27 09:21:29 251 1

原创 BootStrap栅格系统的源码分析

文章目录容器公共样式 container-fixed清除浮动 .clearfix流体容器固定容器源码分析栅格系统行 & 列.make-row.列make-grid-columns().make-grid(xs);栅格盒模型的设计精妙之处容器公共样式 container-fixed【固定容器和流体容器的公共样式】/** grid.less **/.container-fixed(@gutter: @grid-gutter-width) { margin-left: auto;

2020-10-22 16:56:11 403 2

原创 vue整体复习 四

文章目录ES6的扩展运算符对象的扩展运算符数组的扩展运算符vuex的辅助函数vuex的结构图vuex案例:todoListStorerender配置ES6的扩展运算符对象的扩展运算符用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中let zxx = {a: 1, b: 2};let zxxs = {...zxx};console.log(zxxs) // {a: 1, b: 2} // 等价于 let zxx = {a: 1, b: 2};let zxxs = Object.

2020-10-20 10:42:30 166

原创 面试五 vue源码解析

文章目录vue源码分析说明准备知识数据代理模板解析大括号事件指令一般指令数据绑定dep和watcher的关系MVVM结构图双向数据绑定vuex状态自管理应用多组件共享状态的问题vuex-counter应用vuex核心APIstateactionsmutationsgettersmodules向外暴露store对象映射storestore对象总结vue源码分析说明主要分析vue作为MVVM框架的基本实现原理数据代理模板代理数据绑定不直接看vue.js源码剖析github上某基友

2020-10-20 10:38:40 710 1

原创 vue整体复习二

文章目录Vue组件化编码创建vue项目基于脚手架编写项目文件描述项目的打包与发布eslinttodos练习localstorage存储数据组件通信propsvue自定义事件消息的订阅与发布slotvue-ajaxvue项目中常用的两个库vue UI组件库vue-router路由路由器相关API说明项目文件夹说明注册路由注册路由嵌套路由的配置路由器的配置路由的使用路由使用总结向路由组件传递数据params方式query参数router-view标签属性携带数据缓存路由组件编程式路由导航Vue组件化编码使

2020-10-20 10:30:47 184 1

原创 vue整体复习 一

文章目录Vue的特点vue和其他前端框架的特点MVVMModel层View层VueModel层计数器的MVVMvue的基本使用vue实例传入的options对象基本指令自定义指令计算属性监视属性强制绑定class绑定内联样式绑定监听事件修饰符按键修饰符表单数据的自动收集vue实例的生命周期过渡和动画过滤器vue插件Vue的特点遵循MVVM模式编码简洁、体积小、运行效率高、适合pc/移动端开发它本身只关注UI,可以轻松引入vue插件或者其他第三方库来开发项目。vue和其他前端框架的特点借鉴了

2020-10-20 10:08:40 285

原创 深拷贝和浅拷贝

文章目录浅拷贝深拷贝实现深拷贝递归复制所有层级的属性JSON对象的stringify和parse```jquery```的```extend()```参考链接浅拷贝假设B复制了A,当修改A时, B也会发生改变深拷贝假设B复制了A,当修改A时,B不会发生改变实现深拷贝递归复制所有层级的属性function deepClone(obj){ let target = Array.isArray(obj) ? [] : {} if (obj && typeof obj

2020-09-27 16:38:46 117

原创 JSON.stringify()和JSON.parse()的使用

文章目录JSON.stringify()JSON.parse()用处```JSON.stringify()```与```toString()```的区别参考博文JSON.stringify()作用:将js对象转为字符串引用类型转为基本类型JSON.parse()作用:将json类型的字符串转换为对象基本类型转为引用类型用处1. 判断数组是否包含某对象,或者判断对象是否相等。// 判断数组里面是否包含某对象let obj = [ {name:'echo'},{name:'听风是风

2020-09-27 16:32:52 142

原创 作用域和作用域链

文章目录作用域静态作用域动态作用域js采用的静态作用域全局作用域局部作用域块作用域作用域链上下文和作用域执行上下文和作用域作用域作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期。作用域分为 静态作用域 和 动态作用域作用域的另外理解可点击这里查看静态作用域静态作用域还称为词法作用域:词法作用域是指在词法分析阶段就确定了,不会改变。在词法作用域中:变量的作用域是在定义时决定而不是执行时决定,也就是说词法作用域取决于源码,通过静态分析就能确定词法分析的详细信息可点击这

2020-09-25 13:32:32 130

原创 toString方法

文章目录数据的转换toString()和valueOf()调用顺序toString详解数据的转换所有JS数据类型都拥有valueOf和toString这两个方法,null除外。它们俩解决javascript值运算与显示的问题。第一个是toString(),它的作用是返回一个相对这个对象的字符串(js值显示)第二个是valueOf(),它的作用是返回它相应的原始值(js值运算)toString()和valueOf()调用顺序可以看做是把一个数据转换成了相应字符串的形式,安照这个转换规则中toS

2020-08-30 16:52:10 5883 1

原创 valueOf

文章目录ES5中valueOf的介绍语法和返回值例子分析ES5中valueOf的介绍15.2.4.4 Object.prototype.valueOf ( )When the valueOf method is called, the following steps are taken:Let O be the result of calling ToObject passing the this value as the argument.If O is the result of call

2020-08-30 11:31:51 215

原创 (五-1)this相关例题

注意:以下代码全基于浏览器非严格模式运行咱先定义一个全局变量a,后面所有的示例都假定此全局变量已存在:var a = 0;案例一 :执行环境// demo1var obj = { a: 1, b1: this.a, b2: () => this.a,};console.log(obj.b1); console.log(obj.b2()); 【要知道的】JS代码有三种运行环境Global Code : JavaScript代码开始运行的默认环境 this

2020-08-25 11:20:31 450

原创 JS执行上下文,作用域链,闭包

文章目录代码的运行环境执行上下文VO (变量对象)AO (活动对象)细看执行上下文案例分析代码的运行环境在JS中有三种代码运行环境Global CodeJavaScript代码开始运行的默认环境Function Code代码进入一个JavaScript函数Eval Code使用eval()执行代码执行上下文为了表示代码处在不同的运行环境,又引出了执行上下文(Execution context,EC)的概念即当JS代码在执行的时,会在执行环境中进入到不同的执行上下文。而这些

2020-08-24 18:21:47 244

原创 (六)this绑定的例外

文章目录

2020-08-22 11:42:18 112

原创 (五)this全面解析

文章目录this的误解this指向函数自身this指向函数作用域this到底是什么this的全面解析默认绑定隐式绑定隐式丢失显示绑定call、apply硬绑定new绑定四种绑定的优先级this的误解this指向函数自身大多数人会根据this的字面意思将它理解为【指向函数自身】。什么情况下,this会指向自身呢?递归 。也就是从函数本身的内部调用自己当我们写一个第一次调用后,自己解除绑定的事件处理器时,这个时候也需要使用到函数自身但是this真的就是指向函数自身吗?function f

2020-08-21 21:34:08 298

原创 (四)作用域闭包

傻大个

2020-08-20 12:21:21 134

原创 (三)函数作用域和块作用域

文章目录函数作用域隐藏内部实现规避冲突函数表达式函数表达式和函数声明的区别匿名和具名立即执行函数表达式块作用域函数作用域JS中具有基于函数的作用域,意味着每声明一个函数都会为其自身创建一个作用域气泡。属于这个函数的所有变量都可以在整个函数的范围内使用及复用(事实上嵌套的作用域也可以使用)。隐藏内部实现我们可以从写的代码中挑选出一个任意片段,然后用函数声明对它进行包装,实际上就是把这些代码“隐藏”起来了。此时代码中的任何声明(变量或函数)都将绑定在这个新创建的包装函数的作用域中,而不是先前所在的

2020-08-19 21:34:09 225

原创 (二) 词法作用域

文章目录词法阶段词法作用域欺骗词法作用域evalwith词法阶段【要知道的】:大部分标准语言编译器的第一个工作阶段就叫词法化(也称为单词化)在这个过程中,编译器会对源码中的字符进行检查,如果是有状态的解析过程,还会赋予单词语义词法作用域词法作用域就是定义在词法阶段的作用域换句话说,词法作用域就是你在写代码时,将变量和块作用域写在哪里的位置决定的function foo(a){ var b = a * 2; function bar(c){ console.log(a,

2020-08-19 11:49:13 170

原创 (一)编译器+引擎+作用域的关系

文章目录要知道的传统编译语言的流程分词/词法分析解析/语法分析代码生成js引擎中的编译器三个搭档引擎编译器作用域var a = 2 发生了什么编译器的小术语要知道的我们通常将JavaScript归类为“动态”或“解释执行”语言,但事实上它是一门编译语言与传统的编译语言不同,js不是提前编译的,编译结果也不可以在分布式系统中进行移植,尽管如此,js引擎进行编译的步骤和传统的编译语言还是非常的相似,但他在某些环节可能会更复杂传统编译语言的流程在传统编译语言的流程中,如果程序中的一段源代码需要执行,

2020-08-18 18:40:00 402

原创 01_HTTP相关

文章目录http请求交互的基本过程http请求报文和http响应报文请求方式 1. GET请求 2. POST请求 3. PUT请求 4. DELETE请求 请求参数1. query参数 2. params参数 3. 请求体参数 xhr对象的readyState和status的区别http请求交互的基本过程http请求报文和http响应报文请求方式下面是四种常见的请求方式,八大请求点击这里查看 1. GET请求 查:从服务器端读取数据 2. POST请求 增:向服务器端添加数据

2020-08-11 11:51:06 175

原创 axios源码分析

axios和Axios的区别instance和axios的区别

2020-08-09 11:20:21 127

原创 mouseover,mouseout和mouseenter,mouseleave

mouseover与mouseentermouseover: 只要鼠标指针移入事件所绑定的元素或其子元素,都会触发该事件mouseenter: 只有鼠标指针移入事件所绑定的元素时,才会触发该事件换句话说就是,如果一个元素没有子元素,那么该元素绑定mouseover或者mouseenter两种事件效果没有区别,鼠标每次移入元素时都只会触发一次事件如果绑定了mouseover事件的元素存在子元素,那么,每次移入该元素时都会触发一次事件(包括从外部移入到该元素和从子元素移入该元素),移入子元素时也会

2020-07-21 09:55:49 232

原创 npm下载包失败

npm无法下载任何包,并且出现下面错误:Miscellaneous Warning ERR_TLS_CERT_ALTNAME_INVALID: request to https://registry.cnpmjs.org/express failed, reason: Hostname/IP does not match certificate's altnames: Host: registry.cnpmjs.org. is not in the cert's altnames: DNS:r.cnpmj

2020-06-11 15:47:01 1250

原创 node中的路径问题

node.js中的路径__dirname: 获得当前执行文件所在目录的完整目录名__filename: 获得当前执行文件的带有完整绝对路径的文件名process.cwd():获得当前执行node命令时候的文件夹目录名 ./: 文件所在目录...

2020-06-07 18:44:22 1006

原创 模块的导入和引入

要知道的es6和node都支持的引入:require只有node支持的导出:exports和module.exports只有es6支持的导出引入:export和importnode模块的导出导入引入:require导出:exports或module.exportsNode里面的模块系统遵循的是CommonJS规范。那问题又来了,什么是CommonJS规范呢?由于js以前比较混乱,各写各的代码,没有一个模块的概念,而这个规范出来其实就是对模块的一个定义。CommonJS定义的模

2020-05-29 15:07:06 780

原创 数据结构和算法的关系

数据结构数据结构是一门研究组织数据方式的学科,有了编程语言就有了数据结构。程序 = 数据结构 + 算法数据结构是算法的基础,换言之,要想学好算法,需要把数据结构学到位。(学好数据结构不一定会学好算法)线性结构线性指得是数据元素之间存在一对一的线性关系。线性结构的两种存储结构:顺序存储结构和链式存储结构顺序存储的线性表称为顺序表。顺序表中的存储元素是连续的。链式存储的线性...

2020-03-16 21:23:27 423

原创 js中的数据类型转化

文章目录显式转换的数据类型隐式的数据类型转换显式转换的数据类型 1、非数值 =====》 数值类型 有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat() 第一个函数Number(mix),可以用于任何数据类型,该函数先将mix的数据类型转换为number类型,然后再将mix的值转换为数值。 若mix的值能直接转换成数字,则直接显示。...

2020-03-11 17:21:59 186

原创 js面试易错点

js中的数据类型的转换运算符的优先级var a = 2 || 3;console.log(a); //true

2020-03-10 19:32:29 78

原创 数据结构(一)

常见的10种排序列表快速记忆:选泡插,快归堆希统计基,恩方恩老恩一三,对恩加K 恩乘K,不稳稳稳不稳稳不稳不稳稳稳稳!

2020-02-10 21:34:30 222

原创 axios

文章目录axios的特点axios和Axios的关系axios和instance的区别axios的特点前端最流行的ajax请求库基于promise的异步ajax请求库可以在浏览器端和node服务器端使用支持请求/响应拦截支持请求取消支持请求/响应数据的转换可以批量发送多个请求axios和Axios的关系从语法上说axios不是Axios的实例,从功能上说axios是A...

2020-02-09 21:58:51 277

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除