javaScript
忽略我的表情
想吃天鹅的蜗牛
展开
-
一篇文章搞懂this
开篇说明随着科技的发展和历史的变迁,我对 this 的理解也越来越深入了,还记得之前写的一篇关于 this 的文章,自己看起来都感觉“味同嚼蜡”????,所以更新一篇,将功补过,哈哈~~,我们拿五种情况来说明 this 的指向问题,优先级从低到高,但是在这之前我们先说一下 js 的作用域链的问题。作用域链案例一function outer() { var name = 'outer'; ...原创 2020-02-28 22:21:51 · 114 阅读 · 0 评论 -
js排序上篇(冒泡排序、选择排序、插入排序、希尔排序、快速排序)
冒泡排序工作原理重复遍历序列,比较相邻的两个元素,如果这两个元素顺序不正确,则交换。重复以上步骤直到排序完成。js代码实现 + 效率测试运算10次,平均耗时1018 ms// 创建 20000 个随机数,数值范围:1 - 100000let ary = [];for (let i = 0; i < 20000; i++) { ary.push( Math.floor( Ma...原创 2019-12-21 17:27:54 · 219 阅读 · 0 评论 -
一个小demo理解js的任务队列
请写出下面代码的打印结果console.log( 'script start' );function run() { setTimeout(() => { console.log( 'timeout 1' ); }, 0); new Promise((resolve, reject) => { console.log( 'promise 1' );...原创 2019-12-14 16:29:20 · 401 阅读 · 0 评论 -
js中介者模式总结
内容来自《JavaScript设计模式与开发实践》一书,本人不才,也是阅读这本书第二遍的时候才理解了这种模式的好处????现实中的中介者模式的场景:博彩公司打麻将的人经常遇到这样的问题,打了几局之后开始计算钱,A 自摸了两把,B 杠了三次,C 点炮一次给 D,谁应该给谁多少钱已经很难计算清楚,而这还是在只有 4 个人参与的情况下。在世界杯期间购买足球彩票,如果没有博彩公司作为中介,上千万的人一起...原创 2019-12-07 16:43:11 · 189 阅读 · 1 评论 -
正则表达式基础总结
定义方式// 定义一个正则表达式有两种方式:let reg1 = new RegExp(/abc/);let reg2 = /abc/;// 但我们平时使用的方式还是第二种,就像我们初始化一个数组的时候是使用第一种而不是第二种的构造式let ary1 = new Array(1,2,3);let ary2 = [1,2,3];匹配包含固定字符串首先来一个最简单的正则,匹配包...原创 2019-11-24 14:17:27 · 143 阅读 · 0 评论 -
js享元模式的简单总结
享元模式:是一种性能优化的设计模式,主要为了解决内存中创建了大量的相似对象而产生的性能问题。我们通过向页面中插入元素的方式来模拟,假如我们的需求是:向页面中插入100个div,内容分别为1 - 100,再接着插入100个h3,内容分别为1 - 100。下面来看一下没有使用享元模式的代码写法for (let i = 1; i <= 100; i++) { let div = docu...原创 2019-11-23 15:45:01 · 151 阅读 · 0 评论 -
js组合命令模式
总结一种js的设计模式:组合命令模式一.拿实际应用场景来举例:比如双十一的时候,业务部门需要我们丰富一下购物车结算功能:判断商品是否过期计算优惠发送账单消息给用户那么这三个命令一般是在用户点击“结算”按钮触发的,那么把他们封装在一起var MakeGroup = function() { return { commandList: [], add: functi...原创 2019-11-17 16:19:33 · 202 阅读 · 0 评论 -
js观察者模式(发布订阅模式)
首先举一个现实生活中的例子:小区门口有一家商店,每天都会有很多小区里的人来商店买烟( 不提倡吸烟哦,只是举个例子???? ),那刚好昨天卖完了,老板去进货,也不知道什么时候回来,那售货员这时一般都会把每一个客人的电话或者微信留下来,等老板把烟进回来后,售货员再通过记录的联系方式告诉每一个客人:“货到了,来买吧”。那这就是一个观察者模式,即使是售货员辞职了,来了新的售货员也没有关系,依然是等到烟到了的时...原创 2019-10-26 15:03:12 · 115 阅读 · 0 评论 -
js代理模式总结
代理模式的定义:当一个请求想要访问一个原始对象A的时候,实际访问的是A的代理对象B,由对象B对请求做出一些处理之后,在把请求转交给原始对象A。案例一( 一般代理模式 )场景:某一天小明数学考试考了50分,这时候如果老师直接把试卷给到父亲的手里,那小明怕是免不了一顿毒打;那如果老师把试卷给了小明,小明再回家给到父亲,那小明是不是可以在给父亲之前改一下自己的分数呢?在这个过程中:老师把试卷给...原创 2019-10-20 16:05:30 · 153 阅读 · 0 评论 -
js策略模式总结
策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。(来自《JavaScript设计模式与开发实践》)**案例一:**假设我们有18元钱,打算去买水果,水果店里有三种水果:苹果(1元)、雪梨(单价2元)、香蕉(单价6元),那么我们买不同种类的水果,买到的数量是不一样的,接下来收我们用策略模式来模拟一下let buyFruits = { 'apple': funct...原创 2019-10-07 10:12:14 · 134 阅读 · 0 评论 -
js判断数据类型的三种方法(文章最后有快捷方法哦!)
js判断数据类型的方法有很多种,本文只选择三种使用频率较高的方法来说明,这里比较推崇使用第三种方法,闲话少说下面开始介绍:1、typeoftypeof new String( 'bart' ); // objecttypeof 'bart'; // stringtypeof 10; // numbertypeof true; // booleantypeof null; // obje...原创 2019-09-01 15:12:37 · 170 阅读 · 0 评论 -
js判断自然数
搜了一下没搜到js的,就自己写了一个,O(∩_∩)O~function isNaturalNum(num) { if (typeof num !== 'number') return false; if (Number.isNaN( num )) return false; if ( (1 / num) < 0 ) return false; if (num < 0) ret...原创 2019-08-25 09:45:06 · 1663 阅读 · 0 评论 -
Vue项目打包后体积很大
版权声明:本文为CSDN博主「小白阿里里」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_39224266/article/details/83894187在通过 npm run build 命令后得到项目文件发现体积很大,其实这是由于在打包时生成了.map 文件,因为项目打包后,代码都是经过压缩加密...转载 2019-08-20 15:21:57 · 3663 阅读 · 2 评论 -
es6操作数组方法
1.forEach( item, index, array ): 遍历数组,对数组的每个元素执行一次提供的函数,改变当前数组,没有返回值item: 当前项的值index: 当前项的索引array: 操作的数组let arr1 = [ 'a', 'b', 'c' ];let arr2 = arr1.forEach( ( item, index, arr ) => { if...原创 2019-08-11 16:43:06 · 304 阅读 · 0 评论 -
js中烦人的this的四种绑定规则
只说明在非严格模式下的情况! not "use strict"1.默认绑定:直接调用函数,那么this将被绑定到全局作用域下,也就是window对象function foo() { var a = 3; console.log( this.a );}var a = 2;foo(); // 2为什么不是3呢?因为此时执行 foo() 相当于执行 window.foo(),所以...原创 2019-07-27 16:59:46 · 171 阅读 · 0 评论 -
关于js截取字符串函数 substr substring slice 的用法以及区别
关于js截取字符串函数 substr substring slice 的用法以及区别1.substring( startIndex, endIndex ) 返回从索引startIndex 开始 到索引 endIndex之前的字符串。注意:如果两个参数相等则返回空字符串如果只传一个参数,那么将从该位置截取到字符串末尾如果第一个参数 > 第二个参数,那么执行的过程中会判断两个参数的大...原创 2019-08-04 16:31:52 · 223 阅读 · 0 评论