语言和环境
语言 :java php javascript
环境: 提供了执行代码的能力
如:前端必须打开浏览器才会执行 故浏览器是前端JS的环境
php 安装 phpstudy
java 安装 tomcat
python 安装 pythod
node.js 可以让js变成可以操作数据库
兼容问题
ie 和国际之争 ie赢 ===》 ie和 谷歌 火狐之争 谷歌赢了
现在不需要考虑兼容问题
node.js
- node.js 是基于chrome v8 引擎的JavaScript环境
- nodez.js使用了一个事件驱动 非阻塞式i/o的模型,使其轻量又高效
- node.js的包管理器 的npm 使其全球最大的开源库生态系统
ecmaScript+全局成员 + 核心API模块
没有bom和dom 由于node服务器运行环境中 没有刘浏览器
node.js是一个环境 他可以让写javascript像php一样变成后端语言 js就可以操作数据库
node.js就是一个服务端的javascript运行环境 可以让程序员通过js做后台服务器编程开发
node.js作用:
- 向php语言一样做后台开发
- socket 即时通讯 qq 微信
- 加法一些工具 包
- electron 做桌面 pc端软件
var let const
var let 都可以声明变量
let
1 必须先声明 再使用
2 let 有 {}作用域 有{}里面的let 那么 只能在{}里面用 外面不行 (if for while function ...)
const
常量 和let 差不多 值第一次声明之后就永远不能改了
经常用let 偶尔用const 不能用var(太low了)
解构赋值
从对象上把想用的属性解放出来当成变量来使用
- 解构赋值 { 属性名1,属性名2... }= 对象
- {属性:属性值,属性:属性名}=对象
const { name: username, age: userage, gender } = user
箭头函数
内部的this 永远指向箭头函数外面的this
变体:
1 如果 () 只有一个参数 () 可以省略
2 如果 {} 里面只有一句代码 那么{} 可以省略
3 如果()只有一个参数 {}只有一行代码 都可以省略
var add = x => x + 20
console.log(add(3))
文件操作
Node 的三个组成部分: ECMAScript 核心 + 全局成员 + 核心API成员
如果想要访问 核心成员,直接使用 require('核心成员的名称') 就能够导入并使用这些核心成员;
const fs = require('fs')
- 读取文件
参数:路径 编码格式 回调函数
fs.readFile('./files/1.txt', 'utf-8', function (err, data) {
console.log(data)
if (err) {
return console.log('读取文件失败:' + err.message)
}
console.log('读取文件成功,内容是' + data)
})
- 写入文件
参数:路径 内容 回调函数
fs.writeFile('./files/2.txt', '222', (err) => {
// 如果文件写入失败,则报错
if (err) return console.log('写入文件失败!' + err.message)
console.log('文件写入成功!')
})
- 追加文件
参数:路径 内容 回调函数
fs.appendFile('./files/3.txt', '\n333', (err) => {
if (err) return console.log('追加文件失败!' + err.message)
console.log('追加文件成功!')
})
// 如果要追加的文件路径不存在,则会先尝试创建这个文件,然后再向创建的文件中,追加具体的内容;
- 复制文件
参数:源文件路径 新文件路径 回调函数
fs.copyFile(__dirname + '/files/1.txt', __dirname + '/files/1-copy.txt', (err) => {
if (err) return console.log('拷贝失败:' + err.message)
console.log('拷贝成功!')
})
操作路径
__dirname 永远是 你的js文件所在的 文件夹 从盘符开始 绝对正确的路径
在node中 __dirname 表示当前这个文件,所处的磁盘目录,只要设计到路径拼接,一定要使用 path.join() 方法
只要在使用 fs 模块操作文件的时候,而且这个 方法需要提供一个文件的操作路径,这时候,大家一定要使用 __dirname 去拼接路径;
fs.readFile(__dirname + '/files/1.txt', 'utf8', (err, data) => { })
反引号拼接
html+=`<li>姓名: ${newScore[0]}---成绩:${newScore[1]}</li>`
数组 arr.forEach方法
js原生就有的
arr.forEach(function(item,i){ //item数组的每一项 i数组的索引
console.log(i)
})
__dirname 与__filename
__dirname : 你的js文件所有在的文件夹
D:\1传智上课\node\stu_my_node-mymymymy\day1
__filename : js所有在的文件夹+文件名字
D:\1传智上课\node\stu_my_node-mymymymy\day1/my6读取文件.js