这是我参加「第四届青训营」笔记创作活动的第4天
今天是学习JavaScript的内容。
构造函数
- 实例成员 实例化对象访问
- 静态成员 在构造函数上添加的成员
- 只能构造函数访问
- 构造函数根据原型分配函数
- 共享方法
构造函数.prototype.function- __proto__对象原型和原型对象prototype等价
构造函数.prototype指向原型对象- 原型对象的this指向实例对象
构造函数.prototype.constructor一个引用值,指向 Object 构造函数- 原型对象可以扩展内置对象的方法
- 例如
Array.prototype.function
- 例如
- JavaScript成员查找机制
- 依照原型链查找
对象方法
Object.definePropertyObject.key
数组方法
foreach()array.forEach(function(currentValue,index,arr))
map()map()方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
filter()筛选数组array.filter(function(currentValue,index,arr))与foreach区别直接返回一个新数组
some()查找 返回boolarray.some(function(currentValue,index,arr))
every()返回boolevery()方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。
Array.from()或者[...数组]将伪数组转换成真正的数组Array.of()将一组值转换成数组find() findIndex().key() .values() .entries()返回遍历器include()
声明变量
- let 直接抛弃var
- 没有变量提升
- 无法重复声明
- 块作用域
- const
- 常量 其他同let
模板字符串
let name='1';
let htmlStr = <p>${name}</p>;
div.innerHTML = htmlStr;
函数
函数可以给形参默认值,默认值可以是函数
剩余参数
- ...args args[]数组 真实数组
扩展运算符
把一个数组分割,并将各个项作为分离的参数
const arr = [1,2,3,4];
Math.max(...arr);
箭头函数
let add = (a,b) => {return a+b;}
let add = val => val*2;
let add = (a,b) => a+b;
let fn = () => 'hello world'+1;
- 箭头函数没有this指向,箭头函数内部this只能通过查找作用域链
- 箭头函数不能使用new来实例化对象
解构赋值
const obj={
a:1,
b:2
}
let {a,b} = obj;
可使用剩余运算符
Symbol类型
表示独一无二的值,用来定义对象的私有变量
Set和Map
let set = new Set()
let map = new Map()
具体方法查MDN
iterator
Symbol.iterator
generator
通过yield,将函数挂起 返回迭代器
Promise 承诺
- 保存着未来结束的(异步操作)结果
- 异步操作三个状态
- 进行 Pending
- 成功 Resolved
- 失败 Rejected
模块
- export
- 对外接口
- import
- 输入其他模块提供的功能