JS 原生入门到放弃
发布网友
发布时间:2024-10-01 09:54
我来回答
共1个回答
热心网友
时间:2024-10-07 08:29
1.1函数的三种定义方法
1.1.1函数声明
1.1.2函数表达式(函数字面量)
1.1.3构造函数
1.1.4三种方法的对比
1.函数声明有预解析,且优先级高于变量;
2.使用函数构造函数定义函数会导致解析两次代码,影响性能。
1.2ES5中函数的四种调用方式
包括函数名()和匿名函数调用,此指向窗口;对象。方法名(),此指向对象;构造器调用new构造函数名(),此指向实例化的对象;初始化调用,通过call和apply实现,this指向call和apply的第一个参数。
1.3 ES6中函数的调用
箭头函数不支持构造函数使用,调用与定义有关,与构造函数无关。
1.4.call,apply和bind
1.IE5之前不支持call和apply,bind是ES5特性;可调用函数,更改this值,实现继承和方法借用。
1.4.1调用和应用定义
调用方法,用对象替换this,对象.call(新this对象,实参);对象.apply(新this对象,实参数组)。
1.4.3绑定
bind修改func内部的this,返回函数,不兼容IE8。
1.4.4通话,申请和绑定原生实现
调用实现,应用实现,call和apply封装对比,核心代码一致,call需要对实参解构;bind实现。
1.5、函数的节流和防抖
1.5.1节流
1.5.2防抖
1.6、原型链
对象继承属性的链条;构造函数与原型对象的关系;
1.6.3、创建实例的方法
字面量,对象构造函数创建,工厂模式,构造函数创建;
1.6.5对象的原型链
1.7继承的方式
JS动态语言的两大特性;
1.7.1原型链继承
将父类实例作为子类原型;
1.7.2构造继承
利用call改变子类中的this;
1.7.3实例继承
为父类实例添加新特性,作为子类实例返回;
1.7.4拷贝继承
复制父类属性和方法到子类;
1.7.5组合继承
先构造父类实例,再通过原型链实现函数替换;
1.7.6寄生组合继承
通过调用父类构造函数,继承父类属性,并保留传参;
1.7.7 ES6的扩展继承
先创建父类实例,再调用子类构造函数修改this;
1.8、高阶函数
函数参数或返回函数;常见的高阶函数;柯里化,反柯里化,偏函数;
2.1、对象的声明方法
字面量,构造函数,内置方法;
2.2、对象的属性
数据属性,访问器属性,内部属性;
2.2.2属性定义
数据属性和访问器属性;
2.3、符号
定义,定义方法,用法;
2.4、遍历
一级对象遍历,多级对象遍历;
2.5、深度拷贝
Object.assign,JSON.stringify,递归拷贝;
2.6、数据拦截
Object.defineProterty,代理,defineProterty和proxy对比;
3.数组
应用引用API,n维数组,数组去重,最大值,求和,排序,对象和数组转化;
3.1、n维数组
Array.flat实现;
3.2、去重
set,扩展运算符实现;
3.3、排序
sort方法,冒泡排序,选择排序;
3.4、平均值
Math.max,reduce方法;
3.5、求和
递归求和;
3.6、合并
实现方法;
3.7、判断是否包含值
includes,find,findIndex方法;
3.9、设置值
fill方法;
3.10、判断是否满足
every,some方法;
3.12、过滤数组
filter方法;
4.数据结构与算法
栈,队列,链表,字典,二叉树;
5.算法
冒泡排序,斐波那契数列,动态规划,贪心算法;
6.设计模式
简单工厂模式,工厂方法模式,原型模式,单例模式,外观模式;
适配器模式,装饰者模式,嵌入模式
热心网友
时间:2024-10-07 08:30
1.1函数的三种定义方法
1.1.1函数声明
1.1.2函数表达式(函数字面量)
1.1.3构造函数
1.1.4三种方法的对比
1.函数声明有预解析,且优先级高于变量;
2.使用函数构造函数定义函数会导致解析两次代码,影响性能。
1.2ES5中函数的四种调用方式
包括函数名()和匿名函数调用,此指向窗口;对象。方法名(),此指向对象;构造器调用new构造函数名(),此指向实例化的对象;初始化调用,通过call和apply实现,this指向call和apply的第一个参数。
1.3 ES6中函数的调用
箭头函数不支持构造函数使用,调用与定义有关,与构造函数无关。
1.4.call,apply和bind
1.IE5之前不支持call和apply,bind是ES5特性;可调用函数,更改this值,实现继承和方法借用。
1.4.1调用和应用定义
调用方法,用对象替换this,对象.call(新this对象,实参);对象.apply(新this对象,实参数组)。
1.4.3绑定
bind修改func内部的this,返回函数,不兼容IE8。
1.4.4通话,申请和绑定原生实现
调用实现,应用实现,call和apply封装对比,核心代码一致,call需要对实参解构;bind实现。
1.5、函数的节流和防抖
1.5.1节流
1.5.2防抖
1.6、原型链
对象继承属性的链条;构造函数与原型对象的关系;
1.6.3、创建实例的方法
字面量,对象构造函数创建,工厂模式,构造函数创建;
1.6.5对象的原型链
1.7继承的方式
JS动态语言的两大特性;
1.7.1原型链继承
将父类实例作为子类原型;
1.7.2构造继承
利用call改变子类中的this;
1.7.3实例继承
为父类实例添加新特性,作为子类实例返回;
1.7.4拷贝继承
复制父类属性和方法到子类;
1.7.5组合继承
先构造父类实例,再通过原型链实现函数替换;
1.7.6寄生组合继承
通过调用父类构造函数,继承父类属性,并保留传参;
1.7.7 ES6的扩展继承
先创建父类实例,再调用子类构造函数修改this;
1.8、高阶函数
函数参数或返回函数;常见的高阶函数;柯里化,反柯里化,偏函数;
2.1、对象的声明方法
字面量,构造函数,内置方法;
2.2、对象的属性
数据属性,访问器属性,内部属性;
2.2.2属性定义
数据属性和访问器属性;
2.3、符号
定义,定义方法,用法;
2.4、遍历
一级对象遍历,多级对象遍历;
2.5、深度拷贝
Object.assign,JSON.stringify,递归拷贝;
2.6、数据拦截
Object.defineProterty,代理,defineProterty和proxy对比;
3.数组
应用引用API,n维数组,数组去重,最大值,求和,排序,对象和数组转化;
3.1、n维数组
Array.flat实现;
3.2、去重
set,扩展运算符实现;
3.3、排序
sort方法,冒泡排序,选择排序;
3.4、平均值
Math.max,reduce方法;
3.5、求和
递归求和;
3.6、合并
实现方法;
3.7、判断是否包含值
includes,find,findIndex方法;
3.9、设置值
fill方法;
3.10、判断是否满足
every,some方法;
3.12、过滤数组
filter方法;
4.数据结构与算法
栈,队列,链表,字典,二叉树;
5.算法
冒泡排序,斐波那契数列,动态规划,贪心算法;
6.设计模式
简单工厂模式,工厂方法模式,原型模式,单例模式,外观模式;
适配器模式,装饰者模式,嵌入模式