nodejs入门
1.1-什么是nodejs
- Node是一个构建于Chrome V8引擎上的一个JavaScript运行环境
- Node是一个运行环境,作用是让js拥有开发服务端的功能
- Node使用事件驱动,非阻塞IO模型(异步读写)使得它非常轻量级和高效
- Node中绝大多数API都是异步(类似于Ajax),目的是提高性能
- Node中的NPM是世界上最大的开源库生态系统(类似于gitHub)
1.2-Node.js环境安装
1.2.1-如何判断自己当前电脑是否已经安装了Node环境
- 打开终端,输入node - v
- 如果能看到版本号则说明当前电脑已经安装Node环境
- 一旦安装了node,则会自动一并安装npm
1.3-如果运行Node.js程序
- REPL:交互解释器
- Node运行环境的另一种叫法,作业是解析执行js代码(不推荐)
- 用法:
- 第一种方式:直接双击打开node.exe然后写js代码
- 第二种方式:
- 先在终端先执行node,进入node环境
- 然后写js代码
- 使用终端命令node[js文件路径]开始运行js文件
- 其实当我们在终端执行Node命令时,并不是我们终端去编译解释js代码,而是电脑会自动打开Node安装包中Node.exe应用程序来打开js文件
- Node.exe是一个类似于终端的应用程序,没有界面
- Node.exe工作环境称之为REPL环境,也就是交互式解释器
- REPL才是珍重解释执行我们js代码的解释器
- 其实当我们在终端执行Node命令时,并不是我们终端去编译解释js代码,而是电脑会自动打开Node安装包中Node.exe应用程序来打开js文件
1.4- 服务器端js和浏览器端js
1.js都是运行在浏览器端的
ECMScript:js语法
Bom:浏览器对象模型,用js去操作浏览器窗口
Dom:文档对象模型,用js去操作页面上的Dom树
-
学了node.js之后, 服务端也可以运行ECMScript
-
在node.js中不能写BOM和Dom语法
/**
* 1.js都是运行在浏览器端的
* ECMScript:js语法
* Bom:浏览器对象模型,用js去操作浏览器窗口
* Dom:文档对象模型,用js去操作页面上的Dom树
* 2. 学了node.js之后, 服务端也可以运行ECMScript
* 3. 在node.js中不能写BOM和Dom语法
*/
// 正常的符合js语法的代码都是没问题的
var name = "aaa"
console.log(name)
//但是不能执行Bom和Dom语法
// console.log(document)//报错
alert(name) //报错
ES6新语法
1-let关键字和const关键字
var 关键字声明变量 | let 关键字声明变量 | const关键字声明常量 |
---|---|---|
有变量提升 | 没有变量提升 | 没有变量提升 |
没有块级作用域,是函数作用域 | 有块级作用域 | 有块级作用域 |
可以重复声明 | 不能重复声明 | 不能重复声明 |
可以重新赋值 | 可以重新赋值 | 不能重新赋值,声明时必须要初始化值 |
/**
* var 关键字声明变量
* 1.有变量提升
* 2.没有块级作用域,是函数作用域
* 3.可以重复声明
* 4.可以重新赋值
*
*
*
* let 关键字声明变量
* 1. 没有变量提升
* 2. 有块级作用域
* 3. 不能重复声明
* 4. 可以重新赋值
*/
//1. 没有变量提升
// console.log(age)
// let age = 30 //报错
// var age = 30 // undefined
//2. 有块级作用域
// for (var i = 0; i < 10; i++) {
// }//10
// for (let i = 0; i < 10; i++) {
// }//报错
// console.log(i)
// 3. 不能重复声明
// var a = 10
// var a = 20//没有报错,输出20
// let a = 10
// let a = 20//报错,Identifier 'a' has already been declared
// console.log(a)
// 4. 可以重新赋值
// var a = 1
// a = 2
// let q = 1
// q = 2
// console.log(a, q)
/**
* const关键字声明常量的
* 1. 没有变量提升
* 2. 有块级作用域
* 3. 不能重复声明
* 4. 不能重新赋值,声明时必须要初始化值
*/
// 1. 没有变量提升
// console.log(a)
// const a = 10//报错
// 2. 有块级作用域
// {
// const a = 10
// }
// console.log(a)//报错
// 3. 不能重复声明
// const a = 10
// const a = 20
// console.log(a)//报错
// 4. 不能重新赋值, 声明时必须要初始化值
// const a//报错
// const a = 10
// a = 20//报错</