NodeJs02

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() // 我重写了父类的方法! 小五

你可能感兴趣的:(NodeJs02)