js 事件队列执行机制
- 先执行同步代码
- 再执行异步代码
- 异步代码会加载到事件队列里面去,事件队列执行顺序是
- ==微任务>宏任务==
- ==宏任务中的所有
非宏任务执行完毕后
才会执行下一个宏任务==
- 异步代码会加载到事件队列里面去,事件队列执行顺序是
数组常用的 api
- unshift 前面添加
- shift 前面删除
- push 后面添加
- pop 后面删除
- splice 从第 index 项开始删除 n 个[可选:替换删除位置]
- slice 返回选定的元素。slice(start,end).如果 end 为负数则从结尾往前算
- join 以('')为间隔把数组转为字符串
- sort 排序,参数是个函数 sort(function sortNumber(a,b) {return a-b};
字符串常见 api
- split 以('')为间隔把字符串转为数组
- slice 返回选定的字符。slice(start,end).如果 end 为负数则从结尾往前算
- indexOf 返回某个指定的字符串值在字符串中首次出现的位置(区分大小写),如没有,则返回-1
- substr 从字符串中提取一些字符,substr(start, length)
- replace 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
遍历数组的方法?
- forEach 遍历,没有返回值!!!
- map 遍历,map 方法可以分别处理数组中的成员,返回一个新数组,也可以用于遍历数组
- find 遍历,返回第一个符合条件的成员,如果没有符合条件的成员则返回 undefined
- filter 遍历,只返回结果为 true 的成员,组成新数组
- every 遍历,所有成员都符合条件则返回 true, 如果其中一个成员不符合则终止遍历并返回 false
- some 遍历,如果有一个元素满足条件,则终止遍历并返回 true ,否则返回 false
面对对象编程
- 什么是面向对象编程?
- 面对对象的本质是面对过程的封装.
- 面向对象的三个特征
- 封装
- 把一个具体功能封装在一个对象中,对外只暴露指定的接口,使用的时候只考虑接口怎么使用,不考虑内部怎么实现
- 继承
- 继承就是让一个对象拥有另一个对象的属性和方法.
- 多态
- 一个对象在不同情况下的多种状态.
- 封装
闭包
- 什么是闭包?
- 闭包就是在'函数外面可以访问到函数内部变量的
函数
'.- js 有全局和局部作用域之分.在局部作用域可以访问全局作用域的变量,而全局作用域却访问不到局部作用域的变量,这个时候就需要在用到闭包,在函数的内部 return 一个函数,return 的这个函数是可以访问到的.
- 闭包就是在'函数外面可以访问到函数内部变量的
模块化和组件化
- 模块化?
- 把不同的功能拆分出来,形成一个单独的文件.里面的数据是私有的,对外只暴露接口,用到这个功能时调用对应的 api 就行了.模块化会降低页面的复杂度,避免命名的污染,复用性高,好维护.
- 组件化?
- 组件化是一种拆分代码的方式,把页面中有相同结构的代码拆分出来单独作为一个组件,需要用到的地方直接引用这个组件.提高了代码的复用和开发的效率.