es6 基本语法

时间:2020-05-01
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    // es6语法
    // var 换成 let
    // let name = 'wyzda';
    // console.log(name);

    // 不能重复定义
    // let name = 'hello';

    // 定义常量
    // const URL = 'https://www.wyzda.com';
    // console.log(URL);

    // 数组的解构赋值
    // let [a,b,c] = [1,2,3];
    // console.log(a,b,c);

    // 对象的解构赋值
    // let {name,age} = {name:'wyzda',age:24};
    // console.log(name,age);

    // 基本类型的解构赋值
    // let [a,b,c] = 'abc';
    // console.log(a,b,c);

    // 模板字符串
    // let name = 'wyzda';
    // let str = `您的名字:${name}`;
    // console.log(str);

    // 对象的简写方式
    // let name = 'wyzda';
    // let age = 27;
    // let obj = {
    //     name,
    //     age
    // };
    // console.log(obj);

    // 箭头函数
    // let obj = {
    //     name:'wyzda',
    //     age:'23',
    //     play:()=>{
    //         console.log(`play`)
    //     },
    //     say:(msg) => console.log(`${msg}`)
    // };
    // obj.play();
    // obj.say('wyzda');

    // ... 运算符
    // let arr = [1, 2, 3];
    // console.log(...arr);
    // let arr2 = [1, 2, 3];
    // arr2.push(...arr);
    // console.log(arr2);
    // let arr3 = [...arr, ...arr2];
    // console.log(arr3);
    // let [first, ...arr4] = arr3;
    // console.log(first, arr4);

    // 形参默认值
    // function test(name,age=24) {
    //     console.log(name,age);
    // }
    // test('wyzda');
    // test('wyzda',100);

    // Promise
    // let f = true;
    // console.log('1');
    // let promise = new Promise((resolve,reject) => {
    //     console.log('2');
    //     if (f){
    //         console.log('3');
    //         setTimeout(()=>{
    //             console.log('4');
    //             resolve('success');
    //         },3000);
    //     } else {
    //         console.log('5');
    //         reject('fail');
    //     }
    // });
    // console.log('6');
    // promise.then((data => {
    //     console.log('7');
    //     console.log(data);
    // }),(error=>{
    //     console.log('8');
    //     console.log(error);
    // }));
    // console.log('9');

    // Symbol
    // let symbol = Symbol();
    // console.log(symbol);
    // let obj = {
    //     symbol: 'hello'
    // };
    // console.log(obj);
    // let s1 = Symbol('s');
    // let s2 = Symbol('s');
    // console.log(s1, s2, s1 === s2);

    // Iterator
    // let obj = {
    //     data: [1, 2, 'wyzda'],
    //     [Symbol.iterator]() {
    //         let i = 0;
    //         const THAT = this;
    //         return {
    //             next() {
    //                 let data = {value: undefined, done: true};
    //                 if (i < THAT.data.length) {
    //                     data = {
    //                         value: THAT.data[i++],
    //                         done: false
    //                     };
    //                 }
    //                 return data;
    //             }
    //         };
    //     }
    // };
    // let y = obj[Symbol.iterator]();
    // console.log(y.next());
    // console.log(y.next());
    // console.log(y.next());
    // console.log(y.next());

    // Generator函数
    // function* test() {
    //     yield 'a';
    //     yield 'b';
    //     yield setTimeout(()=>{
    //         console.log('wyzda');
    //     },2000);
    // }
    //
    // let t = test();
    // console.log(t);
    // console.log(t.next());
    // console.log(t.next());
    // console.log(t.next());
    // console.log(t.next());

    // async
    // 异步方法
    // function a() {
    //     return new Promise(resolve => {
    //         setTimeout(() => {
    //             console.log('a');
    //             resolve('success');
    //         }, 3000);
    //     });
    // }
    //
    // async function t1() {
    //     console.log('t1');
    //     let data = await a();
    //     console.log(data);
    //     return data;
    // }
    //
    // let p = t1();
    // console.log(p);
    // p.then(data => {
    //     console.log('then');
    //     console.log(data);
    // });

    // class
    // class Person{
    //     constructor(name) {
    //         this.name = name;
    //     }
    //     say(){
    //         console.log(`说话:${this.name}`);
    //     }
    // }
    //
    // let p = new Person('wyzda');
    // p.say();
    // console.log(p);
    //
    // class Student extends Person{
    //     constructor(name,age) {
    //         super(name);
    //         this.age = age;
    //     }
    //     say() {
    //         console.log(this.name,this.age);
    //     }
    // }
    //
    // let s = new Student('xs',23);
    // s.say();
    // console.log(s);

    // 字符串扩展
    // let str = 'hello wyzda';
    // console.log(str.includes('w'));
    // console.log(str.includes('s'));
    // console.log(str.startsWith('h'));
    // console.log(str.endsWith('h'));
    // console.log(str.repeat(3));

    // 数组扩展
    // console.log(0b1110);
    // console.log(0o7110);
    // console.log(Number.isFinite(123));
    // console.log(Number.isFinite(-0));
    // console.log(Number.isNaN(12));
    // console.log(Number.isNaN('aaaa'));
    // console.log(Number.isNaN(NaN));
    // console.log(Number.isInteger(NaN));
    // console.log(Number.isInteger(10.02));
    // console.log(Number.isInteger(10.0));
    // console.log(Number.isInteger(12));
    // console.log(Math.trunc(12.987));

    // 函数扩展
    // function t(name,...other) {
    //     console.log(name,other);
    // }
    //
    // t('aaa');
    // t('aaa',22);
    // t('aaa',22,44);
    //
    // let fn = () => console.log('fn');
    // fn();

    // 对象扩展
    // let a = {name:'wyzda'};
    // let b = {age:26};
    // let c = {sex:'女'};
    // Object.assign(a,b,c);
    // console.log(a);

    // set  不可重复
    // let s = new Set([1,2,3]);
    // console.log(s);
    // s.add(3);
    // s.add(4);
    // console.log(s.size,s);
    // let f = s.delete(2);
    // console.log(f);
    // s.clear();
    // console.log(s);

    // map
    // let m = new Map([['name','wyzda'],['age',23]]);
    // console.log(m);
    // m.set('sex','男');
    // console.log(m);
    // console.log(m.delete('age'));
    // console.log(m);
    //
    // let i = m.entries();
    // console.log(i.next());
    // console.log(i.next());
    // console.log(i.next());
    //
    // m.clear();
    // console.log(m);

    // for of
    let arr = [12, 22, 32];
    for (let item of arr) {
        console.log(item);
    }

</script>
</body>
</html>