Learn and practice

vscode plugin

package.json 创建侧边栏的icon项 "contributes": { "viewsContainers": { "activitybar": [ { "id": "id名如active-explorer", "title": "鼠标悬浮的文字", "icon":...

React Native

Download and install Android Studio —-> Install the Android SDK open Android Studio ---> Project ---> More Actions --> SDK Manager --> choose SDK platform and SDK Tools open An...

Webpack

const HtmlWebpackPlugin = require(‘html-webpack-plugin’); const CopyWebpackPlugin = require(‘copy-webpack-plugin’); const MiniCssExtractPlugin = require(‘mini-css-extract-plugin’); const CssMinimiz...

Usefull Lib Js Plugin

vanilla-lazyload 图片懒加载 LazyLoad is a lightweight (2.4 kB) and flexible script that speeds up your web application by deferring the loading of your below-the-fold images, videos and iframes to whe...

Task Mircotask

JavaScript 事件循环(Event Loop) 微任务 宏任务 js 是单线程的,事件循环是 js 的执行机制,也是 js 实现异步的一种方法。 同步和异步任务分别进入不同的执行”场所”,同步的进入主线程,异步的进入Event Table并注册函数。 当指定的事情完成时,Event Table会将这个函数移入Event Queue。 主线程内的任务执行完毕为空,会去Event...

Promise

Promise var p1 = new Promise((res, rej) => { setTimeout(() => { res(1111) }, 1000) }) var p2 = new Promise((res, rej) => { setTimeout(() => { rej(2222) ...

Fibonacci

斐波那契数列 斐波那契数,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波那契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加 常用的计算斐波那契数列的方法分为两大类:递归和循环。 递归 普通递归 代码优美逻辑清...

Js Sorts

排序算法 冒泡排序 思路:外层循环从1到n-1,内循环从当前外层的元素的下一个位置开始,依次和外层的元素比较,出现逆序就交换,通过与相邻元素的比较和交换来把小的数交换到最前面。 function bubble(arr) { for(let i = 0; i < arr.length - 1; i++) { for(let j = 0; j < arr...

Remove Duplicate From Array

数组去重 1. 利用 ES6 Set 去重(ES6 中最常用) 不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法 var arr = [1, 1, 'true', 'true', true, true, 15, 15, false, false, undefined, undefined, null, null, ...

Array Flatten

数组扁平化 数组扁平化是指将一个多维数组变为一维数组 [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] 实现 1. reduce 遍历数组每一项,若值为数组则递归遍历,否则concat。 function flatten(arr) { return arr.reduce((result, item)=>...

Singleton

JavaScript 实现单例模式 demo1: click to create a new div demo1 source code: <div id="new-div-container"> <button id="createDivBtn">click to create a new div</button>...

Debounce Throttle

防抖和节流 如果窗口的 resize、scroll、输入框内容校验、表单提交等事件触发的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用 debounce(防抖)和 throttle(节流)的方式来减少触发的频率,同时又不影响实际效果。 防抖 debounce(防抖),简单来说就是防止抖动。 当持续触发事件时,debounce 会合并事件且不会去触发事件,当一定...