百度智能小程序 esnext

2020-09-05 15:16 更新

SJS 支持部分 ES6 語法。

let & const

代碼示例 

在開發(fā)者工具中打開
// demo.sjs
function foo(){
    let str = 'hello sjs';
    if (true) {
        let count = 2;
    }
    console.log(str); // hello sjs
    console.log(count); // 引用錯(cuò)誤:count 未定義
}

箭頭函數(shù)

代碼示例 

在開發(fā)者工具中打開
// demo.sjs
const arr = [1, 2, 3];
const double = x => x * 2;
console.log(arr.map(double)); // output: [2, 4, 6]

var obj = {
    birth: 1970,
    getAge() {
        const b = this.birth;
        const fn = () => new Date().getFullYear() - this.birth;
        return fn();
    }
};
obj.getAge();

更簡潔的對(duì)象字面量(enhanced object literal)

代碼示例 

在開發(fā)者工具中打開
var num = 1;
var obj = {
    num, // 對(duì)象屬性
    printNum() { // 對(duì)象方法
    console.log(num);
    }
};
obj.printNum(); // 1

注: 不支持super關(guān)鍵字,不能在對(duì)象方法中使用super

模板字符串(template string)

const NAME = 'sjs';
const msg = `hello ${NAME}`; // hello sjs

解構(gòu)賦值(Destructuring)

代碼示例 

在開發(fā)者工具中打開
// array 解構(gòu)賦值
var [a, ,b] = [1, 2, 3];
a === 1; // true
b === 3; // true

// 對(duì)象解構(gòu)賦值
let { foo , bar } = { foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'

// 函數(shù)參數(shù)解構(gòu)賦值
// 1.參數(shù)是一組有次序的值
function f1([x, y, z]) {
    console.log(x); // 1
    console.log(y); // 2
    console.log(z); // 3
}
f1([1, 2, 3]);

// 2.參數(shù)是一組無次序的值
function f2({x, y, z}) {
    console.log(x); // 1
    console.log(y); // 2
    console.log(z); // 3
}
f2({z: 3, y: 2, x: 1});

// 解構(gòu)賦值默認(rèn)值
var [a = 1] = [];
a === 1; // true

// 函數(shù)參數(shù):解構(gòu)賦值 + 默認(rèn)值
function r({a, b, c = 3, d = 4}) {
    return a + b + c + d;
}
r({a: 1, b: 2}) === 10; // true

Default + Rest + Spread

代碼示例 

在開發(fā)者工具中打開
// 1. Default
function f1(x, y = 2) {
    // 如果不給y傳值,或者傳值為undefied,則y的值為12
    return x + y;
}
f1(1) === 3; // true

// 2. Rest
function f2(x, ...arr) {
    return x * arr.length;
}
f2(3, 'hello', 'sjs') === 6; // true

// 3. Spread
function f3(x, y, z) {
    return x + y + z;
}
f3(...[1,2,3]) == 6; // 數(shù)組解構(gòu)

// 4. Rest + Spread
const [a, ...b] = [1, 2, 3]; // 數(shù)組解構(gòu)賦值, b = [2, 3]
const {c, ...other} = {c: 1, d: 2, e: 3}; // 對(duì)象解構(gòu)賦值, other = {d: 2, e: 3}
const f = {...other}; // 對(duì)象解構(gòu) f = {d: 2, e: 3}


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)