![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 94
Lechar0327
只有不断的突破自我,才是真正的无懈可击
展开
-
JS 装饰器( Decorator )
JS 装饰器( Decorator )文章目录JS 装饰器( Decorator )一.概念二.特点三.使用方式1.安装依赖2.配置文件.babelrc3.引入注册babel4.使用三.装饰器原理`Object.defineProperty()`1.装饰-类2.装饰-类属性(属性,方法,get/set函数)1. 装饰方法2. 装饰类属性(字段)3.装饰getter和setter函数3.多个装饰器执行顺序4.装饰器不能用于函数一.概念说起装饰器之前,先了解一下JS设计模式之装饰器模式。装饰器模式(Dec原创 2021-11-02 19:32:56 · 878 阅读 · 1 评论 -
JS数组之Reduce()用法
JS数组之Reduce()用法文章目录JS数组之Reduce()用法一.语法二.实例运用1.数组里所有值求和2.数组中对象的某一项所有值求和3.多维数组扁平化4.统计字符串中出现次数最多的字符5.求数组中最大的值6.数组去重三.总结一.语法arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])reduce()函数的参数有2个,第一个参数是一个函数(必须),第二个参数是一个初始值(非必须)。原创 2020-12-09 19:35:49 · 1044 阅读 · 1 评论 -
辟邪剑法之字符串常用API
辟邪剑法之字符串常用API文章目录辟邪剑法之字符串常用API一.引言二.字符串1.字符串介绍2.ES5字符串方法1.toLowerCase()2.toUpperCase()3.indexOf()4.lastIndexOf()5.slice()6.split()7.substr()8.substring()9.concat()10.charAt()11.charCodeAt()12.String.fromCharCode()13.search()14.replace()15.match()16.trim()原创 2020-09-22 18:46:42 · 699 阅读 · 0 评论 -
JavaScript 执行上下文,执行栈,作用域链
JavaScript 执行上下文,执行栈,作用域链文章目录JavaScript 执行上下文,执行栈,作用域链一.简介二.执行上下文的类型1.全局执行上下文1.变量对象VO()2.变量对象详解3.let/const和变量对象的关系2.函数执行上下文1.活动对象3.Eval函数执行上下文三.执行栈1.调用栈管理执行上下文2.执行上下文是怎么创建的3.执行上下文谈this四.作用域和作用域链1.作用域2.作用域链一.简介执行上下文也叫执行环境,指的就是当前Javascript代码被解析和执行所在环境的抽象原创 2020-08-14 00:42:55 · 342 阅读 · 0 评论 -
模块化之AMD,CMD,CommonJs,ES6 Module
模块化之AMD,CMD,CommonJs,ES6 module文章目录模块化之AMD,CMD,CommonJs,ES6 module一.简介二.AMD(异步模块定义)1.AMD原理2.为什么要使用require.js3.require.js的使用1.require加载模块2.require.config()3.require.config()全局配置4.define5.完整示例三.CMD(通用模块定义)1.CMD原理2.为什么要使用seajs3.seajs的使用1.define2.seajs.config原创 2020-08-12 00:25:30 · 338 阅读 · 0 评论 -
JavaScript 图片懒加载和预加载
JavaScript 图片懒加载和预加载文章目录JavaScript 图片懒加载和预加载一.背景二.懒加载1.为什么要使用懒加载?2.实现懒加载思路3.懒加载原理4.实现懒加载三.预加载1.为什么要使用预加载2.实现预加载思路3.实现预加载常见方法1.使用HTML标签2.使用Image对象3.使用ajax4.使用PreloadJS库四.懒加载和预加载区别1.概念2.区别3.意义一.背景目前各种电商网站层出不穷,大家都知道,电商网站的图片量是非常之多的,其实也不只是电商网站,更有些其他的,图片密集度比原创 2020-08-11 00:16:53 · 1148 阅读 · 0 评论 -
JavaScript this指向问题深入理解
JavaScript this指向问题深入理解文章目录JavaScript this指向问题深入理解一.前言二.this指向1.一般函数调用模式2.对象调用模式1.示例12.示例23.示例34.示例43.构造函数调用模式1.示例12.示例24.构造函数中指明返回值1.返回复杂对象2.返回值类型3.返回null5.事件绑定调用模式6.定时器函数调用模式7.箭头函数的this指向1.示例12.示例23.示例34.示例48.保存this指向三,强制改变this指向1.call()1.示例12.示例23.应用场景原创 2020-08-10 19:48:57 · 370 阅读 · 0 评论 -
JavaScript Set和Map数据结构
JavaScript Set和Map数据结构文章目录JavaScript Set和Map数据结构一.前言二.Set1.成员唯一2.属性方法1. size2.add()3.delete()4.has()5.clear()3.无法按下标查询,修改,排序4.Set的取值1.扩展运算符解构赋值2.forEach遍历3.for...of遍历4.keys()5.values()6.entries()5.Array和Set的对比6.Set的应用1.Set转为数组2.数组去重3.数组的map和filter可以间接用于Se原创 2020-08-09 21:54:43 · 541 阅读 · 4 评论 -
聊一聊 ajax
聊一聊 ajax文章目录聊一聊 ajax一.概念二.ajax使用1.优点2.缺点3.使用(ajax五步曲)1.创建ajax对象2.连接服务器:设置请求行 open方法3.设置请求头4.设置请求体,发送请求5.等待数据响应,响应后处理数据三.封装一个ajax一.概念AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术(局部刷新)AJAX => Asynchronous Javascript And XML直译为:异步的JavaScript和XML比较直白的讲,AJAX就原创 2020-08-08 23:50:59 · 209 阅读 · 3 评论 -
JavaScript async和await
JavaScript async和await文章目录JavaScript async和await一,概念二.基本使用1.async1. async 使用形式2. 异常处理3. Promise对象状态的变化2.await1. await使用2. 错误捕捉3. 错误处理三.async/await执行顺序分析一,概念ES2017标准引入了async函数,使得异步操作变得更加方便,有人说,这是解决回调地狱的终极方案async函数是什么?其实它就是Generator函数的语法糖.async函数就是将Ge原创 2020-08-08 22:50:50 · 475 阅读 · 0 评论 -
JavaScript Generator 函数迭代器
Generator 函数迭代器文章目录Generator 函数迭代器一.概念二.使用Generator1.遍历器对象2.Generator写法3.yield表达式1.yield与return区别2.yield不存在于Generator时三.与Iterator的接口的关系一.概念Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同.语法上,可以把它理解成Generator函数是一个状态机,封装了多个内部状态.形式上,Generator函数是一个普通函数,但是有两个原创 2020-08-08 18:26:15 · 279 阅读 · 0 评论 -
谈一下JavaScript的几种for循环
谈一下Javascript的几种for循环文章目录谈一下Javascript的几种for循环一.for循环1.优点2.缺点二.forEach循环1.优点2.缺点三.for... in循环1.优点2.缺点四.for...of循环1.for...of遍历数组2.for...of遍历字符串3.for...of遍历Map4.for...of遍历Set5.for...of循环遍历DOM集合6.for...of循环遍历arguments1.优点2.缺点五.提高for循环性能要点一.for循环for循环,我们最原创 2020-08-08 00:26:59 · 488 阅读 · 0 评论 -
JavaScript Promise浅析
JavaScript Promise文章目录JavaScript Promise一.概念二.Promise对象1.回调地狱2.Promise使用2.1 reslove2.2 reject2.3 then()2.4 catch()2.4.1 catch()本质2.5 then()第二个函数和catch()区别2.6 finally()2.7 Promise对象本身是同步的2.8 Promise示例2.9 Promise链式调用2.10 Promise优点缺点1.优点2.缺点三.Promise.all()1.原创 2020-08-06 15:39:23 · 343 阅读 · 0 评论 -
JavaScript 检测数据类型的四种方式
JavaScript 检测数据类型的四种方式文章目录JavaScript 检测数据类型的四种方式一.typeof1 优点2.缺点二.instanceof1.优点2.缺点三.constructor1.优点2.缺点四.Object.prototype.toString.call()1.优点2.缺点3,扩展一.typeoftypeof操作符返回一个用来表示数据类型的字符串,注意typeof运算之后的结果都是字符串类型的注意:typeof是一个操作符,不是一个函数!1.“string” 值是字符串原创 2020-08-05 02:06:48 · 1768 阅读 · 1 评论 -
JavaScript 继承优缺点详解
JavaScript 继承文章目录JavaScript 继承一,构造函数继承(对象冒充继承)1.优点2.缺点二.原型链继承1.优点2.缺点三.组合继承(常用)1.优点2.缺点四.拷贝继承1.优点:2.缺点五.原型式继承1.优点2.缺点六.实例继承1.优点2.缺点七.寄生继承1.优点2.缺点八.寄生组合继承(常用)1.优点2.缺点九.ES6 Class继承(不用想了,我就要用这个,妥妥的)1.优点一,构造函数继承(对象冒充继承)原理:调用父类构造函数,并改变其中的this指向(bind,call,ap原创 2020-08-05 00:22:19 · 228 阅读 · 0 评论 -
原型和原型链浅析
一.前言javascript与其它面向对象语言不同,在ES6没有引入class概念之前,javascript并不是通过类而是直接创建构造函数来创建实例.在javascript中,类不能描述对象可以干什么事,对象可以直接定义它自己的行为.因为根本不存在类! javascript一切皆对象,把js中的对象分为普通对象和函数对象.函数在js中是一等公民,所以把函数对象给区分出来.javascript是一种直译式脚本语言,是一种动态类型.弱类型,基于原型的语言二.属性:Prototype(原型)每个函原创 2020-08-03 19:37:54 · 703 阅读 · 0 评论 -
JavaScript BOM详解
JavaScript BOM文章目录JavaScript BOM一.概念及作用二.BOM和DOM对比三.BOM五大核心对象1.window对象1.1 常用窗口事件1.1.1 window.open() 打开新窗口1.1.2 window.close() 关闭新打开的窗口1.1.3 resizeTo和resizeBy 调整窗口大小1.1.4 window.onresize 调整窗口大小加载事件1.1.5 window.onload 窗口(页面)加载事件1.2 定时器1.2.1 window.setInter原创 2020-08-03 00:17:08 · 624 阅读 · 1 评论 -
JavaScript DOM详细解析
JavaScript DOM文章目录JavaScript DOM一.概念及作用二.DOM树1.节点类型1.1 文档节点1.2 元素节点1.3 文本节点1.4 属性节点1.5 注释节点2.nodeType属性3 nodeName属性4.nodeValue属性5.节点关系6.节点方法7.获取元素样式7.1 行间样式7.2 非行间样式7.3 getComputedStyle获取样式(不兼容IE678)7.4 currentStyle 获取样式 IE678的方法7.5 封装获取元素样式(兼容处理)8.offse原创 2020-08-02 20:01:38 · 1844 阅读 · 1 评论 -
谈谈事件循环机制 Event Loop
事件循环机制 Event Loop文章目录事件循环机制 Event Loop一.JavaScript是单线程1.为什么JavaScript是单线程2.让JavaScript拥有多线程二.任务队列1.同步任务(synchronous)2 异步任务(asynchronous)2.1 异步任务的执行机制3.Javascript中的异步任务3.1 setTimeout和 setInterval3.2 dom事件3.3 ajax3.4 promise4.调用栈 Call Stack(执行栈)5.事件队列(Task原创 2020-07-31 17:37:12 · 1044 阅读 · 2 评论 -
export和export default不再傻傻分不清了
export和export default区别文章目录export和export default区别一.背景二.论区别1.export2.export default3.import三.总结一.背景最近好几个小兄弟都问了我export 和export default导出的时候的区别,当时跟他们也只是说了个大概,今天这里多总结一下.二.论区别这个export的由来是来源于ES6的模块功能,ES6的模块功能主要由2个命令构成:export和importexport命令用于固定模块的对外接口原创 2020-07-15 17:16:00 · 2585 阅读 · 3 评论 -
var和let,const区别总结
var和let,const区别文章目录var和let,const区别一.var1.var属于ES5规范2.预解析3.声明提升4 作用域5.挂载对象二.let1.let属于ES6规范2.let只在块级作用域有效3.let声明变量不会提升4.不能通过let声明和形参相同的变量5.暂时性死区6.let声明全局变量三.const1.属于ES6规范2.声明只读常量3.必须初始化4.const本质3.必须初始化4.const本质一.var1.var属于ES5规范2.预解析var有预解析阶段,会被js解析器扫描原创 2020-07-04 19:43:20 · 3995 阅读 · 0 评论 -
JS解析器执行原理和声明提升机制
JS解析器执行原理和声明提升机制文章目录JS解析器执行原理和声明提升机制一.概念二.JS解析器的工作步骤1.预解析代码2.逐行执行代码3. 示例解读3.1 示例1(全局变量和函数内部变量名相同)3.2 示例2 (变量和函数重名)3.3 示例3(函数内部使用全局变量)3.4 示例4(局部变量不会改变全局变量)3.5 示例53.6 示例6.(同名函数)三.声明提升机制1.作用域1.全局作用域2.局部作用域2.变量的生命周期3.声明提升机制4.声明提升机制示例一.概念浏览器中有一套专门解析JS代码的程序原创 2020-06-26 16:22:47 · 439 阅读 · 0 评论 -
网络请求工具之axios,vue-resouce,fetch
网络请求工具之axios,vue-resouce,fetch文章目录网络请求工具之axios,vue-resouce,fetch一.背景1.angularjs2.vuejs3.react二.请求工具1.vue-resource1.1 安装1.2 使用1.3 常用api2.fetch2.1.安装2.2.使用3.axios3.1 安装3.2使用3.3 axios特点3.4 axios响应对象3.5 axios 请求对象3.6 axios 请求拦截3.7 axios 响应拦截3.8 axios在vue中全局使用原创 2020-06-22 01:13:49 · 1545 阅读 · 1 评论 -
独孤九剑之js操作数组
js数组方法详解文章目录js数组方法详解一.ES5数组方法1.Array.isArray()2.valueOf()3.toString()4.indexOf()5.lastIndexOf()6.push()7.pop()8.join()9.concat()10.shift()11.unshift()12.reverse()13.slice()14.splice() 最高级方法15.sort()16 some()17.every()二.ES6数组方法1.扩展运算符 ...1.1 将一个数组转为用逗号分隔参数原创 2020-06-20 20:36:22 · 26200 阅读 · 22 评论 -
JS防抖和节流介绍
JS防抖和节流一.背景> 我们日常开发中会经常遇到的问题,用户的行为会频繁的触发事件执行,对DOM操作、资源加载等耗费性能的处理,很可能导致界面卡顿,甚至浏览器的崩溃。函数防抖(debounce)和函数节流(throttle)就是为了解决类似的需求应运而生的。二.概念函数防抖和函数节流都是防止某一时间频繁触发,但是这两兄弟之间原理却不一样函数防抖是某一段时间内只执行一次,而函数节流是间隔时间执行函数防抖(debounce)与函数节流(throttle)都是为了限制函数的执行频次,以原创 2020-06-14 18:59:07 · 449 阅读 · 2 评论 -
深拷贝和浅拷贝探究详解
深拷贝和浅拷贝详解文章目录深拷贝和浅拷贝详解一.概念1.值类型和引用类型1.1值类型1.2 引用类型1.浅拷贝2.深拷贝2.1 JSON.parse+JSON.stringify2.2 lodash 实现深拷贝2.3 递归拷贝2.4 Object.assign()2.5 ES6扩展运算符 ...二.总结一.概念其实一般来说,我们遇到深浅拷贝的问题,都是针对引用数据类型的变量操作.先了解下数据类型1.值类型和引用类型值类型:直接存储其值,在内存中,是存在栈内存中引用类型: 存储对值的引用,在内原创 2020-06-11 21:09:33 · 320 阅读 · 0 评论 -
javascript-数据类型(三)
javascript数据类型文章目录javascript数据类型一.6大数据类型二.简单数据类型1.string2.number2.1 相关方法函数2.1.1 isNaN() 判断值是否为NaN,返回布尔值2.1.2 parseInt() 解析字符串,并返回一个整数2.1.3 parseFloat() 解析字符串,并返回一个浮点数2.1.4 Number.toFixed(n)3.boolean4.undefined5.null三.复杂数据类型1.object一.6大数据类型ECMAScrip原创 2020-05-24 22:15:12 · 808 阅读 · 1 评论 -
JavaScript-语法基础(二)
JavaScript基础语法文章目录JavaScript基础语法一.引入方式1.内部引入2.标签内引入3.外部引入二.常用输出或调试方法三.基础语法1.注释2.标识符3.javascript 关键字4.javascript保留字5.变量的概念及使用5.1 标识符命名规范5.2 变量的概念及底层原理一.引入方式1.内部引入在html文件中直接卸载script标签内部 (可以写在html文件中任何地方,但是一般都会有讲究,写固定地方)<script type='text/javascript'&原创 2020-05-24 01:05:43 · 203 阅读 · 0 评论 -
JavaScript-简介(一)
javascript 简介文章目录javascript 简介一.JavaScript 概述1.js与浏览器与html关系2.脚本语言3.动态类型4.静态类型5.弱类型6.强类型7.基于原型二.JavaScript 作用1.前端三剑客2.实际应用3.js在网页前端的作用4.跨平台特性三.javascript 简史四.ECMAScript(简称ES)版本一.JavaScript 概述javascript是一种直译式脚本语言,是一种 动态类型,弱类型,基于原型的语言直译式:直接编译并执行,代码不进行预编原创 2020-05-24 00:08:22 · 392 阅读 · 0 评论 -
JavaScript-正则表达式(基础罗列)
正则表达式文章目录正则表达式I.创建正则(三种方式)1.通过new创建正则2.省略new创建正则3正则常量赋值II.正则方法 (只有2种)1.test(重点)2.exec(了解)III.字符串方法(4种,搭配正则使用)1.match2.search3.replace4.splitIV.元字符1.单个字符2.空白字符3.锚字符4.重复字符5.替代字符V.修饰符a.i 忽略大小写b. g 全局匹配c. m 换行匹配V.修饰符a.i 忽略大小写b. g 全局匹配c. m 换行匹配正则表达式,又称规则表达原创 2020-05-21 15:43:53 · 313 阅读 · 0 评论 -
js闭包研究
今天呢咱们来聊聊这个js闭包,我们基本上在面试中,必然会问到的问题:什么是闭包?说说你对闭包的理解.闭包的作用是什么? 闭包也是一个很不好理解的概念,往往我们遇到的机会很多很多,很多朋友呢都说了对闭包的理解,问题表达的方式不一样,但是呢,最后都对闭包没有很清晰的理解.所以呢我这边就帮助大家理解什么是闭包.其实说起来,可以深,也可以浅.先由浅着说.之前呢,在网上也是找...原创 2020-03-07 22:25:39 · 339 阅读 · 0 评论 -
js之事件委托浅析
今天呢,咱们来说说事件委托,有的相关资料叫事件代理. 首先呢,先来讲讲事件委托的起源:由于事件处理程序可以为web应用提供交互能力,因此很多开发人员会不分青红皂白的向页面中添加大量的处理程序.在js中,添加到页面的事件处理程序数量直接关系到页面的整体运维性能.导致这一问题的原因是多方面的.首先:1 函数都是对象,都会占用内存,内存中对象越多,性能越差2 事先指定所...原创 2020-02-27 14:20:12 · 323 阅读 · 0 评论 -
js运动研究
一.为什么要学习运动框架 在我们进行web页面开发的过程中,如何与用户进行友好、有趣的交互,是我们必须考虑的问题。 比如:导航条中滑动的动画特效、点击加入购物车按钮通过抛物线加入右侧购物车的动画特效,当然还有一些网页游戏的开发:微信打飞机、打砖块等。 那么我们要实现这些好玩又有趣的动画,就需要我们对动画的基础【运动】炉火纯青.二.js运动原理 运动原理,其实从实际上来说...原创 2020-02-23 12:27:40 · 574 阅读 · 0 评论