大前端技術
阿新 • • 發佈:2021-01-24
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。
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 等。