一、在node.js环境中执行js代码的两种方式
1、在PowerShell窗口中输入:“node 要执行的文件路径”
如:node ./1.js
①在终端中,通过上箭头可以快速定位到之前的命名
②在终端中,按住tab键可以快速补全路径
③windows系统上,在终端输入cls可以清屏
2、直接输入node回车进入REPL环境(了解)
二、变量申明方式var、let、const
1. var 缺点:
- 存在变量提升问题,降低 js 代码的可阅读性
- 没有块级作用域,容易造成变量污染
2. let 主要特性:
- 不存在变量提升问题,只有定义之后才能使用此变量
- 有 { } 作用域
3. const 主要特性:
- 不存在变量提升问题,只有定义之后才能使用此变量
- const 定义的常量,无法被重新赋值
- 当定义常量的时候,必须定义且初始化,否则报语法错误
- const 定义的常量,也有块级作用域
三、解构赋值
定义:解构赋值,就是把 某个对象中的属性,当作变量,给解放出来
实例:let obj = {a:1,b:2}
let {a,b} = obj;
console.log(a);
console.log(b);
// 可以使用 :为解构出来的变量重命名
// let {a:newName,b} = obj;
// console.log(newName);
四、箭头函数
语法:(形参列表) => { 函数体代码 }
1. 箭头函数,本质上就是一个匿名函数;
2. 箭头函数的特性: 箭头函数内部的 this, 永远和 箭头函数外部的 this 保持一致;
3. 变体:
- 变体1:如果箭头函数,左侧的形参列表中,只有一个参数,则,左侧小括号可以省略;
- 变体2:如果右侧函数体中,只有一行代码,则,右侧的 { } 可以省略;
- 变体3:如果箭头函数左侧 只有一个 形参,而且右侧只有一行代码,则 两边的 () 和 {} 都可以省略
4. 注意:如果我们省略了 右侧函数体的 { },那么,默认会把 右侧函数体中代码的执行结果,当作箭头函数的调用结果 return 出去;
五、node.js文件操作
1. 读取文件
语法:
//1】导入核心模块:文件操作
const fs = require('fs');
//2】读取文件:调用readFile方法读取文件
fs.readFile('文件路径',['编码格式'],function(err,data){
console.log(err); //读取失败,err是一个错误对象,读取成功 err = null
console.log(data); //读取成功的内容
)
实例:
// 调用 fs.readFile 方法时,提供的第一个参数是相对路径,容易出现问题
fs.readFile('./files/1.txt', 'utf-8', (err, data) => {
if(err) return console.log(err.message)
console.log(data)
})
2. 写入文件
//1】导入核心模块:文件操作
const fs = require('fs');
//2】读取文件:调用writeFile方法写入文件
fs.writeFile('文件路径','写入内容',['编码格式,默认utf-8'],callback);
//3】实例
fs.writeFile('./files/1.txt','okokok',(err) => {
if(err) return console.log('写入文件失败'+err.message);
console.log('文件写入成功');
});
//4】注意:写入文件会覆盖原有内容,如果文件不存在,则新建该文件,再写入
3.文件追加
//1】导入核心模块:文件操作
const fs = require('fs');
//2】读取文件:调用appendFile方法写入文件
fs.appendFile('文件路径','写入内容',['编码格式,默认utf-8'],callback);
//3】实例
fs.appendFile('./files/1.txt','okokok',(err) => {
if(err) return console.log('追加文件失败'+err.message);
console.log('文件追加成功');
});
//4】注意:追加文件如果不存在,则会自动创建,再追加
4. 文件路径
1】__dirname
表示当前执行文件,所处在的文件夹目录
2】__filename
表示当前执行文件的完整路径,路径中包含了具体的文件名
5.fs.stat 读取文件/目录信息
语法:fs.stat('路径', (err,stats)=>{...});
stats.size //大小,单位字节
stats.birthtime //创建时间
stats.isFile //判断是否是文件
stats.isDirectory //判断是否是目录
6.fs.readdir 读取指定目录中所有文件的名称
读取指定目录中所有文件的名称
语法:fs.readdir('路径',callback) //读取指定目录中所有文件的名称
7.fs.copyFile 文件拷贝
语法:fs.copyFile('原路径','新路径',(err,data)=>{...})
1】如果新文件路径已经存在,则会进行覆盖 |
|