這是一本講解JavaScript程式語言的技術書籍,只不過,本書採用了一種全新的寫作手法。
如果你厭倦了厚厚的、如同字典般的程式設計書籍,不妨嘗試一下新的口味!
透過本書,你可以領悟到JavaScript的函式七重關秘籍;透過本書,你可以輕鬆學會使用jQuery作DOM物件;透過本書,你可以學會目前流行的Vue基礎語法;透過本書,你還可以學會新的ES6常用語法。
本書可作為JavaScript初學者入門的趣味讀物。
目錄
第1章 。 掌握JavaScript基礎1
1。1初入宗門1
1。2直接量2
1。3變數的宣告3
1。4資料型別4
1。5基礎考核5
1。6葉老6
1。7物件資料型別8
1。8物件的取值11
1。9迴圈遍歷的奧妙13
1。10物件內容的遍歷17
1。11外門小比20
1。12JavaScript運算子21
1。13語驚座26
1。14秀27
1。15天秀29
1。16陣列方法32
1。17蒂花之秀37
1。18函式七重關之一(函式定義)38
1。19JavaScript編譯原理42
1。20函式七重關之二(作用域)46
1。21函式七重關之三(引數傳遞)51
1。22函式七重關之(閉包)58
1。23函式七重關之五(自執行函式)62
1。24函式七重關之六(“new”一個函式)64
1。25函式七重關之七(回撥函式)70
第2章 。 基礎考核73
2。1趙牛73
2。2林濤74
2。3變數和簡單資料型別76
2。4精度問題80
2。5化浮為整83
2。6函式的三大要義85
2。7add函式完成87
2。8函式除錯90
2。9indeOf方法93
2。10replace方法97
2。11重新開始99
第3章 。 jQuery和DOM105
3。1預備知識105
3。1。1HTML基本結構105
3。1。2建立一個HTML檔案108
3。1。3HTML排版標籤109
3。1。4圖片標籤113
3。1。5連結標籤114
3。1。6table標籤115
3。1。7表單元素121
3。1。8CSS基礎127
3。1。9jQuery簡介133
3。2簡南136
3。3jQuery選擇器137
3。4使用jQuery作DOM146
3。4。1查詢元素146
3。4。2查詢屬性148
3。4。3鏈式呼叫150
3。4。4創造新的元素153
3。4。5刪除和隱藏節點159
3。4。6jQuery作屬性161
3。4。7內容作163
3。4。8遍歷和尋找節點170
第4章 。 Vue的妙處173
4。1我要去做任務173
4。2壯士出征175
4。3Vue資料繫結175
4。4Vue第一式——簡單資料繫結179
4。5Vue第二式——靈活有趣的事件繫結186
4。5。1v-on監聽事件186
4。5。2處理事件冒泡189
4。6Vue第三式——條件語句192
4。7Vue第四式——迴圈語句197
4。8Vue第五式——屬性繫結200
4。9Vue第六式——Vue元件開發201
4。10Vue第七式——計算屬性211
4。11Vue第八式——監聽屬性213
4。12Vue第九式——過濾器217
4。13葉小凡的戰果220
第5章 。 Vue cli專案223
5。1Nodejs安裝223
5。2使用npm釋出模組224
5。3使用npm安裝模組229
5。4使用Vue-cli搭建專案231
第6章 。 ES6語法238
6。1全新的變數定義238
6。2變數的解構賦值239
6。3字串升級242
6。4Proxy代理243
6。5強化後的陣列245
6。5。1快速構建新陣列245
6。5。2新的陣列方法246
6。5。3陣列複製246
6。6強化後的函式247
6。7更加靈活多變的物件251
6。8promise物件和async函式252
後記256
試讀:1初入宗門樂陽村,處於指令碼大陸東部的邊緣地帶,民風淳樸,村名日出而作,日落而息。這一日清晨,所有村民來到村莊的門口,正在為一個十五六歲的少年送別。只見那少年雖然身體瘦弱,可是目中綻放出異彩,身軀雖不壯實,倒也挺拔。
“葉小凡,你是我們全村人的驕傲,百年來唯一一個具備修行JavaScript甲等資質的孩子!馬上會有千鶴派的大人來接你,今後你一定要認真修行,給我們全村的人爭光!”
他叫葉小凡,幾天前通過了修行資質的檢驗,符合修行JavaScript的資質。
“千鶴派!”葉小凡眼前一亮,語氣中伴隨著激動,兩眼放光。千鶴派,在指令碼大陸,已是數一數二的大門派,每一個宗門弟子都能夠修煉一種神奇的功法——JavaScript,修成之後,威力之大,足以翻山倒海,稱霸一方天地!
不多時,天氣風雲變化,一道長虹降下,瞬間變為一人。他身穿一件玄青色玉錦衣服,腰間綁著一根白色蟠離紋革帶,一頭黑髮如雲髮絲,有著一雙清澈明亮的眼眸,身形頎長,當真是氣宇軒昂溫文爾雅。
“你就是葉小凡?”男子淡淡開口,神識一掃,驚訝地發現,此子的修行資質竟為甲等,眼中閃過一絲驚訝。
“在下林元青,千鶴派青山院掌尊,你既然通過了考核,具備修煉資質,即刻你隨我上山,不得有誤。”
葉小凡當下便告別眾人,在林元青的術法之下,隨即化為一道長虹飛天而去。留下了一臉震撼的村民。
千鶴派分為三個大院,分別為青山院,綠水院,以及神秘的玄冰院。每個院都有一個掌尊,那林元青,赫然便是青山院的掌尊!掌尊地位之高,僅次於大長老,大長老之上,又有太上長老。幾乎只是兩三個呼吸的時間,林元青已經帶著葉小凡,來到了千鶴派。葉小凡兩眼一花,彷彿上一刻還在村子口,下一刻就看到了千鶴派的閣樓。
“這裡是?”葉小凡這一輩子都沒有見過如此宏偉的建築,忍不住開口。一想到今後可以在這裡修行,更是興奮。哈哈,我葉小凡今後一定能突破層層障礙,成就JavaScript一代大師!
“這裡是千鶴派青山院。”林元青招來僕從,給葉小凡隨意找了一個住處,又給了一卷功法,吩咐了幾句,似乎還有其他要事,就立即化為一道長虹離去了。
葉小凡拿起功法一看,赫然寫著“JavaScript基礎修煉要訣”幾個銀光大字,眼中放出異彩,一想到村中父老鄉親那期盼的眼神,便下定決心,不混出個名頭,絕不回去!
2直接量葉小凡的住處被安排在青山院西北角的一個房間裡,雖不寬敞,倒也乾淨。葉小凡兩眼露出振奮的眼神,隨便吃了點鄉親們準備的乾糧後,就立刻開始打坐修行。程式設計之修,重在積累,而非資質。資質雖然一樣重要,可是後天的努力一樣不可缺少。這些道理,葉小凡在還未上山之前,就已經熟知!因此,即便是資質平凡,只要肯下苦功,一樣可以修得正果!葉小凡雖然甲等資質,可依然不驕不躁,開始從“JavaScript基礎修煉要訣”第一頁開始學起。
修煉要訣第一章,直接量。
程式設計世界,所謂直接量,就是明面上可以見到的資料值。常見的直接量有數字,小數,字串。修行者,利用自身體內的能量,凝結出一個個簡單的直接量。葉小凡目前修為較低,就連最基本的學徒境界都沒有,體內能量薄弱,經過多次嘗試,只能凝練出一些簡單的數字,比如10,20。忽然,葉小凡目光一閃,一個字串在體內形成!葉小凡細細感悟,原來是一個“Hello World” 字串,葉小凡喜歡觀察,立馬發現了字串和數字的不同。字串的出現,必然帶著雙引號,被很好的包裹住,而數字則不同,就是光禿禿的一個10或者20,沒有雙引號。
“原來,字串一定需要用雙引號包裹,那麼單引號是否可行呢?”葉小凡重新運氣,轉眼間,一個用單引號包裹的‘Hello World’就出現了。見此,葉小凡大喜,哈哈,原來單引號也可以。
“Hello World” ‘Hello World’
突然,這兩個字串和數字像是失去了依託,瞬間化為虛無。葉小凡一驚,心道,看來直接創造出來的字面量只是曇花一現,無法持久,要是有一個什麼東西把直接量裝起來就好了。
葉小凡收起心神,繼續閱讀“JavaScript基礎修煉要訣”,忽然,他眼前一亮。
“原來如此,直接量雖然只是曇花一現,但是如果我能用var定義一個變數,再指向那個直接量,就能有儲存資料的妙用!”
想到這裡,葉小凡當即催動功法,定義了一個變數。
var a;“成了!”,葉小凡開心的一拍手,心念一動,一個用雙引號包裹的“Hello World”字串憑空出現。這一次,沒等字串遁入虛無,葉小凡就立刻讓變數a指向了這個字串。
var a;
a= “Hello World”;“嗯,有點麻煩,還不如直接併為一句。”先定義變數,然後指向一個字串,這種操作分成了兩步,還是一步到位的好。就在葉小凡這麼想的時候,程式碼立刻發生了變化。
var a = “Hello World”;原來這也可以!
前言
JavaScript是一種輕量級的動態程式語言,在誕生之時,JavaScript並沒有受到人們的過多關注,但是誰也想不到,在大前端快速風靡的今天,JavaScript已經成為當今程式設計世界中優雅而不可或缺的一員。如果你是一名程式設計初學者,剛剛學習完HTML和CSS,那你就不得不接觸JavaScript了。剛開始,你會用jQuery操作DOM,切換頁面並寫一寫單擊事件,似乎覺得JavaScript也不過如此。然而,當你在for迴圈裡面寫了一個setTimeout函式後,意想不到的結果發生了,這時你才明白前端這“坑”,竟如此之深!
JavaScript就是這樣一種看起來簡單,卻又很難精通的程式語言。
也許你是一名想要學習JavaScript的“小白”,或者是工作多年的“程式猿”,甚至是已經用Vue前端框架做過很多專案的“大牛”,但是不管怎樣,相信你在閱讀本書後,一定會有意外的收穫。你平時可能只知道該這樣寫業務邏輯,該那樣定義變數,否則就會報錯,這是多年的工作經驗給你帶來的寶貴財富。但在閱讀本書後,你可能就會在某些地方豁然開朗,哦,原來它的內部是這樣運作的!
本書的第1~3章講解JavaScript的基礎知識,對於一些重要的知識點,如json物件、函式、閉包等,更是用了近乎“變態”的篇幅進行詳細闡述。再加上本書多數章節採用小說體講述知識,可以使讀者學習起來不會覺得過於無聊,反而會饒有興趣。JavaScript的基礎知識尤為重要,可以說,學好了JavaScript的基礎知識,後期再學習各種框架,就會變得遊刃有餘。
本書的第4章和第5章將介紹當今的主流前端框架之一——Vue。只要讀者具備一定的JavaScript程式設計基礎,學習Vue也會是比較輕鬆的。
一旦進入前端行業,你就會發現,前端不僅是一堆事件的堆砌和資料的渲染。隨著B/S架構的流行,網頁變得越來越複雜,這就導致JavaScript的程式碼量越來越大。尤其是在編寫複雜的業務邏輯時,由於需要頻繁調取後端介面,並在得到介面的返回值後才能進行其他操作,因此如果介面與介面之間有連帶關係,大量的回撥函式就會巢狀,從而使得程式碼很容易產生意想不到的錯誤。更可怕的是,這樣的程式碼,在檢查時卻完全看不懂。這個時候,就可以使用promise物件和async函數了,這是ES6語法的知識點,本書的第6章將會簡單介紹這些知識。
為了使讀者能夠開心愉悅地閱讀本書,本書多數章節採用玄幻小說的寫作風格,書中的小故事可以讓讀者以全新的角度看待JavaScript。或許你可以在葉小凡的修仙旅途中感悟到JavaScript的美感,從此在面對工作和學習中的JavaScript程式碼時,不再覺得這是一種負擔,而是一種喜悅。
本書的編寫靈感來自於筆者的一次奇思妙想,因為在市面上不容易找不到一本類似小說的程式設計技術書籍,於是,本書就誕生了。本書不像傳統的技術書籍那般沉悶,而是像玄幻小說一樣,閱讀起來很有趣味性。讀者會發現,原來JavaScript還可以這樣學。
如果你已經準備好了,那麼請跟著葉小凡,開始享受這段開心愉悅的修煉旅途吧!
編者2020年8月