NodeJs02
2019-06-27 本文已影响0人
刘岩2019
NodeJs语法:
NodeJs中习惯用单引号
学习资源
ES6 入门教程:http://es6.ruanyifeng.com/
各大浏览器的支持程度:http://kangax.github.io/compat-table/es6/
一:变量的定义
//定义一个变量
//var定义的变量可以修改, 且允许重新定义(不要使用这种方式)
var a = 10
console.log('a:', a)
var a = 'hello'
console.log('a:', a)
//使用es6的语法(2015年之后的java script语法)
// let : 可以修改的变量,不允许重定义
// const: 不可以修改,定以后是常量
let b = 40
console.log('b :', b)
//可以修改
b = 'hello'
console.log('b :', b)
//不可以重新定义
// let b = 'hello'
// console.log('b :', b)
// let b = 'hello'
// ^
//
// SyntaxError: Identifier 'b' has already been declared
const c = 'hello'
// c = 40 //const 定义的常量不允许修改
二:解构赋值
ES6 允许我们按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)
1.数组的解构赋值
const arr = [1, 2, 3] //我们得到了一个数组
let [a, b, c] = arr //可以这样同时定义变量和赋值
console.log(a, b, c); // 1 2 3
2.对象的解构赋值(常用)
const obj = { name: '俊哥',address:'深圳', age: '100'} //我们得到了一个对象
let {name, age} = obj //可以这样定义变量并赋值
console.log(name, age); //俊哥 100
3.函数参数可解构一个对象(常用)
const person = { name: '小明', age: 11}
function printPerson({name, age}) { // 函数参数可以解构一个对象
console.log(`姓名:${name} 年龄:${age}`);
//console.log("姓名:", name, "年龄:", age);
}
printPerson(person) // 姓名:小明 年龄:11 调用函数printPerson
三:函数扩展
ES6 对函数增加了很多实用的扩展功能
1.参数默认值:
从ES6开始,我们可以为一个函数的参数设置默认值
function foo(name, address = '深圳') {
console.log(name, address);
}
foo("小明") // address将使用默认值
foo("小王", '上海') // address被赋值为'上海'
2.箭头函数:
//普通函数写法
function add(a, b) {
return a + b
}
let res = add(10, 20)
console.log('res :', res)
//箭头函数写法
//定义一个变量名,变量名就是函数名
//不用function关键,使用=()包裹参数,如果只有一个参数,()可以省略
//=> {}, 里面是函数体
//如果函数体只有一条语句,{}可以省略
//1.参数有多个,函数体语句有多个
let add1 = (a, b) => {
let result = a+b
return result
}
let res1 = add1(1, 2)
console.log('res1 :', res1)
//2.只有一个参数,函数体只有一条语句
let pow = a => a * a
console.log('pow res :', pow(10))
四:类
由于js一开始被设计为函数式语言,万物皆函数。所有对象都是从函数原型继承而来,通过继承某个函数的原型来实现对象的继承。但是这种写法会让新学者产生疑惑,并且和传统的OOP语言差别很大。ES6 封装了class语法来大大简化了对象的继承。
class Person {
constructor(name, age){
this.name = name
this.age = age
}
// 注意:没有function关键字
sayHello(){
console.log(`大家好,我叫${this.name}`);
}
}
class Man extends Person{
constructor(name, age){
super(name, age)
}
//重写父类的方法
sayHello(){
console.log('我重写了父类的方法!',this.name);
}
}
let p = new Person("小明", 33) //创建对象
p.sayHello() // 调用对象p的方法,打印 大家好,我叫小明
let m = new Man("小五", 33)
m.sayHello() // 我重写了父类的方法! 小五