ES6语法规范(一)

var 允许在同一作用域中重复声明,全局变量

 let 不允许在同一作用域中重复声明,否则将抛出异常。块级变量

 const 声明的是一个只读变量,声明之后不允许改变其值。块级变量

引入字符串的新方式[ ` ` ]

    <script>
        const str =`我是一个字符串`;
        console.log(str);
    </script>

[``]中可出现换行符。

    <script>
        const str =`<ul>
                        <li>111</li>
                        <li>222</li>
                        <li>333</li>
                    </ul>`;
    </script>

可用于字符串拼接

    <script>
        const str ='张三';
        const str2=`${str}是李四他哥`
        console.log(str2);
    </script>

可以简化对象的书写

<script>
        let str = '张三';
        let str2= function change() {
            alert("111");
        }
        const school={
            str,
            str2,
            make(){
                console.log("222");
            }
        }
        console.log(school); 
    </script>

 箭头函数

 箭头函数中this是静态的,不会发生改变

    <script>
        function getName() {
            console.log(this.name);
        }

        let getName2 = () => {
            console.log(this.name);
        }
        window.name = "张三";
        const school = {
            name: '李四'
        }
        getName();
        getName.call(school);
        getName2();
        getName2.call(school);
    </script>

不可以用作构造函数

    <script>
        let Person=(name)=>{
            this.name=name
        }
        let me =new Person()
    </script>

 

 不可以使用argument

    <script>
        let fn=()=>{
            console.log(arguments);
        }
        fn(1)
    </script>

 普通函数的this总是指向调用它的那个对象,箭头函数自身没有this,它的this一直都是指向其定义的作用域中,所以箭头函数的this不是在对象里面

 Symbol

 JavaScript中的第七种数据类型,与undefined、null、Number(数值)、String(字符串)、Boolean(布尔值)、Object(对象)并列。


        const s = Symbol("s");
        const s2=Symbol("s");
        
        const t=Symbol.for("t");
        const t2=Symbol.for("t");
    
        console.log(s==s2);//false
        console.log(t==t2);//true

 Symbol的用法

    <script>
        let game = {
            name: '张三',
            up: function () {
            },
            down: function () {
            }
        }
        //声明Symbol类型的up down
        let m = {
            up: Symbol(),
            down: Symbol()
        }
        //给game添加方法
        game[m.up] = function () {
            console.log("aaa");
        }
        game[m.down] = function () {
            console.log("bbbb");
        }

        game[m.up](); // aaa


        //调用symbol类型say方法
        let say = Symbol();
        let youxi = {
            [say]: function () {
                console.log("say");
            }
        }
        youxi[say]();// say
    </script>

Symbol的遍历

        var s1 = Symbol('a');
        var s2 = Symbol('b');
        var a = {
            name: "张三",
            [s1]: 24,
            [s2]: function () {
                console.log("s2");
            }
        }
        var s = Object.getOwnPropertySymbols(a);
        console.log(...s);//Symbol(a),Symbol(b) 遍历Symbol类型
        console.log(Reflect.ownKeys(a));//['name', Symbol(a), Symbol(b)] 遍历所有
        console.log(s[0]);//Symbol(a)
        console.log(a[s[0]]);//24
        a[s2](); //s2
        a[s[1]](); //s2
        console.log(a[s1]);//24
        console.log(a[s1]);//24

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值