NodeJs02

作者: 刘岩2019 | 来源:发表于2019-06-27 05:23 被阅读0次

    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

          本文链接:https://www.haomeiwen.com/subject/vhwkcctx.html