1、node.js
介绍:
Node是一个让 JavaScript 运行在服务端点的开发平台,基于Chrome V8引擎,执行速度非常快,性能非常好。
同Java作对比:
Node.js相当于JDK。
Chrome V8引擎相当于JVM。
注:JVM的作用是把.class字节码文件解释给操作系统;Chrome V8引擎的作用是把.js文件解释给操作系统。
Node.js内置许多模块(详情查询API)相当于Java内置的各种包。
2、ES6语法
1)let和const
a.定义:
传统的方式定义变量和常量都使用var。
ES6定义的方式则为,定义变量使用let,定义常量使用const。
b、let-const和var的区别
let和const解决
//1、var的变量穿透问题
for(var i = 0; i < 5; i++){
console.log(i);
}
console.log(i);//此时i为5 , 发生了变量穿透
//如果我们改成let定义
for(let i = 0; i < 5; i++){
console.log(i);
}
console.log(i);//此时会报错,阻止了变量穿透的情况
//2、常量修改问题
//用var定义常量
var PERSON = '程序员'
PERSON = '代码'
console.log(PERSON); //此时的输出结果为:代码,常量PERSON发生了修改
//用const定义
const PERSON = '程序员'
PERSON = '代码'
console.log(PERSON); //此时报错,提示常量不可修改
c、模板字符串
let person = {
name: '刘立伟',
age: '5岁',
address: '河北'
}
//有的时候,字符串会牵扯到动态部分
//传统方式用字符串拼接
let address = '传统:我叫'+person.name+'我今年'+person.age+'我家住在'+person.address
console.log(address);
//ES6使用 `
let address2 = `ES6:我叫${person.name}我今年${person.age}我家住在${person.address}`
console.log(address2);
d、箭头函数
//箭头函数 - 重点 (在未来的项目开发中:比如小程序,unipp,一些常见的脚手架大量使用)
var sum = function(a,b){
return a+b
}
//箭头函数 - 改进1
var sum = (a,b) => {
return a+b
}
//箭头函数 - 改进2
var sum = (a,b) => a+b
//通过上面的例子总结规律
//1、去掉function
//2、在括号后面加箭头
//3、如果逻辑代码仅有return可以直接省去(如果有逻辑体,就不能省略)
var arr = [1,2,3,4,5]
var newarr = arr.map(function(item){
return item * 2
})
console.log('newarr:', newarr);
var newarr2 = arr.map((item) => {
return item * 2
})
console.log('newarr2:', newarr2);
var newarr3 = arr.map((item) => item * 2)
console.log('newarr3:', newarr3);
e、对象解构
const ADDRESS = '中国河北省'
let person = {
name: '小红',
address: ADDRESS,
say(){
console.log('你好');
}
}
//通过.的方式
console.log(person.name);
console.log(person.address);
console.log(person.say);
//通过[]的方式
console.log(person['name']);
console.log(person['address']);
console.log(person['say']);
//ES6
let {name,address} = person
console.log(name);
console.log(address);
f、对象传播操作符
//对象传播操作符 ...
let person = {
name: "小明",
age: 5,
phone: "1234567890",
address: "河北石家庄",
go(){
console.log("小明走来了");
}
}
//解构出来
let {name,age, ...person2} = person
console.log(name);
console.log(age);
console.log(person2);
g、map
//要对数组的每个元素*2
let arr = [1,2,3,4,5]
//传统的方式
let newarr = []
for(let i = 0; i<arr.length; i++){
newarr.push(arr[i] * 2)
}
console.log(newarr);
console.log("==============");
//map --- 自动循环 并会把处理的值回填到对应的位置
let newarr2 = arr.map((el) => el * 2)
console.log(newarr2);
//map 处理对象的数据
let users = [
{name: "小明", age: 5 ,address:"北京"},
{name: "小红", age: 7 ,address:"天津"},
{name: "小刚", age: 10 ,address:"上海"},
]
let newusers = users.map((ele) => {
ele.age = ele.age + 1
return ele
})
console.log(newusers);
2、npm
1、快速构建nodejs工程
- npm init
——得到package.json这个文件里的内容如下
{
"name": "helloVue", //工程名
"version": "1.0.1", //版本
"description": "我是一个node工程", //描述
"main:" "index.js", //入口js
"scripts": { //运行脚本
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "llw", //开发者
"license": "ISC" //授权协议
}
//类似于:pom.xml 文件作用管理依赖。
2:、快速安装和依赖第三个模块,比如npm install mysql redis 等。