随笔分类 -  javaScript

摘要:应用场景:有多个异步的方法,需要同步化序列,这时候一般的处理是定义一个方法,利用 async 将其 一个一个添加 await 然后执行,也可以利用 Promise.all 来处理,相比之下,使用 Promise.all([ ]) 的方法,可以更加高效的执行,能够快速的去序列化,但是使用这个方法的劣势 阅读全文
posted @ 2019-11-12 13:50 mumengchun 阅读(761) 评论(0) 推荐(0)
摘要:删除数组的重复项 var arr = [1, 2, 5, 6, 2]; 方法一: let result = Array.from(new Set(arr)) 方法二: let result = [...new Set(arr)] 替换数组中的特定值 var arr = ['a1', 'a2', 'a 阅读全文
posted @ 2019-10-29 10:14 mumengchun 阅读(339) 评论(0) 推荐(0)
摘要:由于有些浏览器版本的发布是在 es6 定稿和发布之前的,因此对于老版本的浏览器是没有对 es6 的特性进行兼容的,针对 es6 的兼容问题,许多团队也做出了相应的开发,将 es6 的语法转换成针对浏览器可以识别的 es5 语法,充当一个翻译官的角色;比较通用的工具有:babel、jsx、traceu 阅读全文
posted @ 2019-09-11 09:18 mumengchun 阅读(6166) 评论(0) 推荐(0)
摘要:mvc 的是 model view controller 的缩写,一种通过业务逻辑、数据、界面显示分离的方法进行代码组织的方法;其中 M 层处理数据、业务逻辑;v 层处理界面的显示结果;c 层起到桥梁的作用,来控制 v 层 和 M 层通信,以此达到分离视图显示和业务逻辑层; mvp 是从 mvc 演 阅读全文
posted @ 2019-09-09 09:14 mumengchun 阅读(440) 评论(0) 推荐(0)
摘要:浏览器的事件循环分为 macrotask 和 microtask,浏览器先从 macrotask 取出一个任务执行,再执行 microtask 内的所有任务,接着又去 macrotask 取出一个任务执行,这样一次循环。 marcotask 的本质是浏览器多个线程之间通信的一个消息队列;在 chro 阅读全文
posted @ 2019-09-02 11:30 mumengchun 阅读(1392) 评论(0) 推荐(1)
摘要:CommonJS CommonJS 是以在浏览器环境之外构建 javaScript 生态系统为目标而产生的写一套规范,主要是为了解决 javaScript 的作用域问题而定义的模块形式,可以使每个模块它自身的命名空间中执行,该规范的主要内容是,模块必须通过 module.exports 导出对外的变 阅读全文
posted @ 2019-08-13 17:10 mumengchun 阅读(7364) 评论(0) 推荐(1)
摘要:Web 开发允许 js 程序的一部分在一个独立的线程中运行,该线程可以与 js 主线程并行运行;但是这并不意味着我们可以在 js 程序中引入多线程操作,因为在多线程操作中两个独立的线程之间是可以通过异步事件相互通信的,他们彼此之间通过事件轮询机制(event-loop)一次一个的来运行,因此在我们使 阅读全文
posted @ 2019-08-13 14:18 mumengchun 阅读(223) 评论(0) 推荐(0)
摘要:Proxy 用于修改某些操作的默认行为,也可以了解成是在目标对象之前假设的一层拦截,或者是对原生 Object 方法的封装;通过 Proxy 的设置,外部所有的访问都必须先通过这一层拦截,因此可以通过这个对外部的访问进行过滤和修改。 Proxy 支持的拦截的操作方法一共有 13 中: 1)、get( 阅读全文
posted @ 2019-08-13 13:47 mumengchun 阅读(342) 评论(0) 推荐(0)
摘要:一、MVC(Model-View-Controller) MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。 MVC使用非常广泛,比如JavaEE中的SSH框架(Stru 阅读全文
posted @ 2019-08-07 11:20 mumengchun 阅读(140) 评论(0) 推荐(0)
摘要:CSRF 的英文全称是 cross-site request forgery ,缩写也称 XSCF,也被称之为“one click attack” 或者 session riding; CSRF 和 XSS 非常的像,但是它们是有很大的区别的,并且攻击方式也不一样;XSS 是利用站点内的信任用户,而 阅读全文
posted @ 2019-08-07 10:18 mumengchun 阅读(861) 评论(0) 推荐(0)
摘要:XSS跨站脚本攻击的英文全称是:cross-site scripting,它是 web 应用中最常见的一种计算机安全漏洞;恶意的网站用户可以通过它将一些代码插入其他用户访问的页面中去,这些代码通常是一些客户端脚本程序;攻击者能够利用这种漏洞去绕过一些访问控制、进行身份钓鱼、钓鱼攻击、网页挂马等等攻击 阅读全文
posted @ 2019-08-07 10:02 mumengchun 阅读(1586) 评论(0) 推荐(0)
摘要:闭包的理解 (1)、闭包的概念: 简单理解就是定义在一个函数内部的函数,内部函数持有外部函数内变量的引用; (2)、闭包的优点: 1)、读取函数内部的变量;2)、方便调用上下文的局部变量,利于函数封装; (3)、闭包的缺点: 1)、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所有已不能 阅读全文
posted @ 2019-08-05 11:25 mumengchun 阅读(187) 评论(0) 推荐(0)
摘要:在浏览器中,事件流模型主要包括: 捕获型事件流和冒泡型事件流; 捕获型事件流:事件的传播从最不特定的事件目标到最特定的事件目标;即从外到内; 冒泡型事件流:事件的传播从最特定的事件目标到最不特定的事件目标;即从内到外; 两种事件流遵循的规则是:先捕获后冒泡; 阻值冒泡的方法: 1)、在 click 阅读全文
posted @ 2019-08-05 10:52 mumengchun 阅读(149) 评论(0) 推荐(0)
摘要:对于 web 应用来说,缓存是提升页面性能同时减少服务器压力的利器; 浏览器缓存类型:强缓存、协商缓存 强缓存 强缓存不会向服务器发送请求,直接从缓存中读取资源,在 chrome 控制台的 network 选项中可以看到该请求返回 200 的状态码,并且 size 显示 from disk cach 阅读全文
posted @ 2019-08-02 14:45 mumengchun 阅读(912) 评论(0) 推荐(0)
摘要:window.addEventListener("onorientationchange" in window ? orientationchange" : "resize",transformScreen , false); function transformScreen() { if (window.orientation === 180 || window.orientatio... 阅读全文
posted @ 2019-07-18 19:04 mumengchun 阅读(365) 评论(0) 推荐(0)
摘要:二维码图片既可以由后端生成,同时亦可以前端通过第三方类库来生成 在 vue 中使用第三方插件 qrcodejs2 生成二维码图片 1、npm install qrcodejs2 --save-dev 2、 import QRCode from 'qrcodejs2' 3、let qrcode = n 阅读全文
posted @ 2019-07-10 13:48 mumengchun 阅读(3538) 评论(0) 推荐(0)
摘要:堆内存 每当定义一个变量、常量或者对象的时候,都会有一个存储这些值的地方,这个地方就是内存堆; 可用的内存是有限的,因此合理的使用内存是非常有必要的,像 c 语言是通过显示的分配和释放来合理的利用内存的;javascript 是通过垃圾回收机制来合理的处理内存的; v8引擎中,垃圾回收器的名字叫做: 阅读全文
posted @ 2019-06-18 18:10 mumengchun 阅读(6184) 评论(1) 推荐(0)
摘要:javascript 中的变量分为 基本类型和引用类型。基本类型就是保存在栈内存中的简单的数据段,而引用类型指的是那些保存在堆内存找那个的对象; 基本类型 && 引用类型 基本类型有 undefined、null、boolean、number 和 string;这些类型在内存中分别占有固定的大小的空 阅读全文
posted @ 2019-04-03 13:27 mumengchun 阅读(370) 评论(0) 推荐(0)
摘要:在 js 中 es6 新增了 class 然后通过 extends 来实现继承的方式,但其原理都是在 es5 的基础上实现的,在 es5 中大致存在这几种继承的方式: 1、原型继承 例如 function dog () { this.classType = '犬科'; this.className 阅读全文
posted @ 2019-04-03 11:23 mumengchun 阅读(204) 评论(0) 推荐(0)
摘要:事件的防抖和节流主要是为了避免用户的重复操作引起浏览器的反复的回流和重绘。 防抖 所谓防抖就是,触发事件后,把触发非常频繁的时间合并成一次去执行。比如,在指定的时间内只执行一次回调函数,如果在指定的时间内又触发了该事件,则回调函数的执行时间会基于此刻重新开始计算。 实现方式: var timer; 阅读全文
posted @ 2019-04-03 10:08 mumengchun 阅读(911) 评论(0) 推荐(0)