
JS小知识点
麦子的小库存
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组和数组对象去重
一、双层 for 循环function distinct(arr) { for (let i=0, len=arr.length; i<len; i++) { for (let j=i+1; j<len; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1); // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一原创 2022-03-16 17:23:01 · 478 阅读 · 0 评论 -
qiankun的简单实用
一、在主应用注册子应用import Vue from 'vue'import App from './App.vue'import router from './router'import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';import { registerMicroApps, start } from 'qiankun';Vue.config.productionTip =原创 2021-12-02 22:36:53 · 843 阅读 · 0 评论 -
微前端(single-spa和qiankun)
一、概念性东西:2018年single-spa诞生了,single-spa是一个用于前端微服务化的js前端解决方案(本身没有处理样式隔离,js执行隔离),实现了路由劫持和应用加载2019年qiankun基于single-spa,提供了更加开箱即用的API(single-spa + sandbox + import-html-entry)做到了与技术栈无关、并且接入简单总结:子应用可以独立构建,运行时动态加载,主子应用完全解耦,与技术栈无关,靠的是协议接入,子应用必须导出bootstrap、mou原创 2021-11-30 23:29:02 · 2579 阅读 · 0 评论 -
浏览器和服务器之间的通信
讲浏览器和服务器之间的通信之前,先讲几个概念一、单工、半双工、全双工的区别: 1、单工:数据只在一个方向上传输,不能实现双方通信。(例子:电视、广播) 2、半双工:允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输。(例子:对讲机) 3、全双工:允许数据在两个方向上同时传输。(例子:手机通话)二、长短连接和长短轮询的区别: 1、长短连接是说的TCP连接,浏览器使用的http协议是1.1之前的版本的话,那么使...原创 2021-10-11 18:42:33 · 1703 阅读 · 0 评论 -
鉴权方式/登录方式
一、用法:1、cookie:const Koa = require('koa');const Router = require('@koa/router');const app = new Koa();const router = new Router();app.keys = ['jupeng']; // 提供cookie用于签名的密钥// 默认情况下所有的请求都会发送cookie,默认本次会话结束会清除// domain 域名:默认不设置值为当前网址的域名// path 路径原创 2021-10-09 17:49:58 · 223 阅读 · 0 评论 -
前端存储方式
前言:前端开发的时候,在页面刷新之后,我们的所有数据都会被清空,这时候就要用到本地存储技术了,前端的存储数据的方式有四种:cookie、localstorage、sessionstorage和indexDB。一、使用方式:1、前端设置和获取cookie的方式:const setCookie = () => { document.cookie = `username=jupeng1; path=/; expires=${new Date(new Date().getTime() +原创 2021-10-09 17:47:49 · 1827 阅读 · 0 评论 -
算法学习一
1、抽屉原理:n+1 个苹果放在 n 个抽屉里,那么至少有一个抽屉中会放两个苹果。2、分治法: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题; 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题; 合并:将各个子问题的解合并为原问题的解。 例子:快速排序就用到了分治法。 1)找一个中间位,所有比他小的放一个数组,所有比他大的放一个数组,然后两个数组再次递归。中间位可以是数...原创 2020-11-19 15:03:37 · 159 阅读 · 0 评论 -
函数柯里化
通过把一个多参函数转换成一系列嵌套的函数,每个函数依次接受一个参数,这就是函数柯里化。let _fn = curry(function(a,b,c,d,e){ console.log(a + b + c + d + e)});_fn(1,2,3,4,5); //15_fn(1)(2)(3,4,5); //15_fn(1,2)(3,4)(5); //15_fn(1)(2)(3)(4)(5); //15function curry(fn, len = fn...原创 2020-05-17 01:05:11 · 185 阅读 · 0 评论 -
节流和防抖
函数防抖(debounce):在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。看一个????(栗子)://模拟一段ajax请求function ajax(content) { console.log('ajax request ' + content)}let inputa = document.getElementById('unDebounce')inputa.addEventListener('keyup', function (e) { ajax(转载 2020-05-15 22:59:33 · 187 阅读 · 0 评论 -
执行上下文
GlobalExectionContext = { // 全局执行上下文 ThisBinding: <Global Object>, // this指向 LexicalEnvironment: { // 词法环境 EnvironmentRecord: { // 环境记录 Type: "Object", // 全局环境 // 标识符绑定在这里 a: < uninitialized >, b: &l...转载 2020-05-10 18:07:02 · 232 阅读 · 0 评论 -
JS内存泄漏
一、闭包的定义当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。二、闭包的特点①函数嵌套函数②函数内部可以引用函数外部的参数和变量③参数和变量不会被垃圾回收机制回收三、造成内存泄露的方式 1、意外的全局变量引起的内存泄露 例:函数中没有使用var声明的变量 2、闭包引起的内存泄漏 例:function fn1(){ var n=1; function fn2(){//在加一个fn2...转载 2020-05-10 17:17:52 · 280 阅读 · 0 评论 -
DNS查询
主机向本地域名服务器的查询一般都是采用递归查询本地域名服务器向根域名服务器的查询的迭代查询转载 2020-05-07 21:42:16 · 248 阅读 · 0 评论 -
数据结构
一、数据结构1、逻辑结构:线性结构有: 栈,队列,链表,线性表 非线性结构有 二维数组,树等2、存储结构:存储结构有顺序存储、链式存储、索引存储以及散列存储。3、二叉树 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 https://www.cnblogs.com/jpfss/p/1...原创 2020-05-04 14:57:05 · 226 阅读 · 0 评论 -
JS-树的深度优先遍历和广度优先遍历
一、图例:深度优先遍历:[1, 11, 111, 112, 113, 12, 121, 122]广度优先遍历:[1, 11, 12, 111, 112, 113, 121, 122]二、代码:// 深度优先遍历var deepTraversal = function(obj, result){ if(!obj.children){ result.push(obj...原创 2020-04-04 23:30:50 · 730 阅读 · 0 评论 -
React自定义组件Select
一、使用图例:二、使用方法: importSelectfrom'../../components/Select/index';<Select label="选择器" options={[{key: 1, value: '选项一'},{key: 2, value: '选项二'}]} placeholder="请选择" ...原创 2020-03-31 19:37:29 · 2501 阅读 · 1 评论 -
JS-Reduce使用方法和原理解析
一、使用方法:var arr = [1, 2, 3, 4, 5]var result = arr.reduce(function(prev, curr) { return prev + curr});// result = 15二、实现原理:Array.prototype.myReduce = function(fn, initialValue) { if (...原创 2020-02-18 11:08:30 · 841 阅读 · 0 评论 -
Promise使用和基本源码实现(一)
一、使用<!DOCTYPE html><html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style> ...原创 2020-02-05 19:53:16 · 346 阅读 · 0 评论 -
git学习记录
一、建立一个库1、git clone [url] // 克隆代码2、设置贡献者 git config --global user.name "***" // 设置当前本地库username git config --global user.email "***" // 设置当前本地库useremail git config --glo...原创 2019-12-31 17:38:25 · 199 阅读 · 0 评论 -
JS-函数防抖和函数节流
一、函数防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。function debounce(fun,delay) { return function(){ let that = this; let args = arguments; clearTimeout(fun.timerId); fun.t...原创 2019-11-28 19:55:18 · 119 阅读 · 0 评论 -
CSS-上面高度自适应下面撑满剩余部分
<html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style> body { width: 500px;...原创 2019-11-28 19:36:03 · 1825 阅读 · 0 评论 -
JS-函数遇见特殊用法笔记
1、// 函数表达式可以包含名称,这在递归时很有用var f = function face(x) { if(x <= 1){ return 1; }else{ return x*fact(x-1); }}2、// 在f()调用结束之后继续调用返回值中的方法m()f().m();3、var o = { m: fu...原创 2019-10-31 20:13:35 · 124 阅读 · 0 评论 -
写好 JS 条件语句的 5 条守则
总结:1.多重判断时使用 Array.includesfunction test(fruit) {const redFruits = ['apple', 'strawberry', 'cherry', 'cranberries'];if (redFruits.includes(fruit)) { console.log('red');}}2.更少的嵌套,尽早 return3....转载 2019-01-15 10:04:06 · 128 阅读 · 0 评论 -
JS数据类型及其检测
原文链接:https://github.com/ljianshu/Blog/issues/4转载 2019-01-23 17:15:35 · 134 阅读 · 0 评论 -
文章收藏
一、cookie的路径和域https://www.cnblogs.com/xiangkejin/p/8952801.html转载 2019-02-10 16:22:34 · 156 阅读 · 0 评论 -
web存储
一、localStorage和sessionStorage的区别:1、他们都是用来存储客户端临时信息的对象。2、他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器实现)。3、(1)localStorage生命周期是永久的,除非用户在浏览器提供的UI上清除localStorage信息,否则这些信息永远存在。 &nbs...转载 2019-03-08 14:34:19 · 231 阅读 · 0 评论 -
前端开发代码规范
前端开发代码规范本文介绍前端开发js规范和react规范。html规范和css,less规范以后再说。JavaScript 编码规约1 编码风格1.1 缩进1.1.1【强制】使用 2 个空格缩进。eslint: indent统一使用 2 个空格缩进,不要使用 4 个空格或 tab 缩进:// badfunction foo() {∙∙∙∙let name;}//...转载 2019-06-14 10:43:22 · 1931 阅读 · 1 评论 -
Javascript面试题
Javascript【JS变量】【变量基础】js里面,变量声明方式一共几种?基础考点:必须能答出let/const这两种(var可选),答不出扣-10分,只能答出这种不加分一阶考点:能答到隐式声明,或者描述到class、import等其他种,适当+1二阶考点:完整答出:在ES5中,变量声明只有var和function以及隐式声明三种,在ES6中则增加了let,cons...转载 2019-06-14 11:46:16 · 224 阅读 · 0 评论 -
nginx初级使用
1.下载nginx包(百度网盘):链接:https://pan.baidu.com/s/19o9LvQxlmaljFJuNrinivg提取码:cgh92.下载链接内容后解压到指定的目录:3.点击打开nginx-1.14.1文件夹-&gt;再打开html文件夹:4.在html里面删除里面的所有文件,然后把自己的html文件复制到此文件夹中:5.然后打开下面的目录中的文件:6.打开...原创 2019-01-18 10:17:43 · 984 阅读 · 0 评论