ES6(ECMAScript 6)
一些常用新语法说明
1.定义常量 Variable
1.1 const:定义常量,定义后值不可再修改
const a = 100;
a = 200 ;//会报错
1.2 let:定义常量
let b = 100;
b = 10086 ;
console.log(b);//10086
1.3 var:定义常量
尽量少用,存在许多问题;比如:作用域的范围让人困惑!
var num = 20;
var num = 20086;
console.log(num);//20086 -->这就是存在许多的坑了
for (var i = 0;i<10;i++){
console.log(i);
}
//var定义的作用域让人困惑
console.log("测试上面对的i是否可用用"+i);
2.解构
2.1 数组的解构
let arr = [1,2,'lan','ddq'];
let[a,b,name,vname] = arr;
console.log(a);
console.log(a,b);
console.log(a,b,name,vname);
2.2 对象的解构
let person = {
name : '咚咚锵'
address : '东北'
age : 16
}
//正常方式取出person对象的属性
console.log(person.name,person.address);
//通过解构的方式--->属性名字要一样
let{name,address,age} = person
console.log(name,address,age);
2.3 含数参数的解构
function printPerson({name,address,age}){
console.log(name , address);
}
printPerson(person);
3.扩展函数
3.1 函数的参数默认值
function fo(name,age = 18){
console.log(name,age)
}
fo('咚咚锵');//咚咚锵 18
fo('齐德龙',12);//齐德龙 12
3.2 自执行函数
(function sum(x,y){
console.log('执行了自执行函数 ')
})();
3.3 箭头函数
function sum(x,y){
return x + y;
}
let sum1 = (x,y) => {
return x + y;
}
//如果函数内只有一行代码,那么可以省略大括号
let sum2 = (x,y) => x + y;
console.log(sum1(1,2))
console.log(sum2(2,2))
//箭头函数自执行 : 可读性差不建议使用
console.log(((x,y)=x+y)(100,1);//101
4.类继承
constructor,super(),类似java类;
//Class继承
class Person {
constructor(name,age){
this.name = name
this.age = age
}
sayHello(){
console.log(`name:${this.name}`) // raw string 原生字符串
}
}
let person = new Person('王德发',22);
person.sayHello();
//子类继承
class Man extends Person{
constructor(name,age){
super(name,age)
}
}
let man = new Man("齐德龙",16);
man.sayHello();
console.log(man.name);
console.log(man.age);
5.Node的异步IO机制
let a = 100;
let fs = require("fs");
console.log(a)
let data = "大河向东流,齐德龙东强嘚呛";
//耗时操作:文件读写/网络请求/数据库读写操作都是耗时操作
//异步IO请求,当遇到耗时操作时,把它交给底层V8,
fs.writeFile("./a.txt",data,function () {
console.log('200')
});
let data1 = "床前明月光,疑是地上霜";
fs.writeFile("./b.txt",data,function () {
console.log('400')
});
console.log('300');
//执行顺序是: 100 300 200 400
网友评论