创新互联百度小程序教程:esnext

  • esnext
    • let & const
    • 箭头函数
    • 更简洁的对象字面量(enhanced object literal)
    • 模板字符串(template string)
    • 解构赋值(Destructuring)
    • Default + Rest + Spread

    esnext

    SJS 支持部分 ES6 语法。

    let & const

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

     
     
     
    1. // demo.sjs
    2. function foo(){
    3. let str = 'hello sjs';
    4. if (true) {
    5. let count = 2;
    6. }
    7. // hello sjs
    8. console.log(str);
    9. // 引用错误:count 未定义
    10. console.log(count);
    11. }

    箭头函数

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

     
     
     
    1. // demo.sjs
    2. const arr = [1, 2, 3];
    3. const double = x => x * 2;
    4. // output: [2, 4, 6]
    5. console.log(arr.map(double));
    6. var obj = {
    7. birth: 1970,
    8. getAge() {
    9. const b = this.birth;
    10. const fn = () => new Date().getFullYear() - this.birth;
    11. return fn();
    12. }
    13. };
    14. obj.getAge();

    更简洁的对象字面量(enhanced object literal)

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

     
     
     
    1. var num = 1;
    2. var obj = {
    3. // 对象属性
    4. num,
    5. // 对象方法
    6. printNum() {
    7. console.log(num);
    8. }
    9. };
    10. // 1
    11. obj.printNum();

    :不支持super关键字,不能在对象方法中使用super

    模板字符串(template string)

     
     
     
    1. const NAME = 'sjs';
    2. // hello sjs
    3. const msg = `hello ${NAME}`;

    解构赋值(Destructuring)

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

     
     
     
    1. // array 解构赋值
    2. var [a, ,b] = [1, 2, 3];
    3. // true
    4. a === 1;
    5. // true
    6. b === 3;
    7. // 对象解构赋值
    8. let { foo , bar } = { foo: 'aaa', bar: 'bbb' };
    9. // foo = 'aaa'
    10. // bar = 'bbb'
    11. // 函数参数解构赋值
    12. // 1.参数是一组有次序的值
    13. function f1([x, y, z]) {
    14. // 1
    15. console.log(x);
    16. // 2
    17. console.log(y);
    18. // 3
    19. console.log(z);
    20. }
    21. f1([1, 2, 3]);
    22. // 2.参数是一组无次序的值
    23. function f2({x, y, z}) {
    24. // 1
    25. console.log(x);
    26. // 2
    27. console.log(y);
    28. // 3
    29. console.log(z);
    30. }
    31. f2({z: 3, y: 2, x: 1});
    32. // 解构赋值默认值
    33. var [a = 1] = [];
    34. // true
    35. a === 1;
    36. // 函数参数:解构赋值 + 默认值
    37. function r({a, b, c = 3, d = 4}) {
    38. return a + b + c + d;
    39. }
    40. // true
    41. r({a: 1, b: 2}) === 10;

    Default + Rest + Spread

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

     
     
     
    1. // 1. Default
    2. function f1(x, y = 2) {
    3. // 如果不给y传值,或者传值为undefied,则y的值为12
    4. return x + y;
    5. }
    6. // true
    7. f1(1) === 3;
    8. // 2. Rest
    9. function f2(x, ...arr) {
    10. return x * arr.length;
    11. }
    12. // true
    13. f2(3, 'hello', 'sjs') === 6;
    14. // 3. Spread
    15. function f3(x, y, z) {
    16. return x + y + z;
    17. }
    18. // 数组解构
    19. f3(...[1,2,3]) == 6;
    20. // 4. Rest + Spread
    21. // 数组解构赋值, b = [2, 3]
    22. const [a, ...b] = [1, 2, 3];
    23. // 对象解构赋值, other = {d: 2, e: 3}
    24. const {c, ...other} = {c: 1, d: 2, e: 3};
    25. // 对象解构 f = {d: 2, e: 3}
    26. const f = {...other};

    当前标题:创新互联百度小程序教程:esnext
    文章来源:http://www.shufengxianlan.com/qtweb/news29/323279.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联