ES6

2018-07-20  本文已影响0人  兔子___

ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现

var不局限作用域
let,const局限作用域,不可重复声明
接下来ES6主角登场:
我们通常用let和const来声明,let表示变量、const表示常量。let和const都是块级作用域。
说白了{}大括号内的代码块即为let 和 const的作用域。
const 声明的变量都会被认为是常量,意思就是它的值被设置完成后就不能再修改了。
还有,如果const的是一个对象,对象所包含的值是可以被修改的。抽象一点儿说,就是对象所指向的地址没有变就行。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        
    </body>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
    <script>
        const student = { name: 'cc' }
        // 没毛病
        student.name = 'yy'
        // // 如果这样子就会报错了
        // //student  = { name: 'yy' }
        console.log(student);
        //结果:输出10次10
        /*var funcs = []
        for (var i = 0; i < 10; i++) {
            funcs.push(function() { console.log(i) })
        }
        funcs.forEach(function(func) {
            func()
        })*/

        // ES5告诉我们可以利用闭包解决这个问题
        /*var funcs = []
        for (var i = 0; i < 10; i++) {
            funcs.push(
              (function(value) {
                return function() {
                    console.log(value)
                }
            })(i)
          )
        }
        funcs.forEach(function(func) {
            func()
        })*/
        // 再来看看es6怎么处理的
        const funcs = []
        for (let i = 0; i < 10; i++) {
            funcs.push(function() {
                console.log(i)
            })
        }
        funcs.forEach(func => func())

            //es6
        const name = 'happy'
        console.log(`hello ${name}`) 
        //对于字符串ES6当然也提供了很多厉害也很有意思的方法😊 说几个常用的
        console.log(name.includes('y')) //返回bool值

        function action(num) {
            num = num || 200
        console.log(num)
        //当传入num时,num为传入的值
        //当没传入参数时,num即有了默认值200
            return num
        }   
        action(11)
    </script>
</html>
上一篇下一篇

猜你喜欢

热点阅读