Nvm的安裝:
對于node來說,他有太多的版本了,而在各個專案的開發中,各種node版本都可能應用,所以要運行這些不同版本的專案,能夠快速切換本機node的版本是很重要的,Nvm的作用就是完美的管理我們本地的node版本,達到快速切換的效果
詳細安裝程序搜其他相關博客,
ES6語法:
首先要會用 let 來代替var
var的缺點:
1、var宣告的變數有預決議,容易造成邏輯混亂,可以先在前面使用,再在后面宣告,
2、var 可以重復定義同一個變數,造成邏輯錯誤,第二吃重新定義變數應該是修改,而不是定義
3、var 用在for回圈條件中,會造成for回圈的污染問題
4、var 宣告的變數沒有塊級作用域
let的優點:
1、let宣告的變數沒有預決議,不會有變數提升
2、let不可以重復定義同一個變數
3、let在for回圈中不會污染
4、let宣告的變數有塊級作用域
其次,要學會用const定義常量,要知道,用const來定義常量,修改時就會報錯,而如果是用const來定義了一個物件,由于物件是參考式變數,const固定不可修改的只是這個變數指向的地址,而這個物件里面的屬性是可以改變的
解構語法
1、物件解構:
let obj = {
name: "nodejs",
age:11,
email:"1841113974@qq.com"
};
// 取出所有屬性并賦值:
// let name = obj.name;
// let age = obj.age;
// let email = obj.email;
// 現在只需要(等效于上面的寫法):
// let {name, email, age} = obj; //{ }中的變數名和obj的屬性名一致 完全解構
// 部分解構
// let {name} = obj; // 部分解構
//解構之后重命名
let {name:itsName} = obj; 解構之后重命名為itsName
2、陣列解構:
let arr1 = [10, 20, 30];
let [a, b, c] = arr1;
console.log(a); //10
console.log(b); //20
console.log(c); //30
// 部分解構
let [d] = arr1;
console.log(d); //10
let [ , ,f] = arr1;
console.log(f); //30
// 復合解構
let arr2 = [1, 2, [10, 20, 30]];
let [ j, k, [x, y, z]] = arr2;
console.log(j); //1
console.log(k); //2
console.log(x); //10
console.log(y); //20
console.log(z); //30
3、字串解構:
let string1 = "xyz";
let [a,b,c] = string1;
console.log(a); //x
console.log(b); //y
console.log(c); //z
string1[1] = "Y";
console.log(string1); // xyz 無法修改
console.log(string1[1]); // y
模板字串:
var userInfo = {
id: 1,
name: 'andy',
email: 'gogery@163.com'
}
// 需求:希望把物件拼接為字串: the userId is xxx, my name is xxx, my email is xxx;
// es6 提供一個語法表示一個字串,使用的識別符號是 反引號;
// 以前定義字串使用的: '' ""
// 1. 允許換行 2. 允許在模板字串里面直接使用變數
var tmpl = `the userId is ${userInfo.id},
my name is ${userInfo.name},
string is ${infos}
my email is ${userInfo.email}`;
// `` 反引號 數字鍵 1旁邊的鍵,需要是 shift + `
console.log(tmpl);
函式形參的默認值:
// ES6 做法,代碼簡潔易閱讀
function func(x = 1){ // 注意當 x 為 undefined 時 x 賦值為 1
console.log(x);
}
func();
function fun(name = 'nodejs', age = 12){
console.log(name, age);
}
fun(); // 'nodejs', 12
fun("xiaoming", 15); //"xiaoming", 15
函式引數的結構賦值:
function func({name, age}){ //{name, age} = obj 解構
console.log(name, age);
}
let obj = {
name:"nodejs",
age:"11",
email:"nodejs@163.com",
};
func(obj); // 輸出結果: nodejs 11
// 注意:
// func(); //相當于傳了一個null {name, age}=null 就會報錯
// func({}); //不會報錯,輸出:undefined undefined
解構賦值,指定引數的默認值:
function func2({name="nodejs", age=11} = {}){ //指定默認值
console.log(name, age);
}
func2(); //nodejs 11
rest引數/剩余引數:
rest引數搭配的變數是一個陣列,該變數將多余的引數放入陣列中,
且rest引數之后不能再有其他引數
function func( a, b ,...rest){ // 把剩余的引數都交給rest
console.log(rest);
}
func(10, 20, 30, 50, 60);
function func2(...rest){ //rest 接收所有引數作為一個陣列
console.log(rest);
}
func2(60, 70, 80, 90);
擴展運算子:
// 1、基本理解
let arr1 = [10, 20, 30];
function func(a, b, c){
console.log(a,b,c)
}
func(...arr1); //等效于:func(10,20,30); 輸出結果10 20 30
// 2、合并陣列
let arr2 = [40, 50, 60];
let newArr = [...arr1,...arr2]; // 等效于 [ 10, 20, 30, 40, 50, 60 ]
console.log(newArr); //[ 10, 20, 30, 40, 50, 60 ]
// 3、合并物件
let obj1 = {
name:"nodejs",
age:"11",
};
let obj2 = {
email:"nodejs@163.com",
};
let newObj = {...obj1,...obj2}; // 等效于{ name: 'nodejs', age: '11', email: 'nodejs@163.com' }
console.log(newObj); //{ name: 'nodejs', age: '11', email: 'nodejs@163.com' }
// 4、es6中另一個合并物件的方法
let newObj2 = Object.assign({},obj1,obj2); // 把第二個及第二個以上的引數都合并到第1個上面去,
console.log(newObj2); //{ name: 'nodejs', age: '11', email: 'nodejs@163.com' }
箭頭函式:
// function func(){
// console.log("hello");
// }
// 以上代碼使用箭頭函式書寫為:
var func = () => {
console.log("hello");
};
func();
到此,學習node之前的準備作業已經完成,主要都是一些es6的語法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/298130.html
標籤:其他
上一篇:10分鐘搞定硬鏈、軟鏈
下一篇:JavaScript貪吃蛇的實作
