当前位置 : 主页 > 网络编程 > JavaScript >

ES6常用语法

来源:互联网 收集:自由互联 发布时间:2021-06-28
ES6的基本使用 1、export default 和 export 区别 相同点:export与export default均可用于导出常量、函数、文件、模块; 差异:一个文件或模块中,export、import可以有多个,export default仅有一个,
ES6的基本使用
1、export default 和 export 区别
    相同点:export与export default均可用于导出常量、函数、文件、模块;
    差异:一个文件或模块中,export、import可以有多个,export default仅有一个,导入方式不同
    a.export
        //a.js
        export const str = "blablabla~";
        export function log(sth) { 
            return sth;
        }

        对应的导入方式:
        //b.js
        import { str, log } from 'a'; //也可以分开写两次,导入的时候带花括号

    b.export default
        //a.js
        const str = "blablabla~";
        export default str;

        对应的导入方式:
        //b.js
        import str from 'a'; //导入的时候没有花括号

2、let(变量)和const(常量)
    在es5中var定义的变量存在变量提升,es6中使用的let不存在变量提升
        console.log(i);
        var i = 10;//10

        console.log(s);
        let s = 20;////ReferenceError: can't access lexical declaration `s' before initialization
    函数提升
        es5中无论if语句是否执行,在if语句内的函数声明都会提升到当前的作用域的顶部而得到执行,es6支持块级作用域,无论是否进入if,内部的函数都不会影响到外部的函数

    每个代码块中即同一个作用域中,每个变量只能使用let定义一次

    let声明变量,值可以改变。const声明常量,值不可改变(使用const时,常量最好使用大写)
    const只保证常量名指向的地址不变,并不能保证地址的数据不变,如果想把对象冻结数据不可改变,可使用Object.freeze(obj)
        const a = {};
        a.name = 'gary';
        console.log(a.name); //gary

        const b = Object.freeze({});
        b.name = 'bob';
        console.log(b.name); //undefine
网友评论