es6小计

骑猪看日落 2022-05-25 01:45 329阅读 0赞

es6常用特性

  • const, let定义

相比较于var,const,let的作用域为{}, var的作用域为function

  • 函数入参可以设置默认值

    function action(num = 200) {

    1. console.log(num)

    }
    action() //200
    action(300) //300

  • 引入匿名函数 =>

  • 不需要function关键字来创建函数
  • 省略return关键字
  • 继承当前上下文的 this 关键字

    //例如:
    [1,2,3].map( x => x + 1 )

    //等同于:
    [1,2,3].map((function(x){

    1. return x + 1

    }).bind(this))

  • 解构数据

    //对象
    const people = { name: ‘lux’, age: 20 }
    const { name, age } = people
    console.log(${name} --- ${age}) //数组
    const color = [‘red’, ‘blue’]
    const [first, second] = color
    console.log(first) //‘red’
    console.log(second) //‘blue’

  • generator

函数名后添加*,表示函数为generator, 函数内部使用yield返回

  1. // 生成器
  2. function *createIterator() {
  3. yield 1;
  4. yield 2;
  5. yield 3;
  6. } // 生成器能像正规函数那样被调用,但会返回一个迭代器
  7. let iterator = createIterator();
  8. console.log(iterator.next().value); // 1
  9. console.log(iterator.next().value); // 2
  10. console.log(iterator.next().value); // 3
  11. function run(taskDef) {
  12. //taskDef即一个生成器函数
  13. // 创建迭代器,让它在别处可用
  14. let task = taskDef(); // 启动任务
  15. let result = task.next(); // 递归使用函数来保持对 next() 的调用
  16. function step() { // 如果还有更多要做的
  17. if (!result.done) {
  18. result = task.next();
  19. step();
  20. }
  21. } // 开始处理过程
  22. step();
  23. }
  • Promise

同步编程程序结构,实现异步编程

  1. fetch('/api/todos')
  2. .then(res => res.json())
  3. .then(data => ({ data }))
  4. .catch(err => ({ err }));
  5. setTimeout(function() {
  6. console.log(1)
  7. }, 0);
  8. new Promise(function executor(resolve) {
  9. console.log(2);
  10. for( var i=0 ; i<10000 ; i++ ) {
  11. i == 9999 && resolve();
  12. }
  13. console.log(3);
  14. }).then(function() {
  15. console.log(4);
  16. });
  17. console.log(5);
  • 模板字符串

    //es5
    var name = ‘lux’
    console.log(‘hello’ + name)
    //es6
    const name = ‘lux’
    console.log(hello ${name}) //hello lux

使用反引号’`’实现换行

  1. // es5
  2. var msg = "Hi \ man! "
  3. // es6
  4. const template = `<div>
  5. <span>hello world</span> </div>`

更多的字符串操作

  1. // 1.includes:判断是否包含然后直接返回布尔值
  2. let str = 'hahay'
  3. console.log(str.includes('y')) // true // 2.repeat: 获取字符串重复n次
  4. let s = 'he'
  5. console.log(s.repeat(3)) // 'hehehe' //如果你带入小数, Math.floor(num) 来处理
  • 拓展的对象功能

出现键值对重名的

  1. function people(name, age) {
  2. return {
  3. name: name,
  4. age: age
  5. };
  6. }

简写

  1. function people(name, age) {
  2. return {
  3. name,
  4. age
  5. };
  6. }

添加方法

  1. const people = {
  2. name: 'lux',
  3. getName: function() {
  4. console.log(this.name)
  5. }
  6. }

简写

  1. const people = {
  2. name: 'lux',
  3. getName () {
  4. console.log(this.name)
  5. }
  6. }

ES6 对象提供了Object.assign()这个方法来实现浅复制。Object.assign()可以把任意多个源对象自身可枚举的属性拷贝给目标对象,然后返回目标对象。第一参数即为目标对象。在实际项目中,我们为了不改变源对象。一般会把目标对象传为{}

  1. const obj = Object.assign({}, objA, objB)
  • 展开运算符

组装对象或者数组

  1. //数组
  2. const color = ['red', 'yellow']
  3. const colorful = [...color, 'green', 'pink']
  4. console.log(colorful) //[red, yellow, green, pink]
  5. //对象
  6. const alp = { fist: 'a', second: 'b'}
  7. const alphabets = { ...alp, third: 'c' }
  8. console.log(alphabets) //{ "fist": "a", "second": "b", "third": "c" }

可以用于组合成新的 Object,如果有重复的属性名,右边覆盖左边

  1. const first = { a: 1, b: 2, c: 6, }
  2. const second = { c: 3, d: 4 }
  3. const total = { ...first, ...second }
  4. console.log(total) // { a: 1, b: 2, c: 3, d: 4 }
  • es6中的import

在router/index.js中

  1. ...
  2. export default Routes;

在导入时,如果有{}包裹,表示源文件同名;如果没有添加{},则等价于import {name as newName} from ...

  1. import MyRoutes from './routes/index';
  2. // 等价于
  3. import {Routes as MyRoutes} from './routes/index';

发表评论

表情:
评论列表 (有 0 条评论,329人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6新增知识总结

    ES6 let/const ES6中新增的声明变量的方式: let关键字用来声明变量,类似于var,但是使用let声明的变量有以下几点特性: 1.不存在变量提升

    相关 input标签

    在使用form提交表单的时候,后台得不到一个表单项的数据,很是纳闷,最后经过对比发现, 在提交表单的时候,<input id=" aa" name="bb" type="te

    相关 数据迁移

    方法一:手工数据迁移,使用到了sqlloader 1、使用日终系统按指定的SQL将数据卸数到指定位置,生成所需的.ok文件和.dat文件。其中.ok文件的内容为表名、行数、

    相关 es6

    es6常用特性 const, let定义 相比较于var,const,let的作用域为\{\}, var的作用域为function 函数入参可以设置默认值