目录
一、Node.js
JS运行在服务器端的开发环境
-
对比JS
-
JS运行在浏览器,存在多种解释器,存在代码兼容性问题;Node.js运行在服务器端,只有一种解释器V8引擎,不存在代码兼容性问题
-
两者都有共同的内置对象和自定义对象,不同的宿主对象
-
JS用于开发浏览器端用户交互效果,Node.js用于服务器端开发,例如:操作数据库、调用其它服务器
-
- 网址 : www.nodejs.cn 官网
- 运行方式
- 脚本模式 node ---- 拖拽文件 回车
- 交互模式
- node 进入交互模式
- 两次ctrl+c 或者 一次ctrl+d 退出交互模式
- 特点:默认单线程运行
二、全局对象
- console对象
- console.log(1) //打印日志
- console.info(2) //打印消息
- console.warn(3) //打印警告
- console.error(4) //打印错误
- console.time() //开始计时
- console.timeEnd() //结束计时 注意事项:开始计时和结束计时的值要保持一致。
- global对象
- 用于检测一个变量(函数)是否为全局
- Node.js下,每一个JS文件都是在一个作用域下,里边的变量和函数都是局部的,可以防止全局污染。 —— global
- JS下,每一个JS文件都是在全局作用域下,里边的变量和函数都是全局的,存在全局污染 —— window
- process对象
- 进程对象用于了解Node.js进程
- 进程:电脑上启动的软件都代表一个进程,每个进程都会占用相应的资源(内存、CPU..)
- process.arch //查看当前CPU架构
- process.platform //查看当前的操作系统
- process.pid //查看当前的进程编号,是一个随机分配的数字
- process.kill() //结束指定编号的进程
- buffer对象
- 缓冲区,是内存中的一块区域,用于临时存数据
- var buf=Buffer.alloc(5, 'ab涛') // 创建buffer,分配空间大小并存储字符,单位是字节,每个汉字占3个字节
- buf.toString() //假设存的是字符串,可以转字符串
三、模块
每一个模块都是一个独立功能体,每个文件就是一个模块
- 全局对象
- module.exports //模块暴露的对象,默认是一个空对象,要暴露哪些内容,只需要放入到这个对象
- require() //是一个函数,用于引入其它模块,得到暴露的对象
- __dirname // 获取当前模块的绝对路径
- __filename //获取当前模块的绝对路径+模块名称
- 模块的分类
- 分为自定义模块、核心模块、第三方模块
- 文件模块
- require('./circle.js') //用于引入自定义模块
- 目录模块
- require('./02_hao') //首先会到目录下查找package.json中main对应的文件,如果找不到会自动去查找index.js
- require('hao') //首先会到当前目录下的node_modules目录中寻找hao目录,如果找不到会不断往上一级的node_modules目录中寻找hao目录,用于引入第三方模块
四、json文件:
是一种数据类型文件,通常只能放数组和对象,对象中的属性名必须用双引号,属性值是字符串必须用双引号。
每日一句
千丈之堤,以蝼蚁之穴溃;百尺之室,以突隙之烟焚。
"千里大堤,因为有蝼蚁在打洞,可能会因此而塌掉决堤;百尺高楼,可能因为烟囱的缝隙冒出火星引起火灾而焚毁。"