ES6的基本使用 1、export default 和 export 区别 相同点:export与export default均可用于导出常量、函数、文件、模块; 差异:一个文件或模块中,export、import可以有多个,export default仅有一个,
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