??歡迎來(lái)到@邊境矢夢(mèng)°的csdn博文??
???本文主要梳理前端技術(shù)的JavaScript的知識(shí)點(diǎn)ES6 新特性文件上傳下載??
??我是邊境矢夢(mèng)°,一個(gè)正在為秋招和算法競(jìng)賽做準(zhǔn)備的學(xué)生??
??喜歡的朋友可以關(guān)注一下??????,下次更新不迷路??
?Ps: 月亮越亮說(shuō)明知識(shí)點(diǎn)越重要 (重要性或者難度越大)??????????
?
目錄
ES6 新特性的介紹:?
??ES6是什么
段落1:let聲明變量 ??
段落2:const聲明常量/只讀變量 ??
段落3:解構(gòu)賦值 ??
??數(shù)組結(jié)構(gòu)
??對(duì)象結(jié)構(gòu)
段落4:模板字符串 ??
段落5:箭頭函數(shù) ??
??總結(jié) :??編輯
?
ES6 新特性的介紹:?
這是每個(gè)前端開(kāi)發(fā)者都應(yīng)該掌握的技能。ES6是JavaScript的一個(gè)重要的版本升級(jí),它帶來(lái)了許多新特性和語(yǔ)法糖,讓我們的代碼更加簡(jiǎn)潔高效。無(wú)論你是新手還是有經(jīng)驗(yàn)的開(kāi)發(fā)者,掌握ES6都會(huì)讓你的編碼變得更加愉快和高效。那么,讓我們開(kāi)始吧!??
??ES6是什么
段落1:let聲明變量 ??
ES6引入了let關(guān)鍵字,用于聲明塊級(jí)作用域的變量。相比于以前的var關(guān)鍵字,let在作用域上更加嚴(yán)格,避免了變量提升的問(wèn)題。另外,使用let聲明的變量可以被重新賦值,對(duì)于需要頻繁變動(dòng)的變量來(lái)說(shuō)非常實(shí)用。??
// let 細(xì)節(jié) 1
// (1) let 聲明的變量, 在代碼塊中,則作用域在代碼塊中
// (2) var 聲明的變量, 在代碼塊中,作用域沒(méi)有限制
{
var name = "邊境矢夢(mèng)";
let job = "java 工程師";
console.log("name=", name);
console.log("job=", job);
}
console.log("name=", name);
//console.log("job=", job);//job is not defined
// let 細(xì)節(jié) 2
// 1. var 可以聲明多次
// 2. let 只能聲明一次
var num1 = 100;
var num1 = 200;
console.log(num1);
let num2 = 600;
//Syntax => 語(yǔ)法
//let num2 = 900;//Uncaught SyntaxError: redeclaration of let num2
console.log(num2);
// let 細(xì)節(jié) 3
// 1. let 不存在變量提升
// 2. var 存在變量提升
console.log("x=", x);//undefined
var x = "tom";
//can't access lexical declaration 'z'
console.log("z=", z);
let z = "mary";
通過(guò)這種方式,我們可以避免變量沖突和覆蓋,更加靈活地控制變量的作用域。??
段落2:const聲明常量/只讀變量 ??
除了用于聲明變量,ES6還引入了一個(gè)新的關(guān)鍵字const,用于聲明常量或者只讀變量。與使用let聲明的變量不同,const聲明的變量是不能被重新賦值的,一旦聲明就不能被改變。const關(guān)鍵字在開(kāi)發(fā)中常用于對(duì)于不可變的值進(jìn)行定義,使我們的代碼更加健壯和可維護(hù)。??
1. 常量在定義時(shí),需要賦值2. 常量賦值后不能修改
讓我們看一個(gè)例子:
const PI = 3.14;
PI = 3.14159; // 嘗試修改常量,會(huì)報(bào)錯(cuò)
console.log(PI); // 輸出 3.14
在上面的代碼中,我們使用const聲明了一個(gè)常量PI,并嘗試修改其值。由于常量不可被重新賦值,所以當(dāng)我們?cè)诘诙羞M(jìn)行賦值操作時(shí)會(huì)報(bào)錯(cuò)。這種機(jī)制保證了我們定義的常量不會(huì)被無(wú)意間修改,提高了代碼的可讀性和穩(wěn)定性。??
段落3:解構(gòu)賦值 ??
ES6的解構(gòu)賦值是一種快捷的方式,可以方便地從數(shù)組或?qū)ο笾刑崛≈挡①x給變量。這個(gè)特性對(duì)于處理復(fù)雜的數(shù)據(jù)結(jié)構(gòu)非常有幫助,讓我們的代碼更加簡(jiǎn)潔易讀。??
1. 解構(gòu)賦值是對(duì) 賦值運(yùn)算符的擴(kuò)展2. 是一種針對(duì) 數(shù)組或者對(duì)象 進(jìn)行模式匹配,然后對(duì)其中的變量進(jìn)行賦值3. 主要有兩種形式: 數(shù)組解構(gòu)和對(duì)象解構(gòu)
??數(shù)組結(jié)構(gòu)
細(xì)節(jié) : ??
let arr = [1, 2, 3];
//如果要看某個(gè)變量的類型
console.log("arr=>", arr);
//數(shù)組解構(gòu)[取出元素]
//1.傳統(tǒng)
let x = arr[0], y = arr[1], z = arr[2];
console.log(x, y, z);
//2. ES6 風(fēng)格
let [a, b, c] = arr;
console.log("==================================");
console.log(a, b, c);
let [num1, num2, num3] = [100, 200, 300];
console.log(num1, num2, num3);
??對(duì)象結(jié)構(gòu)
細(xì)節(jié)說(shuō)明
1, 對(duì)象解構(gòu)時(shí),let{name, age}中的name和 age名稱需要和對(duì)象屬性名保持2, 也可解構(gòu)對(duì)象部分屬性,比如 let{age}
3, 還有其它的形式,比如方法上使用對(duì)象解構(gòu)
ES6對(duì)象解構(gòu)
1.把monster對(duì)象的屬性,賦值給{name , age}
2. {name , age}的取名name 和 age要和monster對(duì)象的屬性名保持一致
3.使用 {} 包括,不要使用 [ ]
4. {name , age}順序是無(wú)所謂
讓我們看一個(gè)例子:
const person = {
name: '小紅',
age: 18,
city: '上海'
};
const { name, age, city } = person;
console.log(name); // 輸出 '小紅'
console.log(age); // 輸出 18
console.log(city); // 輸出 '上海'
在上面的代碼中,我們通過(guò)解構(gòu)賦值從person對(duì)象中提取了name、age和city的值,并分別賦給了對(duì)應(yīng)的變量。這樣我們就能輕松地訪問(wèn)和使用這些值,省去了使用冗長(zhǎng)的對(duì)象屬性訪問(wèn)的步驟。這種語(yǔ)法糖使我們的代碼更加精簡(jiǎn)和可讀。??
段落4:模板字符串 ??
在ES6之前,我們使用字符串拼接來(lái)組合字符串和變量,非常繁瑣。而ES6引入了模板字符串,使得字符串的拼接更加簡(jiǎn)單和直觀。使用模板字符串,我們可以在字符串中嵌入變量,只需用${}包裹變量即可。??
讓我們看一個(gè)例子:
const name = '小紅';
const age = 18;
const greeting = `大家好,我是${name},今年${age}歲了。`;
console.log(greeting); // 輸出 '大家好,我是小紅,今年18歲了。'
在上面的代碼中,我們使用模板字符串創(chuàng)建了一個(gè)包含變量的字符串greeting。通過(guò)使用${}包裹變量,我們可以方便地將變量嵌入到字符串中,使代碼更加簡(jiǎn)潔和可讀性更高。這種語(yǔ)法糖讓我們拼接字符串的過(guò)程更加愉快!??
細(xì)節(jié) : ??
//1、字符串,換行會(huì)原生輸出
let str1 = `for(int i = 0;i < 10;i++){
System.out.println("i="+i);
}`;
console.log("str1=", str1);
//2. 字符串插入變量和表達(dá)式。變量名寫(xiě)在 ${} 中,${} 中可以放入 JavaScript 表達(dá)式。
let name = "邊境矢夢(mèng)";
//老師解讀
//(1) 當(dāng)解析 ${name}, 就找最近的 name 遍歷, 進(jìn)行替換
//(2) 然后可以得到最后解析的字符串
let str2 = `博主=${name}`;
let str3 = `1+2=${1 + 2}`;
let n1 = 80;
let n2 = 20;
let str4 = `${n1}+${n2}=${n1 + n2}`;
console.log("str2=", str2);
console.log("str3=", str3);
console.log("str4=", str4);
//3. 字符串中調(diào)用函數(shù)
function sayHi(name) {
return "hi " + name;
}
let name2 = "tom";
let str5 = `sayHi() 返回的結(jié)果是=${sayHi('jack')}`;
let str6 = `sayHi() 返回的結(jié)果是=${sayHi(name2)}`;
console.log("str5=", str5);
console.log("str6=", str6);
段落5:箭頭函數(shù) ??
ES6中的箭頭函數(shù)是一種更簡(jiǎn)潔的函數(shù)聲明方式,提供了更短的語(yǔ)法。它不僅讓我們的代碼看起來(lái)更加簡(jiǎn)潔,還改變了this的指向,解決了傳統(tǒng)函數(shù)中this指向問(wèn)題。箭頭函數(shù)通常被用于回調(diào)函數(shù)、迭代器和簡(jiǎn)單的函數(shù)定義。??
讓我們看一個(gè)例子:
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map((num) => num * 2);
console.log(doubledNumbers); // 輸出 [2, 4, 6, 8, 10]
在上面的代碼中,我們使用箭頭函數(shù)作為map方法的參數(shù)來(lái)對(duì)數(shù)組中的每個(gè)元素進(jìn)行處理,將其乘以2。通過(guò)簡(jiǎn)潔的語(yǔ)法,我們可以更方便地定義匿名函數(shù),使得代碼更加緊湊和可讀性更高。這種函數(shù)的聲明方式讓我們的開(kāi)發(fā)變得更加高效和靈活!??
??總結(jié) :?
希望通過(guò)本文的介紹,你對(duì)ES6的基本特性有了更深刻的了解。記住,掌握這些語(yǔ)法糖和新特性將為你的開(kāi)發(fā)之路帶來(lái)巨大的便利和樂(lè)趣。為了更好地適應(yīng)現(xiàn)代Web開(kāi)發(fā)的需求,不斷學(xué)習(xí)和探索是非常重要的。感謝大家的閱讀,希望本文能對(duì)你有所幫助!如果你有任何問(wèn)題或者更多的建議,歡迎在評(píng)論區(qū)留言,我會(huì)盡快回復(fù)。再見(jiàn)!??文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-691677.html
邊境矢夢(mèng)°_Java,數(shù)據(jù)結(jié)構(gòu)與算法,數(shù)據(jù)庫(kù)-CSDN博客https://blog.csdn.net/dandelionl_?type=blog文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-691677.html
到了這里,關(guān)于ES6 新特性的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!