上的文章和教程很多,有經驗的人能夠根據他人的資料制定出屬于自己的學習方法和路徑,但對于小白來說,還是有些難度。所以我寫了這篇文章,結合個人學習前端的經歷。針對0基礎,非科班,沒有編程經驗,想學前端,但是不知道如何入門的人群。
結合個人經歷總結的前端入門方法,總結從零基礎到具備前端基本技能的道路、學習方法、資料。由于能力有限,不能保證面面俱到,只是作為入門參考,面向初學者,讓初學者少走彎路。
前端也是編程,和計算機原理是分不開干系的。因此在學習前端之前,最好先大致了解一下,不需要有多深入??催@幾本書就行:
這個前端工程師知識圖譜很全面,達到這個程度已經是3-5年程度了,但是新手可能看不懂。沒關系,大致瀏覽一遍里面的每個名詞,然后跳到第三部分“制定計劃”
這是阿里云大學的《前端開發學習路線》[6]課程,是我綜合了中國慕課網、黑馬程序員、網易公開課、網易課堂、騰訊課堂 、慕課網、coursera等各個課程機構得出來最好的課程。非常適合新手小白一站式入門前端。
學習計劃以此為準,可入門看懂代碼。在此基礎上,輔以書籍,便可進階。再然后,就靠實戰做項目積累經驗了。
書籍推薦依次是:
筆者經歷到此,正在前進中,共勉。
最后給點建議,讀者在學習前端的時候,可能會陷入一個誤區:
過于沉浸在獲取資訊之中,以為自己看了這些,就能快速成為前端大神了。卻沒有下苦功夫對照課程去動手一行一行地敲代碼。
這是本末倒置。
誠然,相比于枯燥的看書學課敲代碼,看資訊是輕松且容易讓人滿足的,人心肯定會傾向做簡單快樂的事情。但你想,一個人是踏踏實實敲1年代碼之后獲得的成就高,還是漂浮在表面看1年文章之后獲得的成就高?
再舉個例子。王麻子寫博客,看了1年的教你如何寫博客教程,才開始動筆去寫。張二蛋寫博客,把情況了解個大概后,每天就固定保持一篇原創。結果是,1年下來王麻子啥事都沒干成,卻以為自己思維得到了提升,飄在天上。而張二蛋1年下來卻寫了整整365篇原創文章,已然獲得了不小的成就。
這便是術與道。
寫代碼是術,看教程是道。年輕人,先要有術,術練扎實了,道自然就從心中來了。倘若看不清楚,先追求宏觀的大道,卻沒有扎實的術作為基礎,那這就很危險,如樂高積木堆的樓,一碰就倒。練武之前,先扎馬步,也是這個道理。
大道至簡,悟在天成。復雜的事情簡單做,簡單的事情重復做,重復的事情用心做。寫自媒體也是一樣,沒有成功的捷徑,就是寫文章,其他什么引流、什么運營都是表面,只是錦上添花。引流和運營得有土壤才能結果,這個土壤便是你的文章。
每天1篇,堅持寫5年,你就成功了。道理永遠這么簡單。許多人一輩子只停留在知道,卻永遠也悟不透。所以,他們寫不了5年。
日拱一卒,功不唐捐。全情投入,愿等花開。
[1]《計算機是怎樣跑起來的》: https://book.douban.com/subject/26397183/
[2] 《程序是怎樣跑起來的》: https://book.douban.com/subject/26365491/
[3] 《深入了解計算機系統》:https://book.douban.com/subject/26912767/
[4] 《Github入門與實踐》:https://book.douban.com/subject/26462816/
[5] 《樹莓派開始,玩轉Linux》: https://book.douban.com/subject/30259573/
[6] 《前端開發學習路線》: https://edu.aliyun.com/roadmap/frontend?spm=5176.13345299.1392477.6.4520f153AYCZWC
[7] 《HTML & CSS設計與構建網站》: https://book.douban.com/subject/21338365/
[8] 《HTML5秘籍》:https://book.douban.com/subject/11610880/
[9]《CSS 實戰手冊》: https://book.douban.com/subject/26898555/
[10]《CSS權威指南》: https://book.douban.com/subject/33398314/
[11] 《javascript高級程序設計》:https://book.douban.com/subject/10546125/
[12] 《javascript權威指南》: https://book.douban.com/subject/10549733/
[13] 《HTTP權威指南》:https://book.douban.com/subject/10746113/
第二代Web世界導航,互聯網人必備
第一代Web世界導航,互聯網人必備
武漢肺炎,怎么辦?
語雀=新的紅利?
廣告巨頭,字節跳動
麻雀通訊每天發布一篇文章,類型是科技、互聯網與生活。點擊文章頂部“關注”,即可訂閱。
當初笨拙地用記事本鍵入從新華書店偷偷抄來的代碼寫的第一張 HTML 網頁開始,到現在用上最先進的 HTML5、CSS3 以及其它如 jQeury 等各種各樣成熟的 WEB 前端技術,不覺間已經 11 年了。一路走來,經歷了 HTML 還沒有區分結構層和表現層、大量使用 Table 嵌套布局的時代。繼而 CSS 神一般地出現,卸下 HTML 充當表現層的重擔,成為 WEB 前端開發新標準的時代。到現在隨著 HTML5 和 CSS3 技術日趨成熟,進入響應式 WEB 前端技術應用的新時代。雖然技術的發展總是在不斷更新,但學習方法卻并沒發生多大的改變。作為一名新手,找到一本把你引入一條正確的學習路徑、幫你愉快入門的好書是十分必要的。
猶記得當初資料匱乏,只能靠扒文檔和悟性不斷試錯摸索,每當被一個問題難到時,總期待有一位大神能出手相助,但到最后才發現,能真正幫到你的只有你自己。而提升自己技術能力的最有效手段就是讀書??赡苣銜f看一些技術文檔或網友的博客分享也不錯呀,但這種學習方法的缺點是很明顯的。比如對于遇到的某些問題可能當時根據別人提供的現成方案解決了,卻少了系統性的學習才能對知識點的消化,當下次再遇到同樣問題時,難免需要再次返回來尋找解決方法。就像編程中的“黑匣子”,不吃透它,它總會來煩你。下面是筆者精選出的一些 WEB 前端技術書籍,希望對做著相關工作或對此感興趣的小伙伴有所幫助。
目錄
一、《CSS 設計指南(第 3 版)》
二、《響應式 Web 設計 — HTML5 和 CSS3 實戰》
三、《CSS 禪意花園(修訂版)》
四、《jQuery 基礎教程(第4版)》
五、《JavaScript 權威指南(第6版)》
六、《JavaScript高級程序設計(第3版)》
七、《HTML5 秘籍》
一、《CSS 設計指南(第 3 版)》
作者:[英] Charles Wyke-Smith
譯者:李松峰
評分:8.8
《圖靈程序設計叢書:CSS設計指南(第3版)》是一本面向初中級讀者的經典設計指南。全書共分8章,前4章分別介紹了HTML標記和文檔結構、CSS工作原理、定位元素、字體和文本,對規則、聲明、層疊、特指度、選擇符等基本概念進行了詳細解讀。隨后4章介紹了頁面布局、界面組件,CSS3圓角、陰影、漸變、多背景等視覺設計技巧,最后還對如何實現最前沿的響應式設計進行了通俗易懂的演示。
花三天讀了一遍,發現這是至今為止我看過的寫得最好的一本講 CSS 的書。這本書對新手來說,能循序漸進,漸入佳境;對老手來說,能系統梳理,打掃死角。會寫 CSS 不難,難的是寫聰明的 CSS。這本書從最基礎的知識點開始,直至擴展到響應式技術的應用,該說的都說透了,理論加實踐,非常棒,強烈推薦。
二、《響應式 Web 設計 — HTML5 和 CSS3 實戰》
作者:[英] Ben Frain
譯者:王永強
評分:7.3
本書堪稱學習響應式 Web 設計的難得佳作。它不僅全面、細致、圖文并茂地介紹了響應式設計相關的技術,比如媒體查詢、流式布局、彈性媒體和彈性字體等,還把近幾年來 Web 設計領域公認的最佳設計理念有機地融入到了實例當中,比如移動先行(Mobile First)、漸進增強、平穩退化、無障礙設計等。更加難得的是,本書以設計跨屏幕的網頁(響應式設計)為出發點,以點帶面,把如今 Web 設計領域兩大標準的最新版本 HTML5 和 CSS3 也納入其中,讀者在掌握先進設計方法的同時也能掌握最新的設計技術(比如使用新的 HTML5 結構化語義標記、嵌入媒體、響應式視頻,以及 CSS3 的新選擇器、特效、過渡、變形和動畫等),從而可以免除重復學習新標準之苦,讓自己一步跨入 Web 設計領域的最前沿。無論你想學習響應式 Web 設計,還是學習 HTML5 和 CSS3 的實際應用,本書都能滿足你的需要,是毋庸置疑的明智之選。
說到底,響應式 Web 設計并非一門獨立的技術,而只是現有技術的一個組合應用。只要有一點 HTML 和 CSS 基礎的讀者都能順利地掌握它。對于中、高級的前端設計和開發人員,翻閱本書也有助于理清自己的知識脈絡,對這個新的設計理念獲得更全面、深入的理解和把握。
三、《CSS 禪意花園(修訂版)》
作者:[美] Dave Shea / Molly E. Holzschlag
譯者:陳黎夫 / 山崺颋
評分:7.8
這本書的作者是世界著名的網站設計師,書中的范例來自網站設計領域最著名的網站——CSS Zen Garden(CSS 禪意花園)。全書分為兩個主要部分。第 1 章為第一部分,討論網站“CSS 禪意花園”及其最基本的主題,包含正確的標記結構和靈活性規劃等。第二部分包括 6 章,占據了書中的大部分篇幅。每章剖析“CSS 禪意花園”收錄的 6 件設計作品,這些作品圍繞一個主要的設計概念展開,如文字的使用等。通過探索 36 件設計作品面臨的挑戰和解決的問題,讀者將洞悉主要的 Web 設計原則以及它們運用的 CSS 布局技巧,理解 CSS 設計的精髓,恰當地處理圖形和字體來創建界面優美、性能優良且具有強大生命力的網站。
嚴格意義上說,這不是一本教你怎樣使用 CSS 的書,更多傾向于 CSS 應用思想的剖析,換句話說就是怎樣更聰明的利用 CSS 對 Web 進行布局設計。如果上面那些是屬于 CSS 之“術”,那這本書應該屬于 CSS 之“道”,這也是書名中帶“禪意”的原由。
四、《jQuery 基礎教程(第4版)》
作者:[美] Jonathan Chaffer / Karl Swedberg
譯者:李松峰
評分:8.9
本書由 jQuery API 網站維護者親自撰寫,第一版自 2008 上市以來,一版再版,累計重印 14 次,是國內首屈一指的 jQuery 經典著作!作為最新升級版,本書涵蓋 jQuery 1.10.x 和 jQuery 2.0.x。本書前 6 章以通俗易懂的方式講解了 jQuery 的核心組件,包括 jQuery 的選擇符、事件、動畫、DOM 操作、Ajax 支持等。第7章和第8章介紹了 jQuery UI、jQuery Mobile 及利用 jQuery 強大的擴展能力開發自定義插件。隨后的幾章更加深入地探討了jQuery 的各種特性及一些高級技術。附錄 A 特別講解了 JavaScript 中閉包的概念,以及如何在 jQuery 中有效地使用閉包。附錄B講解了使用 QUnit 測試 JavaScript 代碼的必備知識。附錄 C 給出了 jQuery API 的快速參考。
眼尖的小伙伴可能看出來了,這本書的譯者就是前面推薦的《CSS 設計指南(第 3 版)》的譯者,翻譯質量上成,這在技術類書籍里是十分難得的,如果你碰到那種翻譯的半生不熟的技術類書籍,那種痛苦真的是痛不如死,比如《眾妙之門》系列的翻譯。相信讀完這本書,你對 jQuery 的理解和應用都會再上一個臺階。
五、《JavaScript 權威指南(第6版)》
作者:David Flanagan
譯者:淘寶前端團隊
評分:8.9
本書是程序員學習核心 JavaScript 語言和由 Web 瀏覽器定義的 JavaScript API 的指南和綜合參考手冊。第 6 版涵蓋 HTML 5 和 ECMAScript 5。很多章節完全重寫,以便與時俱進,緊跟當今的最佳 Web 開發實踐。本書新增章節描述了 jQuery 和服務器端 JavaScript。本書適合那些希望學習 Web 編程語言的初、中級程序員和希望精通 JavaScript 的 JavaScript 程序員閱讀。
這是一本經典的大部頭著作,放在床邊既可以隨手翻看,又可以困了當枕頭,開個玩笑。這本書的經典就不用說了,雖然看起來望而生畏,但只要把它當做一本字典,就會減輕你你因為讀不完而產生內疚感的心理負擔。雖然有很好用的 jQuery 之類的 JS 庫,但理解 javascript 的運作原理以及相關應用方法還是很有必要的。
六、《JavaScript高級程序設計(第3版)》
作者:[美] Nicholas C. Zakas
譯者:李松峰 / 曹力
評分:9.3
本書是 JavaScript 超級暢銷書的最新版。ECMAScript5 和 HTML5 在標準之爭中雙雙勝出,使大量專有實現和客戶端擴展正式進入規范,同時也為 JavaScript 增添了很多適應未來發展的新特性。本書這一版除增加5 章全新內容外,其他章節也有較大幅度的增補和修訂,新內容篇幅約占三分之一。全書從 JavaScript 語言實現的各個組成部分——語言核心、DOM、BOM、事件模型講起,深入淺出地探討了面向對象編程、Ajax 與 Comet 服務器端通信,HTML5 表單、媒體、Canvas(包括 WebGL)及Web Workers、地理定位、跨文檔傳遞消息、客戶端存儲(包括 IndexedDB)等新 API,還介紹了離線應用和與維護、性能、部署相關的最佳開發實踐。本書附錄展望了未來的 API 和ECMAScript Harmony 規范。
七、《HTML5 秘籍》
作者:Matthew MacDonald
譯者:李松峰 / 朱巍
評分:8.4
《HTML5 秘籍》共包括四個部分,共12章。第一部分介紹了 HTML5 的發展歷程,利用 HTML5 重新構造網頁,以及 HTML5 的語義元素。第二部分介紹了 HTML5 對傳統 Web 表單的翻新、HTML5 中的音頻與視頻、Canvas 繪圖技術、CSS3 等內容。第三部分介紹了數據存儲、離線應用、與 Web 服務器通信,以及 HTML5 與 JavaScript 技術的強大結合等內容。第四部分為附錄,簡單介紹了 CSS 和 JavaScript。
古人云:書讀百遍,其義自見。話雖不錯,但對于技術類書籍僅僅是“讀”是遠遠不夠的,更多是需要動手“做”,系統的理論知識加上一雙巧手才能把代碼化腐朽為神奇,創作出一個個精彩的 Web 作品。希望以上這些上乘之作能夠帶你進入奇妙的 Web 前端世界,用你的雙手給更多的人帶來更好的頁面瀏覽和交互體驗。與君共勉。
如果您也有好的 WEB 前端技術類電子書推薦,歡迎留言推薦。
大且廣受歡迎的編程語言 JavaScript 具有龐大的內置函數庫,可用于執行各種任務。
本文涵蓋了每個開發人員都應該知道的 15 個 JavaScript 特性。無論您是新手還是經驗豐富的開發人員,這些功能都會派上用場。那么,讓我們來討論一下這 15 個重要的 JavaScript 特性。
要在 JavaScript中多次重復一個字符串,您可以使用普通方法或速記方法。
您可以使用循環多次重復一個字符串。
以下是如何使用for循環執行此操作的示例:
function repeatString ( string , num ) {
let result='' ;
for ( let i=0 ; i < num; i++) {
結果 +=字符串;
}
返回結果;
}
console.log ( repeatString ( '你好' , 5 ));
// 輸出:"HelloHelloHelloHelloHello"
在速記方法中,我們使用該repeat()方法多次重復一個字符串。
repeat()僅支持現代瀏覽器,因此您必須使用普通方法來支持舊瀏覽器。
console.log('你好'。重復(5));
// 輸出:"HelloHelloHelloHelloHello"
在 JavaScript 中,您可以使用普通方法和快捷方法來合并兩個或多個數組。
以下是如何使用for循環執行此操作的示例:
讓array1=[ 10 , 20 , 30 ];
讓array2=[ 40 , 50 , 60 ];
讓mergedArray=[];
for ( let i=0 ; i < array1.length ; i++) {
mergedArray. 推(array1[i]);
}
for ( let i=0 ; i < array2.length ; i++) {
mergedArray. 推(array2[i]);
}
控制臺。日志(合并數組);
// 輸出:[10, 20, 30, 40, 50, 60]
對于速記,您可以使用concat()、...和reduce()方法。concat()and方法通過...將第二個數組的元素附加到第一個數組的末尾來組合兩個或多個數組的元素。
以下是如何使用contact(),...方法的示例:
// concat()
讓array1=[ 10 , 20 , 30 ];
讓array2=[ 40 , 50 , 60 ];
讓mergedArray=array1。連接(數組 2);
控制臺。日志(合并數組); // 輸出:[10, 20, 30, 40, 50, 60]
// ...
let array1=[ 10 , 20 , 30 ];
讓array2=[ 40 , 50 , 60 ];
讓mergedArray=[...array1, ...array2];
控制臺。日志(合并數組); // 輸出:[10, 20, 30, 40, 50, 60]
如果您想以不同的方式組合數組,可以使用reduce()方法。
// reduce()
let array1=[ 10 , 20 , 30 ];
讓array2=[ 40 , 50 , 60 ];
讓mergedArray=array1。reduce ( ( acc, val )=> acc.concat (val), array2);
控制臺。日志(合并數組); // 輸出:[40, 50, 60, 10, 20, 30]
您可以通過 3 種不同的方式找到函數接受的參數數量。
根據函數定義中命名參數的數量,函數的length屬性返回函數期望接收的參數數量。
function myFunction ( a, b, c ) {
// 函數體
}
console . 日志(myFunction.length ); // 輸出:3
傳遞給函數的參數存儲在一個名為 的對象中argument,它看起來像一個數組。使用length參數對象的屬性,您可以找出有多少參數傳遞給函數。
由于對象arguments不是真正的數組,因此并非所有數組方法都可以訪問。如果您希望在對象上使用數組方法,請使用該Array.from()函數將arguments對象轉換為實際數組。
函數 myFunction(a, b, c) {myFunction (a, b, c) {
console .log (arguments.length); // 輸出:3
}
myFunction ( 1 , 2 , 3 );
您不能使用該arguments對象來計算函數期望從函數外部獲得多少參數,因為它只能在函數內部訪問。length然后需要使用該屬性,就像在方法 1 中一樣。
JavaScript 提供了幾種類型的循環來重復重復代碼塊。
一些常用的循環示例是:
自增或自減表達式、循環條件和 for 循環的變量是它的三個主要部分。只要條件為真,循環就會一直運行。
從 1 計數到 5 的 for 循環示例:
for (讓i=1 ; i <=5 ; i++) {
console.log(一);
}
輸出:
1
2
3
4
5
您可以使用循環遍歷對象的屬性for-in。
在此示例中,我們使用循環遍歷對象的屬性for-in。
例子:
讓對象={a: 1, b: 2, c: 3}; 對象={a: 1 , b: 2 , c: 3 };
for (let property in object ) {
console.log( property + ": " + object [ property ]);
}
輸出:
一個:1
乙:2
丙:3
如果可迭代對象是數組或字符串,您可以使用for-of循環來迭代這些值。
for-of使用循環迭代元素數組:
讓數組=[ 1 , 2 , 3 ];
for ( let數組元素) {
console . 日志(元素);
}
輸出:
1
2
3
您可以使用該split方法在 JavaScript 中將字符串轉換為數組。此方法使用分隔符字符串或正則表達式將字符串拆分為子字符串。
以下示例顯示如何使用 方法將字符串轉換為數組split:
let string="apple,banana,orange"; string="蘋果、香蕉、橘子" ;
let array=string .split( "," );
安慰。日志(數組);// 打印 [ "apple" , "banana" , "orange" ]
使用速記方法,您可以獲得相同的結果:
let string="apple,banana,orange"; string="蘋果、香蕉、橘子" ;
let array=[... string .split( "," )];
安慰。日志(數組);// 打印 [ "apple" , "banana" , "orange" ]
您可以使用for loop. 使用此方法,您可以通過將每個字符推入其自己的數組來將字符串轉換為數組。
一個例子是:
let string="apple,banana,orange"; string="蘋果、香蕉、橘子" ;
讓數組=[];
for (let i=0 ; i < string .length; i++) {
array.push( string [i]);
}
控制臺。日志(數組);// 打印 [ "a" , "p" , "p" , "l" , "e" , "," , "b" , "a" , "n" , "a" , "n" , "a " , ", ", "n" , "g" , "e" ]
在此方法中,不是將字符串拆分為子字符串,而是字符串的每個字符都是數組中的一個單獨元素。split 方法允許您根據分隔符分隔字符串,如前兩個示例所示。
您可以使用下面的 JavaScript 示例查找數組中的最大數和最小數。
速寫:
// 找出數組中的最大數
const array=[ 3 , 7 , 1 , 9 , 2 , 5 ];
讓 maxNumber=array [ 0 ];
for (let i=1 ; i < array .length; i++) {
if ( array [i] > maxNumber) {
maxNumber=array [i]; }
}
}
控制臺。日志(最大數量); // 輸出:9
// 找到數組中的最小數
const array=[ 3 , 7 , 1 , 9 , 2 , 5 ];
讓 minNumber=array [ 0 ];
for (let i=1 ; i < array .length; i++) {
if ( array [i] < minNumber) {
minNumber=array [i]; }
}
}
控制臺。日志(最小數量); // 輸出:1
使用Math.max()and Math.min(),您可以輕松計算最大值或最小值:
// 找出數組中的最大數
const array=[ 3 , 7 , 1 , 9 , 2 , 5 ];
常數maxNumber=數學。最大值(...數組);
控制臺。日志(最大數量); // 輸出:9
// 找到數組中的最小數
const array=[ 3 , 7 , 1 , 9 , 2 , 5 ];
const minNumber=數學。分鐘(...數組);
控制臺。日志(最小數量); // 輸出:1
要在 JavaScript 中將字符串轉換為數字,有幾種方法。
使用parseInt()或parseFloat()功能:
// 將字符串轉換為整數
const num1="42" ;
const num2=parseInt (num1); // num2 現在是值為 42 的數字類型
// 將字符串轉換為浮點數
const num3="3.14" ;
const num4=parseFloat (num3); // num4 現在是數字類型,值為 3.14
使用一元加運算符(+):
// 將字符串轉換為數字
const num1="42" ;
常量num2=+num1; // num2 現在是值為 42 的數字類型
// 將字符串轉換為負數
const num3="-42" ;
常量num4=+num3; // num4 現在是數字類型,值為 -42
JavaScript 提供了普通函數和速記函數來為多個變量賦值:
使用單獨的賦值語句方法:
讓x;
讓你;
讓z;
x=1;
y=2;
z=3;
解構賦值簡寫法:
讓x, y, z;
[ x, y, z ]=[ 1 , 2 , 3 ];
解構賦值也可用于從對象分配變量:
const obj={ a : 1 , b : 2 , c : 3 };
設a、b、c;
({a, b, c}=對象);
在 JavaScript 中有幾種方法可以計算一個數的指數冪。這里有些例子:
function power ( base, exponent ) {
讓結果=1 ;
for ( let i=0 ; i < exponent; i++) {
結果 *=base;
}
返回結果;
}
控制臺。日志(功率( 2 , 3 )); // 輸出:8
使用Math.pow()功能:
函數 冪(基數,指數){
返回 數學。pow(基數,指數);
}
控制臺。日志(功率( 2 , 3 )); // 輸出:8
此外,您還可以使用求冪運算符 ( **) 求出數字的指數冪:
常量 基礎=2 ;
常量指數=3 ;
常量結果=基數** 指數; // 結果現在是 8
在 ( ~~) 運算符的幫助下,您可以將數字四舍五入為最接近的整數。
const num=3.14 ;
const roundedNum=~~num; // roundedNum 現在是 3
您可以使用 ( ~~) 運算符代替Math.floor().
const num=3.14 ;
const roundedNum=數學。樓層(數量); // roundedNum 現在是 3
您還可以使用 ( ~~) 將非整數值轉換為整數。
const num="3.14" ;
const intNum=~~num; // intNum 現在是 3
這類似于使用parseInt()函數:
const num="3.14" ;
const intNum=parseInt (num); // intNum 現在是 3
在 JavaScript 中,您可以通過不同的方式為函數參數分配默認值。
函數 問候(名稱){
名稱=名稱|| '匿名' ;
控制臺。日志(`你好,${name}!`);
}
在上面的示例中,name參數的默認值為'Anonymous'。name如果調用函數時沒有為參數傳遞值greet,它將使用默認值。
功能 問候(名稱='匿名'){
控制臺。日志(`你好,${name}!`);
}
在此示例中,參數的默認值是使用語法name在函數定義中直接指定的。如果調用函數時沒有為參數=傳遞值,它將使用默認值。name``greet
它也被稱為條件運算符或三元條件運算符。
JavaScript 中三元運算符的語法是:
健康)狀況 ?value_if_true : value_if_false;
您可以使用 if-else 語句獲得與三元運算符相同的結果。
讓x=10 ;
讓y=20 ;
如果(x > y) {
最大值=x;
} else {
最大值=y;
}
控制臺。日志(最大值); // 輸出 20
在下面的示例中,我們將使用 JavaScript 三元運算符:
讓x=10 ;
讓y=20 ;
讓maxValue=(x > y) ? x:y;
控制臺。日志(最大值); // 輸出 20
在此示例中,條件x > y被評估為false,因此 的值y被分配給maxValue。如果條件為true,x則將分配給的值maxValue。
三元運算符有助于在單行代碼中表達條件邏輯,盡管它比 if-else 形式更難閱讀和理解。
當條件邏輯變得更加復雜時,使用三元運算符是個好主意。
在 JavaScript 中,要交換兩個變量的值,可以使用不同的方法。
這里有些例子:
讓x=1;
讓y=2;
讓溫度=x;
x=y;
y=溫度;
在上面的示例中,我們創建了一個臨時變量(temp)來存儲 x 的值,然后將 x 的值賦給 y 的值,將 y 的值賦給 temp。
讓x=1 ;
讓y=2 ;
[ x, y ]=[y, x];
在此示例中,使用解構賦值方法交換 x 和 y 的值。您可以使用解構賦值將變量分配給數組或對象的元素。無需臨時變量,它可以成為交換值的便捷方式。
如果使用任何一種方法,x 將為 2,y 將為 1。
有幾種不同的方法可以在 JavaScript 中檢查多個條件。
這里有幾個選項:
此運算符允許您檢查多個條件是否為真。
例如:
if (x > 0 && y < 10) {0 && y < 10 ) {
// 執行一些代碼
}
如果兩個條件(x > 0 和 y < 10)都為真,這將只執行 if 語句中的代碼。
此運算符允許您檢查多個條件中是否至少有一個為真。
例如:
if (x===1 || x===2 || x===3) {1 || x===2 || x===3 ) {
// 執行一些代碼
}
如果 x 等于 1、2 或 3,這將執行 if 語句中的代碼。
這允許您檢查多個條件并根據給定表達式的值執行不同的代碼塊。例如:
switch (x) {
case 1 :
// 執行一些代碼
break ;
case 2 :
// 執行一些代碼
break ;
case 3 :
// 執行一些代碼
break ;
default :
// 執行一些代碼
}
這將執行 case 塊內匹配 x 值的代碼。如果所有情況都不匹配,則將執行 default 塊內的代碼。
請務必注意,&&and||運算符具有特定的優先順序,因此您可能需要使用括號以您想要的方式對條件進行分組。
您可以使用 Array.prototype.include() 方法檢查 JavaScript 中的多個條件。
例子:
常數值=2 ;
if ([ 1 , 'one ', 2 , 'two '] .includes (value)) {
控制臺。log ( '該值為1、"one"、2或"two" ');
} else {
控制臺。log ( '該值不是1、"one"、2或"two" ');
}
// 輸出:值為 1、“one”、2、
該Array.prototype.include() the函數檢查值是否存在。如果存在該值,則 if 塊內的代碼將在上面的示例中運行。如果找不到該值,將執行 else 塊中的代碼。
delete 運算符允許您從對象中刪除多個屬性。
以下面為例:
讓obj={
prop1 : 'value1' ,
prop2 : 'value2' ,
prop3 : 'value3' ,
prop4 : 'value4'
};
刪除對象。支柱1;
刪除對象。支柱 3 ;
控制臺。日志(對象); // 輸出 { prop2: 'value2', prop4: 'value4' }
或者,您可以使用該Object.assign()方法創建一個刪除了所需屬性的新對象。
例子:
讓obj={
prop1 : 'value1' ,
prop2 : 'value2' ,
prop3 : 'value3' ,
prop4 : 'value4'
};
讓newObj=對象。分配({},對象);
刪除新對象。支柱1;
刪除新對象。支柱 3 ;
控制臺。日志(新對象); // 輸出 { prop2: 'value2', prop4: 'value4' }
在現代 JavaScript(ES6 及更高版本)中,您可以使用Object.entries()和Object.fromEntries()方法從對象中刪除多個屬性。
例子:
讓obj={
prop1 : 'value1' ,
prop2 : 'value2' ,
prop3 : 'value3' ,
prop4 : 'value4'
};
讓newObj=對象。fromEntries (
Object . entries (obj). filter ( ( [key] )=> key !=='prop1' && key !=='prop3' )
);
控制臺。日志(新對象); // 輸出 { prop2: 'value2', prop4: 'value4' }
如果對你有幫助,記得點贊支持哦,目前我們的系統班正在講解JavaScript正則表達式,這個課程講完系統班的JavaScript階段就算完結了,正式開始進入ES6階段了,這幾個月我們在JavaScript課程中融入了大量的面試題、算法以及底層原理知識,目的就是為了幫助大家夯實基礎,查漏補缺,有 扎實的JavaScript基礎,對于學到后面階段更加有幫助!這也是2023年通向職業道路,面試求職必須要懂得的技術能力!感興趣可以聯系我參與!
為了更好的讓大家認識到JavaScript的精髓,我們在三十天計劃群里推出了幾節非常重要的JavaScript課程體系,而且每個系列知識點都保障是完整的。感興趣可以通過下方的練習方式參與課程哦 。如果你正在學習JavaScript,我們已經在三十天計劃中完成了4個綜合項目實戰,那不妨可以聽下這個課程體系,三十天計劃群里還提供了算法、數組等知識體系!
更多完整 JavaScript 課程體系在我們的系統班里有完整的呈現,包含了 JavaScript 基礎篇、重點、算法、原理、面試題、實戰案例講解!同時也為你提供了前端高級工程師成長體系!(詳細看下圖內容)
如果需要深度學習的同學可以聯系助理老師了解詳細的課程以及課程的報名方式!(不定期會推出活動,有大額優惠券推出,活動詳情聯系助理老師了解即可?。┤绻悴砰_始學習前端,那么可以先學習我們的三十天計劃(零基礎的同學報名系統班同學可以和老師溝通制定學習計劃,可以得到更快的成長?。?/span>
為幫助到一部分同學不走彎路,真正達到一線互聯網大廠前端項目研發要求,首次實力寵粉,打造了《30天挑戰學習計劃》,內容如下:
HTML/HTML5,CSS/CSS3,JavaScript,真實企業項目開發,云服務器部署上線,從入門到精通
共4大完整的項目開發 !一行一行代碼帶領實踐開發,實際企業開發怎么做我們就是怎么做。從學習一開始就進入工作狀態,省得浪費時間。
從學習一開始就同步使用 Git 進行項目代碼的版本的管理,Markdown 記錄學習筆記,包括真實大廠項目的開發標準和設計規范,命名規范,項目代碼規范,SEO優化規范
從藍湖UI設計稿 到 PC端,移動端,多端響應式開發項目開發
這些內容在《30天挑戰學習計劃》中每一個細節都有講到,包含視頻+圖文教程+項目資料素材等。只為實力寵粉,真正一次掌握企業項目開發必備技能,不走彎路 !
過程中【不涉及】任何費用和利益,非誠勿擾 。
如果你沒有添加助理老師微信,可以添加下方微信,說明要參加30天挑戰學習計劃,來自!老師會邀請你進入學習,并給你發放相關資料。
30 天挑戰學習計劃 Web 前端從入門到實戰 | arry老師的博客-艾編程
*請認真填寫需求信息,我們會在24小時內與您取得聯系。