自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

景色分明

面对的风景,除了世界,还有自己。

  • 博客(55)
  • 收藏
  • 关注

原创 图解js的继承

继承github地址1. 概念继承是面向对象编程的基石。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法1.1 继承的优点:提取公共代码,减少代码重复性提高代码可维护性让类与类之间产生了关系,是多态的前提1.2 继承的类型:单继承多继承不同类继承同一个类多继承2. js的继承js本身最开始的设计只是为了实现网页提交表单时做个表单验证等简单功能现在web端越来越重,导致js不得不持续更新完善自己,来支持实现越来越复杂的需求所以经常会看到一

2020-12-06 03:04:21 114

原创 webpack迷之参数--env --mode NODE_ENV

环境变量参数配置参数说明类型–env当配置文件是一个函数时,会将环境变量传给这个函数string–mode‘development’ 或者 ‘production’stringwebpack --env prod=1module.exports = (env, arg) => { // env { prod:1 } // arg.env = env}webpack --mode production注意⚠️ 命令行中的mode参数,会覆盖

2020-11-26 18:25:30 142

原创 es6系列之symbol

概述Symbol 新的基本数据类型,表示独一无二的值。前6中 undefined null number boolean string object对象的属性名可以有2中类型 string symbol使用Symbol函数可接受字符串作为参数,表示实例的描述,没有实际用处const s1 = Symbol('123')console.log(s1) // Symbol(123)Symbol参数如果是对象``数组等实例具有toString属性的,会将其转换为字符串(调用实例方法toStrin

2020-09-03 11:19:09 66

原创 http系列2--连接管理

http连接管理串行http是基于TCP进行连接的。TCP时延包括三次握手,慢启动等如果只是简单的串行连接,每个事务都需要建立一条新的连接 ,TCP的性能时延可能会叠加。并行连接HTTP允许客户端打开多条连接,并行的执行多个HTTP事务。http1.1 使用的就是并行连接,即同时发送多条http请求,每次都会同时重新发起新的http请求。好处是 不需要下一次的http事务等待上一个结束在发起,可以同时发起。不是说同一个连接同时只能发送一个http请求吗,为什么还可以并行连接呢?答:一个连

2020-07-26 13:54:52 118

原创 http系列1--概览

思维导图添加链接描述

2020-07-26 10:57:11 41

原创 手写bind call apply函数

applyFunction.prototype.myApply = function (thisArg, ArgArray) { if (typeof thisArg == 'undefined' || typeof thisArg == null) { thisArg = window } let fnSymbol = Symbol() thisArg[fnSymbol] = this let ret = thisArg[fnSymbol](...A

2020-07-20 14:23:25 80

原创 防抖节流函数

文章目录防抖节流防抖概念 :n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间使用场景:输入框实现:1.最初的想法:高频函数作为参数,和延时时间 传给debounce函数,然后染回一个新函数,使得整个函数具有防抖功能。首先想到使用闭包,这样可以具有保存变量的能力重新计时一定需要用到计时器的创建和清除const debounce = (fn, delay) => { let id return function(...args) { // 不能使用箭头函数

2020-07-05 17:17:53 1601

原创 常用的js util函数

判断数据类型function type(target) { let ret = typeof (target); const TYPE_MAP = { "[object Array]": "array", "[object Object]": "object", "[object Number]": "number", "[object Boolean]": "boolean", "[object String]": 'string' }; if

2020-06-09 23:27:52 183

原创 javascript的垃圾回收机制,内存管理机制,作用域链一系列问题

最近一直热衷于计算机组成原理,会抽空看下<<计算机组成原理>>和B站的视频,遇到了很多自己不明白的地方,然后在去查资料搜索相关的知识.本文仅是对自己看到的想到的一些知识做一些总结和梳理,并不是一个全方位的系统的 内存管理, 垃圾回收机制,作用域 的讲解.javascript中的 基础数据类型 存储在内存中的 栈区,引用数据类型 存储在内存中的 堆区现代浏览器 的垃圾回收机制是采用 标记清除法,ie8 以下是 引用计数法全局变量,闭包,计时器 容易造成内存泄漏如果能把上面

2020-05-31 17:39:54 172

原创 es结构赋值默认值无效的问题

问题:const b = {a:false}const {a = 2} = b执行结果a == false既然Boolean(a) == false ,为何不取默认值2呢???答案:可以进入babel自己测试下可以看到es6 => es5之后的结果a = b.a === void 0 ? false : b.avoid 0的解释void 0 === undefin...

2020-03-13 13:59:06 157

原创 taro框架props解构jsx标签,不渲染的问题

如果你也遇到这个问题,大概率说明你没有认真读过taro的文档,是不是有点气,我敢这么说是因为我就是,遇到了这个坑才想起来认真去看看文档。不过踩坑这个过程也是必要的,单纯地枯燥的看文档并不是最好的方法,遇到问题再去认真看下文档理解下,也未尝不可。废话太多!!!进入正题。问题:目录结构srccomponentsgood-itempagesgood-list...

2019-10-22 23:33:16 530

原创 gyp ERR! stack Error: EACCES: permission denied, mkdir问题解决方案

gyp ERR! stack Error: EACCES: permission denied, mkdir问题解决方案sudo npm i --unsafe-perm原因还是权限问题就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。这样的话如果你脚本里有一些需要...

2019-10-15 13:33:23 9750 2

原创 npm ERR! code EINTEGRITY 解决方案

npm ERR! code EINTEGRITY 解决方案在使用taro 安装依赖包的时候,经常出现npm ERR! code EINTEGRITY的问题,应该是npm本地的缓存造成的。删除package.lock.json文件(如果不想更改此文件,装完之后还原即可)npm cache clean --force (会有警告提示,忽略即可)npm i 重新安装亲测有效~...

2019-10-14 14:23:33 2934 2

原创 随机打算数组【洗牌算法】

// 洗牌算法var a = [1,2,3,4,5,6,7,8,9];//方法1function randomList(arr){ var newArr = []; while(arr.length > 0){ //从现有的数组中随机找一个放入新数组中 var random = Math.floor(Math.random() * arr.l...

2019-09-05 22:46:28 73

原创 js深拷贝

递归function deepCopy(arg){ var result = Array.isArray(arg) ?[]: {}; for(let key in arg){ if(obj.hasOwnProperty(key)){ if(typeof arg[key] === 'object'){ resu...

2019-09-05 22:42:31 45

原创 leetcode--最长回文字符串

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Example...

2019-08-27 23:33:54 77

原创 下划线,横线连接符转为驼峰命名

/** * * @param {*} s * @param {*} symbol 分隔符 */function toCamelCase(s,symbol){ var arr = s.split(''); const len = arr.length; for (let i = 0; i < len; i++) { const eleme...

2019-08-27 11:29:01 103

原创 leetcode: Longest Substring Without Repeating Characters最长不重复字符串

Given a string, find the length of the longest substring without repeating characters.Example 1:Input: "abcabcbb"Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:Inpu...

2019-08-26 22:54:51 37

原创 http的get和post的区别

http的get和post的区别内部因素:编码方式,报文外部因素:缓存[浏览器],长度限制[浏览器],请求次数[浏览器],幂等性/副作用[接口] 安全性参数编码 get:仅支持url编码,参数需要编码和解码post:多种编码方式报文get:参数放在urlpost:参数放在请求体缓存get请求会被浏览器缓存post不会长度限制浏览器允许get请求url长度为8k,过长会影...

2019-08-26 14:00:52 44

原创 js高程3面向对象的程序设计系列之二--创建对象

创建对象 这是js高程3--第6章面向对象的程序设计--第二节创建对象的总结与自己的理解,每一种模式都有自己的优点与缺点,搞清楚它们出现的历史原因,优缺点,我们才能使用的更加游刃有余!正文开始我们都知道创建单个对象有两种方法,构造函数和字面量的形式。var obj = new Object(); //构造函数var obj1 = {}; //字面量 如果我们想要创建多个对象,...

2019-08-17 18:10:37 56

原创 学习心得

高效学习今天看双越老师的课程,讲到他自己关于学习,看书的看法,收获颇深!、去繁就简任何事物都有它的二八原则,一个app,80%的用户在使用它20%的功能,剩下80%的功能满足20%的用户。一个复杂的代码源码,如jQuery,Vue,React,diff算法等等,最核心的东西,思想只有20%,其他80%是我们没有必要或者没有精力去学习的。一本技术类书籍,拿到之后并不是直接去从头开始一行一...

2019-08-11 18:16:41 118 2

原创 js函数参数传递

js函数参数传递《JS高程3》4.1.3中:ECMAScript中所有函数的参数都是按值传递的。也就是说,把函数外部的值复制为函数内部的参数,就和把值从一个变量复制到另一个变量一样。正如书中所说,“有不少开发人员在这一点上可能感到困惑”,很不幸,我就是那一部分人。本文一是看高程整理的笔记,另一方面是自己有很多不理解的地方,望理解的可以解开我的困惑。以下内容红色部分为是我自己内心yy,就是我...

2019-07-14 00:33:49 144 3

原创 数组常用方法

map:新建一个数组,不改变原数组,return 值为数组相应值filter:新建一个数组,不改变原数组,return ture返回数组值,false不返回forEach:无返回值,无法return 跳出循环...

2019-04-04 10:30:25 64

原创 获取对象自身的属性

问题找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)1、返回数组,格式为 key: value2、结果数组不要求顺序答案Object.keys 方法(156 ms)返回可枚举的实例属性的数组。function iterate(obj) { return Object.keys(obj).map(function(key) { ...

2019-04-04 10:02:15 342

原创 小程序列表分页效果

小程序列表分页效果1.需求触底分页加载列表2.代码Talk is cheap. Show me the codepage.jsPage({ /** * 页面的初始数据 */ data: { page:0,//当前页 pages:0,//每页条数 total:0,//总条数 shop:[...

2019-03-31 16:44:10 5969

原创 工作常用git-命令--自己总结

git add .git commit -m “”git pushgit log1.git log --grep="" //模糊匹配commit名称2.git log --name-only //仅在提交信息后显示已修改的文件清单。git checkout 分支git checkout -b 分支...

2019-03-29 11:35:19 66

原创 小程序根据手机机型设置自定义底部导航距离

需求:iponeX 以上机型,手机底部有弧度,自己写的导航栏会被遮住, 需要判断手机机型,做兼容设置.解决://app.jsApp({ /** * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) */ onLaunch: function() { var that = this; //获取手机型号 ...

2019-03-29 10:31:49 855 2

原创 iframe,ios下iframe页面内容宽度超出屏幕宽度

iframe,ios下iframe页面内容宽度超出屏幕宽度安卓,pc上面测试正常,ios异常解决方案:&lt;div style="overflow: auto;-webkit-overflow-scrolling:touch;width:100%;height:100%;"&gt; &lt;iframe src="https://engine.tuishark.com/in...

2019-02-18 15:22:32 2233

原创 ie不支持函数参数默认值

#ie不支持函数参数默认值function fn(a,b = 1){ }可改为function fn(a,b){ if(b == undefined){ b = 1; }}亲测有效

2019-01-26 18:58:09 1481

原创 计算机网络--数据交换1

数据交换1.如何实现数据通过网络核心从源主机到达目的主机?答:数据交换为什么需要数据交换?主机数量之大,不可能每2台主机之间都链接一条链路,距离太远,不现实网络规模之大数据交换分为3种,1.电路交换最典型的电路交换网络:电话网络电路交换3个阶段:建立连接(呼叫/电路建立)通信释放资源(拆除电路)特点:独占资源从通信资源的分配角度来看,“交换”就是按照某种...

2019-01-22 15:26:14 179

原创 写好JavaScript条件判断语句的5条守则

学而不思则罔,思而不学则殆!!!1.多重判断时使用 Array.includes2.更少的嵌套,尽早 return3.使用默认参数和解构4.倾向于遍历对象而不是 Switch 语句5.对 所有/部分 判断使用 Array.every &amp; Array.some原文链接...

2019-01-10 09:46:16 81

原创 移除数组中元素(直接改变原数组)

题目描述移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回splice,递增遍历function removeWithoutCopy(arr, item) { var length = arr.length for(var i = 0; i &lt; length ; i++){ if(arr[i] == ...

2019-01-04 10:19:11 952

原创 js移除数组中元素

题目描述移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组filterfunction remove(arr, item) { return arr.filter(function(cur,index,src){ if(cur === item){ return false } ...

2019-01-04 09:57:11 2280

原创 Xftp安装报错【组件错误】

安装Xftp问题:在安装Xftp的时候,安装到最后会报错 组件错误解决:打开Visual Studio C++链接下载Visual Studio C++安装后重启电脑(一定要重启电脑!!)重新安装XftpOK,安装成功!!亲测有用。...

2018-11-30 21:48:36 2646

原创 三个终止continue,break,return的区别

三个终止continue,break,return的区别continue只在循环语句,switch语句中使用,用于跳出当前迭代如果是双层循环,continue不影响外层循环break只在循环语句,switch语句中使用,用于跳出外面一层的循环,或终止switch如果是双层循环,break不影响外层循环return只在函数中使用,用于终止整个函数的运行,无论多少...

2018-11-24 11:17:29 249

原创 js观察者模式

最近写代码越来越觉得自己的代价杂乱无章,无章可循。才猛然间领悟到,我要学习设计模式了。其实设计模式并不是说一定要用设计模式,甚至有人说用了不如不用,但是我觉得设计模式最大的优点就是让我们写代码的时候有一个方向可循,并不是随心所欲,想到哪里就写到哪里,这样我们或者别人以后看这段代码,知道你用的是什么设计模式,就会用相应的思维去看你的代码,而不是需要2个小时才搞明白你的代码整体架构逻辑是...

2018-11-22 22:11:18 71

原创 npm安装提速

npm命令行后面添加淘宝镜像地址就oknpm install babel-loader --save-dev --registry=https://registry.npm.taobao.org

2018-11-16 22:05:42 148

原创 input设置占位符placeholder样式

input::-webkit-input-placeholder { color:rgba(153,153,153,1);text-align: left; }input::-moz-placeholder { color:rgba(153,153,153,1); text-align: left;} /* firefox 19+ */input:-ms-input-placeho...

2018-11-15 16:29:04 4342

原创 移动端设置高度为窗口高度

做移动端web的时候,我们经常遇到要设置外层div为屏幕高度,但是内容没有达到窗口高度,div继承body的高度,达不到屏幕高度我们一般的方法是html,body{ height:100%;}但是,下面方法更好div{ height:100vh; //100vh为屏幕高度}...

2018-11-14 11:43:13 2590

原创 前端DOM学习总结(一)

感觉自己的DOM基础很不扎实,最近在看&amp;amp;lt;&amp;amp;lt;javaScript高级程序&amp;amp;gt;&amp;amp;gt;,学习这一模块,下面是自己的学习成果.节点层次Node类型节点关系操作节点节点层次DOM 可将任何 HTML , XML 描绘成由多层节点构成的结构.节点分为几种不同的类型,每种类型分表表示文档中不同的信息及标记.每个节点都拥有各自的特点,数据 和 方法,节点之间都存在某种关系....

2018-10-27 14:21:11 354

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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