Node.js的学习笔记

认识Node

  1. node.js的概念

    • node.js是基于 chrom v8 引擎的 JavaScript 运行环境
  2. Node.js 中 Javascript 的组成部分

    • ECMAScript 核心 + 全局成员 + 核心 API 模块
    • 全局成员:console、setInterval、setTimeout。。。
    • 核心 API 模块:就是 Node 平台 单独提供的一些API,这些API是Node平台所独有的;
  3. Node.js 环境中 运行 js 代码的两种方式。

    • node 命令:直接使用 node 要执行的js文件的路径 来执行指定的JS文件,例---------在桌面上的文件夹->代开cmd命令行–>输入node js文件名.js–>按下回车键即可,写出文件名加粗样式前缀部分,按tab键课自动补全js问价全名
    • REPL 环境 -----进入REPL环境 打开命令行 -->输入node–>回车–例如 1+1–按回车–就会在命令行显示结果
    • 退出REPL 环境 --两次ctrl+c

ECMAScript 6常用语法

  1. let(变量) 与 const(常量)

    • var 关键字定义的变量存在的问题

      • 存在变量提升问题,和函数一样 会有预解析的问题
      • 没有块级 { }作用域,容易造成变量污染,只有函数才能划分作用域
      • 语法: var a = 3;
    • let 主要特性:

      • 不存在变量提升问题,无预解析现象
      • 只有定义之后才能使用此变量
      • 有 { } 块级作用域(在for循环中会产生{ } 作用域)
    • const 主要特性:

      • 不存在变量提升问题,无预解析现象
      • 只有定义之后才能使用此变量
      • const 定义的常量,无法被重新赋值{ for循环中可以}
      • 当定义常量的时候,必须定义且初始化,否则报语法错误
      • const 定义的常量,也有{ }块级作用域
  2. 变量的解构赋值

    • 概念:就是把 某个对象中的属性,当作变量,给解放出来,这样,以后就能够当作变量直接使用了。
    • 可以使用 : 为解构出来的变量重命名
      // let变量的解构赋值
      //使用let穿件一个对象名字为person
      let person = {name : '小明’,age : 18,gender : '男'};
      //这是没有对解构出来的变量进行重命名操作,取用变量为原对象属性名
      //①
      let {name,age,gender}
      console.log(name)//此处的name是变量,而不是对象的属性
      console.log(age/gender)//此处的age/gender是变量,而不是对象的属性
      //将对象中的属性当做变量解放出来,并且将用了 : 为解构出来的变量重命名,并且
      //此时的name已经无法访问了,此时的name属性所代表的属性值已经赋予给了
      //name111,就算再修改属性的值,但是解构出来的变量的值是不会再发生改变的
      //②
      let { name : name111, age, gender } = person
      console.log(name)//此时 node环境运行它会报错
      console.log(name111)//结果为 小明
      //----------------------------
      console.log(user.name);结果为 小明
      //改变 user.name 的值
      user.name = '小红';
      console.log(user.name);//结果为 小红
      console.log(name111);//结果还是为 小明,解构出来的变量的值不在随对象属性值的变化而变化;
      
    • const定义的常量的解构
      //const info = {tel : 10086,email : '10086@qq.com',address : 'shannxi'}
      //① 不进行重命名的解构,解构完毕后,无法再重新复制
      const {tel,email,address};
      console.log(tel);
      const { tel: mytel, email, myemail,address:myaddress} = info
      console.log(mytel);
      

3. 箭头函数(常用)

  1. 语法

    • 定义普通的function函数

      function show() {
      	 console.log('这是普通 function 定义的 show 方法')
      }
      
    • 把方法定义为箭头函数(最完整的写法)

      //普通函数
      function add(x, y) {
      	return x + y
      };
      //将上面的add函数更改为箭头函数
      // 匿名箭头函数
       (x, y) => {
      	return x + y
      };
      var add = (x, y) => {
      	return x + y
      };
      // ---------------------变体1
      var add = x => x + 10;
      console.log(add(1));
      let result = add(5);
      console.log(result);
      // ---------------------变体2
      var add = (x, y) => {
      	console.log(x+y);
      };
      var daa (x,y) => console.log;
      add(1, 2);
      // ----------------------变体3
      var add = x => x + 20;
      console.log(add(3));
      
  2. 箭头函数,本质上就是一个匿名函数;

  3. 箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致;

  4. 变体:

    • 变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则,左侧小括号可以省略;
    • 变体2:如果右侧函数体中,只有一行代码,则右侧的 { } 可以省略;
    • 变体3:如果箭头函数左侧 只有一个 形参,而且右侧只有一行代码,则 两边的 () 和 {} 都可以省略
  5. 注意: 如果我们省略了 右侧函数体的 { },那么,默认会把 右侧函数体中代码的执行结果,当作箭头函数的调用结果 return 出去;

对象中 定义方法 和 定义属性 的便捷方式

  1. 传统定义对象的方法

    ```
    let name = 'zs';
    let age = 22;
    function show() {
    	console.log('我是zs')
    };
    var person = {
    	name: name,
    	age: age,
    	show: show
    };
    console.log(person)
    //这里的代码是定义了一个名为person的对象
    //打印出来的内容为
    var person = {
    	name : 'zs',
    	age : 22,
    	show :  [Function show]
    };
    ```
    
  2. 第二种方法

    ```
    let name = 'zs';
    let age = 22;
    function show() {
    	console.log('我是zs')
    };
    var person = {
    	name,
    	age,
    	show
    };
    console.log(person)
    //这里的代码是定义了一个名为person的对象
    //打印出来的内容也是一样的
    var person = {
    	name : 'zs',
    	age : 22,
    	show :  [Function show]
    };
    ```
    
  3. 书写方法的两种方式

    ```
    let name = 'zs';
    let age = 22;
    function show() {
    	console.log('我是zs')
    };
    var person = {
    	name,
    	age,
    	show,
    	say : function () {
    		console.log("ok");
    	}
    };
    console.log(person)
    //这里的代码是定义了一个名为person的对象
    //打印出来的内容也是一样的
    var person = {
    	name : 'zs',
    	age : 22,
    	show :  [Function : show],
    	say:  [Function : say]
    };
    //简写方式为省略 : 和 function
    var person = {
    	name,
    	age,
    	show,
    	say () {
    		console.log("ok");
    	}
    };
    ```
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值