Skip to content
在本页面

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 就行了.模块化会降低页面的复杂度,避免命名的污染,复用性高,好维护.
  • 组件化?
    • 组件化是一种拆分代码的方式,把页面中有相同结构的代码拆分出来单独作为一个组件,需要用到的地方直接引用这个组件.提高了代码的复用和开发的效率.

Released under the MIT License.