JS 修改原数组
call、apply、bind
call 的参数是(this,参数1,参数2,…),立即执行函数
apply 的参数是(this,[参数1,参数2,…]),立即执行函数
bind 的参数是(this,参数1,参数2,…),返回一个函数
函数构造器
ES6
- ES5:2009年发布,是早期广泛使用的JavaScript标准(如
var
、函数作用域、回调函数)。
- ES6:2015年发布,带来了现代语言特性(如
let/const
、箭头函数、类、模块化等),是JavaScript现代化的里程碑。
-
块级作用域变量:let
和 const
替代 var
,解决变量提升和重复声明问题。
-
箭头函数(Arrow Functions):简化函数语法,自动绑定外层 this
。
-
模板字符串(Template Literals):支持多行字符串和变量插值。
-
解构赋值(Destructuring):快速提取对象或数组的值。
-
默认参数(Default Parameters):函数参数默认值。
-
类(Class):语法糖,简化面向对象编程。
-
模块化(Modules):import/export
替代全局变量污染。
-
Promise 和异步编程:解决回调地狱,支持链式调用(后升级为 async/await
)。
-
展开与剩余运算符(Spread/Rest):简化数组/对象操作和参数传递。
fetch 添加定时功能
可迭代对象
https://zh.javascript.info/iterable#symboliterator
正常情况下,下面代码在运行时会报错,提示 obj 不是一个迭代器。
如果要让这部分代码正常运行只需要将 obj 变成可迭代对象。只需要 obj 这个对象上存在 [Symbol.iterator]
属性,这个属性是一个函数,这个函数返回一个迭代器。
消除异步的传染性