1.变量声明 let 和 const
let与const 都是块级作用域,
-
let
function name(){ let age = 12; //age只在name()函数中存在 }
-
const
const name = 'tom' name = 'jack'//再次赋值会报错
2.字符串模板
-
Es5
//例1 var name = 'jack'; console.log('hello '+name) //例2 var msg = 'Hi
man! '//以反斜杠用来换行 -
Es6
//例1 const name = 'jack' console.log('hello ${name}');//hello jack //例2 onst template =
<div> <span>hello world</span> </div>
3.扩展的对象的功能
-
Es5
//例1 function people(name,age){ return { name:name age:age } } //例2 const people = { name : 'tom', getThisName:function(){ console.log(this.name) } }
-
Es6
//例1 function people(name,age){ return { name age } } //例2 const people = { name : 'tom', getThisName(){ console.log(this.name) } }
4.import 和 export
1//全部导入 2import people from './example' 3 4//有一种特殊情况,即允许你将整个模块当作单一对象进行导入 5//该模块的所有导出都会作为对象的属性存在 6import * as example from "./example.js" 7console.log(example.name) 8console.log(example.age) 9console.log(example.getName()) 10 11//导入部分 12import {name, age} from './example' 13 14// 导出默认, 有且只有一个默认 15export default App 16 17// 部分导出 18export class App extend Component {};
5.class类的支持
Es6中添加了对class类的支持:
1//定义class 2class Animal(){ 3 //ES6中新型构造器 4 constructor(name) { 5 this.name = name; 6 } 7 //实例方法 8 sayName() { 9 console.log('My name is '+this.name); 10 } 11} 12 13//类的继承 14class Programmer extends Animal { 15 constructor(name) { 16 //直接调用父类构造器进行初始化 17 super(name); 18 } 19 program() { 20 console.log("I'm coding..."); 21 } 22} 23//测试我们的类 24var animal=new Animal('dummy'), 25wayou=new Programmer('wayou'); 26animal.sayName();//输出 ‘My name is dummy’ 27wayou.sayName();//输出 ‘My name is wayou’ 28wayou.program();//输出 ‘I'm coding...’ 29
6.for of
1var someArray = [ "a", "b", "c" ]; 2 3for (v of someArray) { 4 console.log(v);//输出 a,b,c 5}