node.js学习笔记

node.js学习笔记

一、node是什么?

node.js是构建在Chrome v8 引擎上的一个Javascript 运行环境,通俗的说就是用来运行js文件的软件。它解决了高并发的问题,支持大量并发连接,适用于需要大量输入输出的应用(eg:聊天应用、电商网站…)

【官方文档】
官网:https://nodejs.org/en/
中文官网:https://nodejs.org/zh-cn/

二、node安装及使用

1.单一版本node.js安装

官网选择适合自己开发和电脑系统的node版本安装
缺点:只能安装一个版本的node,运用不够灵活
查看node:
	1. win+r 打开命令行窗口
	2. 输入node 如果输出结果为当前电脑所安装的node版本号,即为安装成功

2.管理工具 - - nvm 下载

nvm下载链接:  
https://github.com/coreybutler/nvm-windows/releases

注意: 如果电脑之前安装过node.js,需要先卸载node.js再进行nvm安装

双击nvm-setup.exe文件,开始安装。指定 nvm 安装目录,保持默认目录不变。
指定 nodejs 安装目录,保持默认目录不变。一直下一步,直到安装成功。

查看nvm是否安装成功:Wim+ r 打开命令行窗口,输入【 nvm -v 】
如果出现版本号等一大串信息,即为安装成功

配置:如果正常下载速度较慢,可以在nvm安装目录(C:\Users\XXXX\AppData\Roaming\nvm)下的settings.txt中,打开后在最后添加镜像:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

3.nvm 命令

nvm version 或者 nvm current -- 查看nvm版本
nvm ls -- 列出所有版本
nvm list  --  查看当前安装的node使用版本
nvm install 版本号  --  安装指定版本的node
nvm uninstall 版本号 -- 卸载指定版本的node
nvm use 版本号 -- 选择指定版本的node
nvm on / off -- 关闭 / 打开 node控制
nvm list available  -- 查看网络可以安装的版本

4.运行及使用

1.初始化

控制台输入以下命令:
	npm init -y  // 默认配置初始化
	npm init     // 自定义配置初始化

2.安装模块

控制台输入以下命令:
默认安装最新版:
	npm install 模块名 参数 
/*
	 参数:
		--save是安装在当前文件夹,
		-g是本地
		--save-dev 代表生产环境使用的包
		-D代表 --save-dev
*/

指定版本安装:
	npm install 模块名@x.x.x //不指定默认最高版本

3.导出、导入模块 ------ 模块化

导出、导入的方式:
1. CommonJs 
	(1).导出:
        module.exports = { 暴露的代码 }
        
    (2).导入:
        const 模块 = require('模块/路径');
       
2.ES6 
	(1).导出:
        默认导出:
            export default 数据;
        按需导出:
            exprot { 导出的数据 }
        混合导出:
            只能写1次默认导出,可以写多次 按需导出
    
    (2).导入
        默认导入:
            import 随便写一个变量名 from '模块/路径';

        按需导入:
            import { 导入的数据 } from '模块或者路径';

        混合导入:
            import 默认值,{按需导出的数据} from '模块/路径';

   		注意:node从v13.x之后才支持es6的模块化的写法,如果版本比较低,是不能使用的
   			  使用ES6模块化,需要将js文件后缀改为mjs,
   			  或者在package.json文件夹中添加:"type": "module";
   			  

三、ES6常用语法

1.let 关键字

varlet 的区别:
1.var 关键字
	用var关键字定义变量,有如下主要缺点:
	(1).存在变量提升问题,降低 js 代码的可阅读性
	(2).没有块级作用域,容易造成变量污染
	(3).var用在for循环条件中,造成for 循环的污染的问题
	(4).var可以重复定义同一个变量,逻辑错误,第二次应该是修改变量,而不是定义

2.let 关键字
	let 主要特性:
	(1).let声明的变量没有预解析,不存在变量提升问题,只有定义之后才能使用此变量
	(2).先定义再使用(暂时性死区),不可以重复定义,否则会报错
	(3).let不可以重复定义同一个变量
	(4).let用在for循环条件中,不会造成for 循环的污染的问题
	(5).let声明的变量有块级作用域(ES6中的作用域:全局和局部还有块级作用域)


2.const关键字定义变量

const 主要特性:
	(1).不存在变量提升问题,只有定义之后才能使用此变量
	(2).const 定义的常量,//无法被重新赋值,因为常量无法修改,变量可修改
	(3).当定义常量的时候,必须定义且初始化(即需要赋值),否则报语法错误
	(4).const 定义的常量,也有 块级作用域
	(5).for循环里面定义的const常量,拥有独立的块级作用域,每次循环,都是一个新的作用域

3. 变量的解构赋值

定义:所谓的解构赋值,就是把某个对象中的属性当作变量,单独提取出来,就能够当作变量直接使用。
作用:把一个复杂的数据,拆分成为多个较为简单的数据
语法: 
	(1).对象解构:
    	let {属性名 , 属性名, ... } = 对象;
    (2).数组解构:
     	let [变量名,变量名,...] = 数组;	
    // 解构:
     	let { 和对象的属性同名的变量名, ... } = 对象;
     	
eg:
	// 变量的解构赋值
	let user={
    	name:'linss',
    	age:99,
    	gender:'女汉子'
  	}
	 //结构赋值:
	  const { name : name123, age, gender } = user;
 	 // name : name123相当于,把变量name的值赋值给name123
	 console.log(name123);
	 

4.箭头函数

用法:
	(参数) => {
		函数体
		}
	// 如果只有一个参数
	参数 => {}
	// 如果只有一行代码
	() => 代码
	// 如果把大括号省略了,会把代码的结果作为 返回值
	

	注意:箭头函数没有自己的作用域,this 指向其外层作用域,即指向上级作用域.


eg:	
    /* 箭头函数  就是普通函数的简写 */
        function fn(a){
           return a;
        }
        let show =()=>{
      		console.log("hello world")
         }
         
        //1.如果大括号中只有一条语句,可以省略大括号
        let show=()=>console.log("hello world");
        show();
        // 2.如果参数,只有一个,可以省略小括号
        // 3.只有一个return语句,return可以胜率
        let all = a=>a;
        console.log(all(1))

5.对象简化

对象简化:省略同名的属性值,省略方法的function
        
        以前在写字面量的对象的时候
            {
                key:value,
                method:function(){}
            }

        es6中
        如果对象的外面已经有一个和属性名同名的变量,可以简化
            {
                变量名,
            }

        如果还有方法,也可以简化
            {
                方法名(){}
            }

        格式简化为:
            {
                key,
                method(){}
            }

6. es6中的面向对象

  es6中的面向对象
    class 关键字 -- 声明类
	语法:
		class 类名{
			constructor(){}
			方法(){}
		}
	
	extends 关键字 -- 继承
	语法:
		class 小分类 extends 大分类{
			constructor(){
			super()
			}
		}

待续------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值