09 2019 档案
摘要:1.NodeJS是什么? 官网给出的解释是:基于Chrome V8引擎构建的javascript运行环境。 计算机只能识别机器代码(machine code或者native code)。C/C++作为低级语言,可以直接被机器识别。 但是javascript作为一种高级语言,是不能直接被识别的,需要一
阅读全文
摘要:一. AJAX是什么? AJAX是js脚本向服务器发起http通信的统称。 总的来说,ajax就是js通过XMLHttpRequest创建实例,发起请求,接受请求,更新页数据的过程。 二.XMLHttpRequest 1.什么是XMLHttpRequest? XMLHttpRequest是一个位于W
阅读全文
摘要:三个是处理二进制数据的接口。都是类数组。 1.ArrayBuffer是什么? ArrayBuffer是一个二进制对象(文件,图片等)。它指向固定长度的,连续的内存区域。 上面分配了一个长度为16个字节的内存区域,代表16byte的二进制数据。并且默认每bit内容都是0。 1.特点 1)和数组不同,它
阅读全文
摘要:1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
阅读全文
摘要:1.100-199信息响应 100 Continue: 服务器通知浏览器之前一切正常,请客户端继续请求,如果请求结束,可忽略; 101 Switching Protocal: 针对请求头的Upgrade返回的信息。表明服务器正在切换到指定的协议。 Upgrade是HTTP1.1提出的升级机制,可以升
阅读全文
摘要:window: 顾名思义,窗口,浏览器窗口。是Window构造函数的一个实例对象。 它包含浏览器的一些属性和方法,如screen,location,history,setInterval等。 所有JS变量中的全局变量和函数成为window对象的属性和方法。 BOM: BrowserObjectMod
阅读全文
摘要:1.原生JS 事件触发调用有三种方式: 1. on[event]事件属性,手动触发 ❗️on[event]事件是Window对象上的方法。 2. on[event]事件属性,通过htmlElement.click()模拟触发 3. addEventListener监听事件,手动触发 this指向 2
阅读全文
摘要:1. 使用生产版本和Fragment 1. 生产版本 确保发布的代码是生产模式下(压缩)打包的代码。 一般运行npm run build命令。 直接从webpack看配置文件,需要设置mode = 'production'。 调用teaser-webpack-plugin React Devtool
阅读全文
摘要:1.按条件封装新组件 在一个新的组件内根据不同的条件返回不同内容的组件 2.使用元素变量 将元素存入一个变量,作为变量表达式再渲染 3.与运算符&& 当条件满足再渲染,true && expression 总是会返回 expression,而 false && expression 总是会返回 fa
阅读全文
摘要:setState最常见的问题是,是异步的还是同步的? setState在React.Component中的函数,是同步函数。但是我们调用的时候,不同的传参和不同的调用位置都会导致不同的结果。 从页面看有时候是同步的,有时候是异步的。 PS: 如果在componentDidMount触发,和用按钮事件
阅读全文
摘要:1.React.Children相关 1. React.Children.map(props.children, mapFunc) 1)该方法用于在props.children不透明的情况下,安全的遍历组件children。 2)该方法可以平铺嵌套数组的返回值。 2. React.Children.
阅读全文
摘要:1.React组件分类 组件接受任意参数(props),返回React元素。 组件分为两种: 函数式组件和类组件。 1.函数式组件 1)函数式组件是一个接收props参数的纯函数。纯函数要求传入的参数不能被修改,并且函数的返回值只受props值影响,只要props相同,返回值就相同。 2)❗️必须返
阅读全文
摘要:1.Set数据结构 Set本质上是一个没有重复数据,但是具有irerator接口可以遍历的一种集合。 Set本身也是一种数据结构的构造函数。 1.Set的初始化 上面生成一个Set的实例,obj是集合对象,可以通过for...of遍历。 参数可以是数组,也可以是类数组(具有iterator接口的数据
阅读全文
摘要:详情参考 1.对象的表示方法 js原生提供Object构造函数。js中所有的对象都是Object的实例。 定义一个对象最简单的就是var obj = {}; ES6属性和方法允许简写。对象的super属性只能用在简写的方法中,其他的地方都会报错。 属性可以使用存取器表示。存取器的使用场合一般是: 属
阅读全文
摘要:1.简介(详情参考) class是构造函数的语法糖。 class的constructor方法内的实现,就是原来构造函数的实现。 class内的所有方法都是在prototype上的,就是原来构造函数的prototype上的实例共享方法。 ⚠️对于访问内部函数有差别:class内部定义的函数不可遍历,构
阅读全文
摘要:1.ES6 Module javascript在ES2015(ES6)中出现了语言层面的模块(module)。 ES6的模块既可以用于浏览器端,也可以用于服务器端(nodeJS)。 ES6模块是静态化的模块加载,可以实现静态优化,在编译时就可以分析确认模块的依赖和输入输出变量。 webpack中Tr
阅读全文
摘要:1.数组的解构赋值 数组的解构赋值其实是=左右进行“模式匹配”。 ❗️❗️❗️=右侧是具体的数值,不是变量!,=左侧的是变量!如果右侧是变量形式,需要先计算出具体的数值!! =有侧不能是非数组,非数组会自动转为包装对象。{}不行,因为对象不含iterator接口。但是Set可以,Set有iterat
阅读全文
摘要:1.过时的生命周期(v16.3之前) 1.当前组件初次渲染: 绿色表示执行顺序。 constructor(): 如果不需要初始化,可以直接省略,会自动补全该函数。 可以在这个方法中初始化this.state。也可以直接直接在类的顶部初始化实例属性:state = {} 并且一定要调用super(pr
阅读全文
摘要:1.二分查找(时间复杂度O(lgn)) 二分查找,需要将业务模拟一个有序数组。然后查找某个值在该数组中的位置。 二分查找的关键是: 1)查找的值一定在某次的范围中间。即使值是最后一个,也要按照二分法的规则去查找。 2)有左右边界的查找范围作为一个循环不变式 2. 二分排序 3. 插入排序(原址排序)
阅读全文
摘要:1.什么是算法? 算法是一种解决某类问题、具体的、明确无歧义的计算过程。 2.数量级 十进制的指数。 例如: 1500 = 1.5*(10**3)数量级是3,也可以是 “千”,kilo 150万 = 1.5*(10**6) 数量级是6, 也可以是“百万”, ‘million’ 150万比1500大3
阅读全文
摘要:详细请看阮一峰网站 1.MVC Model(数据) - View(视图) - Controller(业务逻辑) 通信方式:单向 交互方式两种,如下 应用:(BackBone)不完全和设计模式一致 2.MVP Model(数据) - View(视图) - Presenter(业务逻辑) 通信方式: 双
阅读全文
摘要:1.外观模式 外观模式一般用于对复杂底层代码的封装,暴漏一个高级的统一接口,解决一些类似浏览器兼容性的问题。 css内联样式值的获取也存在IE9-的兼容性问题 2. 单例模式 单例模式的应用有两种。 一种是定义命名空间,将某一类或者某一模块的方法放到一个对象中,避免声明的方法变量名称重复,也避免全局
阅读全文
摘要:1.虚拟DOM(virtual DOM) 我们在render()方法中书写的JSX代码,既有js代码又有html代码,但是实际上浏览器不能识别JSX。 需要通过babel-loader将其转化为js代码。实际上就是转为React中的createElement()方法调用。 该方法返回一个对象,这个对
阅读全文
摘要:节流和防抖都是为了防止函数调用太快或者太多次。 可视化比较防抖和节流。 1.防抖(debounce) 防抖: 一段时间不活动之后发布更改。 原理: 设置一个定时器和最小间隔时间,如果用户触发在时间间隔内,就清空定时器,重新计时; 用户停止触发,且在最小时间间隔内没有再次触发,则发布更改。 分类: 防
阅读全文
摘要:在函数式编程中,函数柯里化是指将接受多个参数的函数转为接受不定个数参数的高阶函数。 从功能上说,它实现了函数功能的细化。 1. 背景基础知识 1)函数的length属性--返回定义时的函数参数个数 es6中,函数参数可以设置默认值,length属性指的是未设置默认值的参数个数,设置了默认值的参数后面
阅读全文
摘要:Function.prototype.call(),Function.prototype.apply(),Function.prototype.bind() 是三种改变函数内部this指向(即函数执行时所在作用域)的方法。 1.Function.prototype.call(thisValue, p
阅读全文