整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          20?個(gè)?JavaScript+Html+CSS?練手的小項(xiàng)目

          言:

          最近在 GitHub 上發(fā)現(xiàn)了一個(gè) vanillawebprojects[1] 開源倉(cāng)庫(kù),里面收集了 20 個(gè) JavaScript+Html+CSS的練手項(xiàng)目,沒有使用任何框架,可以讓你從基礎(chǔ)入門到深入學(xué)習(xí)。這些項(xiàng)目原本是 Udemy20 Web Projects With Vanilla JavaScript 課程的一部分,但是如果你已經(jīng)擁有了一些基礎(chǔ),不妨試著看一下源碼,然后模仿實(shí)現(xiàn)吧

          1. Form Validator 表單驗(yàn)證

          判斷輸入的表單字段是否合法


          2. Movie Seat Booking 預(yù)定電影座位

          一個(gè)簡(jiǎn)單的電影座位預(yù)定演示項(xiàng)目


          3. Custom Video Player 定制視頻播放器

          一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)視頻播放器


          4. Exchange Rate Calculator 匯率計(jì)算器

          計(jì)算不同貨幣的兌換匯率


          5. DOM Array Methods Project DOM 數(shù)組方法

          練習(xí)如何操作 DOM 數(shù)組


          6. Menu Slider & Modal 動(dòng)態(tài)菜單以及彈窗

          練習(xí)如何彈出登錄注冊(cè)窗口,以及滑動(dòng)彈出菜單


          7. Hangman Game 字符偵探游戲

          練習(xí)如何判斷隱藏字符是否正確


          8. Mealfinder App 點(diǎn)餐應(yīng)用

          簡(jiǎn)單的點(diǎn)餐查詢應(yīng)用


          9. Expense Tracker 購(gòu)物結(jié)算應(yīng)用

          簡(jiǎn)單的購(gòu)物車結(jié)算應(yīng)用


          10. Music Player 音樂播放器

          簡(jiǎn)單的網(wǎng)頁(yè)音樂播放器


          11. Infinite Scrolling 網(wǎng)頁(yè)無限滾動(dòng)演示

          網(wǎng)頁(yè)無限向下滾動(dòng)實(shí)現(xiàn)


          12. Typing Game 打字游戲

          簡(jiǎn)單的打字輸入游戲


          13. Speech Text Reader 文本閱讀器

          文本閱讀器


          14. Memory Cards 記憶卡片

          測(cè)試記憶的記憶卡片


          15. LyricsSearch App 歌詞搜索應(yīng)用

          網(wǎng)頁(yè)歌詞搜索器


          16. Relaxer App 休閑呼吸應(yīng)用

          模擬呼吸的節(jié)奏


          17. Breakout Game 彈跳破冰游戲

          簡(jiǎn)單的網(wǎng)頁(yè)破冰游戲


          18. New Year Countdown 新年倒計(jì)時(shí)

          網(wǎng)頁(yè)新年倒計(jì)時(shí)


          19. Sortable List 榜單應(yīng)用

          網(wǎng)頁(yè)財(cái)富榜單


          20. Speak Number Guessing Game 猜數(shù)字游戲

          說出數(shù)字,猜測(cè)數(shù)字


          今天我們給大家分享了,20 個(gè) JavaScript+Html+CSS 練手小項(xiàng)目,大家覺得哪個(gè)最簡(jiǎn)單,哪個(gè)最復(fù)雜呢?趕緊去 Github 倉(cāng)庫(kù)拉取項(xiàng)目,碼上行動(dòng)吧

          歡迎關(guān)注公眾號(hào):KnowHub 知識(shí)加油站!

          參考資料

          [1]

          vanillawebprojects: https://github.com/bradtraversy/vanillawebprojects

          這里是云端源想IT,幫你輕松學(xué)IT”

          嗨~ 今天的你過得還好嗎?

          我們總是先揚(yáng)起塵土

          然后抱怨自己看不見

          - 2024.04.17 -

          JavaScript是一種輕量級(jí)的編程語(yǔ)言,通常用于網(wǎng)頁(yè)開發(fā),以增強(qiáng)用戶界面的交互性和動(dòng)態(tài)性。然而在HTML中,有多種方法可以嵌入和使用JavaScript代碼。

          本文就帶大家深入了解如何在HTML中使用JavaScript。



          一、使用 script 標(biāo)簽

          要在HTML中使用JavaScript,我們需要使用<script>標(biāo)簽。這個(gè)標(biāo)簽可以放在<head>或<body>部分,但通常我們會(huì)將其放在<body>部分的底部,以確保在執(zhí)行JavaScript代碼時(shí),HTML文檔已經(jīng)完全加載。

          使用 <script> 標(biāo)簽有兩種方式:直接在頁(yè)面中嵌入 JavaScript 代碼包含外部 JavaScript 文件。


          包含在 <script> 標(biāo)簽內(nèi)的 JavaScript 代碼在瀏覽器總按照從上至下的順序依次解釋。


          所有 <script> 標(biāo)簽都會(huì)按照他們?cè)?HTML 中出現(xiàn)的先后順序依次被解析。



          HTML 為 <script> 定義了幾個(gè)屬性:

          1)async:可選。表示應(yīng)該立即下載腳本,但不妨礙頁(yè)面中其他操作。該功能只對(duì)外部 JavaScript 文件有效。


          如果給一個(gè)外部引入的js文件設(shè)置了這個(gè)屬性,那頁(yè)面在解析代碼的時(shí)候遇到這個(gè)<script>的時(shí)候,一邊下載該腳本文件,一邊異步加載頁(yè)面其他內(nèi)容。


          2)defer:可選。表示腳本可以延遲到整個(gè)頁(yè)面完全被解析和顯示之后再執(zhí)行。該屬性只對(duì)外部 JavaScript 文件有效。


          3)src:可選。表示包含要執(zhí)行代碼的外部文件。


          4)type:可選。表示編寫代碼使用的腳本語(yǔ)言的內(nèi)容類型,目前在客戶端,type 屬性值一般使用 text/javascript。不過這個(gè)屬性并不是必需的,如果沒有指定這個(gè)屬性,則其默認(rèn)值仍為text/javascript。



          1.1 直接在頁(yè)面中嵌入JavaScript代碼

          內(nèi)部JavaScript是將JavaScript代碼放在HTML文檔的<script>標(biāo)簽中。這樣可以將JavaScript代碼與HTML代碼分離,使結(jié)構(gòu)更清晰,易于維護(hù)。


          在使用<script>元素嵌入JavaScript代碼時(shí),只須為<script>指定type屬性。然后,像下面這樣把JavaScript代碼直接放在元素內(nèi)部即可:

          <script type="text/javascript">
          function sayHi(){
          alert("Hi!");
          }
          </script>


          如果沒有指定script屬性,則其默認(rèn)值為text/javascript。


          包含在<script>元素內(nèi)部的JavaScript代碼將被從上至下依次解釋。在解釋器對(duì)<script>元素內(nèi)部的所有代碼求值完畢以前,頁(yè)面中的其余內(nèi)容都不會(huì)被瀏覽器加載或顯示。


          在使用<script>嵌入JavaScript代碼的過程中,當(dāng)代碼中出現(xiàn)"</script>"字符串時(shí),由于解析嵌入式代碼的規(guī)則,瀏覽器會(huì)認(rèn)為這是結(jié)束的</script>標(biāo)簽。可以通過轉(zhuǎn)義字符“\”寫成<\/script>來解決這個(gè)問題。


          1.2 包含外部 JavaScript 文件

          外部JavaScript是將JavaScript代碼放在單獨(dú)的.js文件中,然后在HTML文檔中通過<script>標(biāo)簽的src屬性引用這個(gè)文件。這種方法可以使代碼更加模塊化,便于重用和共享。


          如果要通過<script>元素來包含外部JavaScript文件,那么src屬性就是必需的。這個(gè)屬性的值是一個(gè)指向外部JavaScript文件的鏈接。

          <script type="text/javascript" src="example.js"></script>


          • 外部文件example.js將被加載到當(dāng)前頁(yè)面中。
          • 外部文件只須包含通常要放在開始的<script>和結(jié)束的</script>之間的那些JavaScript代碼即可。



          與解析嵌入式JavaScript代碼一樣,在解析外部JavaScript文件(包括下載該文件)時(shí),頁(yè)面的處理也會(huì)暫時(shí)停止。

          注意:帶有src屬性的<script>元素不應(yīng)該在其<script>和</script>標(biāo)簽之間再包含額外的JavaScript代碼。如果包含了嵌入的代碼,則只會(huì)下載并執(zhí)行外部腳本文件,嵌入的代碼會(huì)被忽略。

          通過<script>元素的src屬性還可以包含來自外部域的JavaScript文件。它的src屬性可以是指向當(dāng)前HTML頁(yè)面所在域之外的某個(gè)域中的完整URL。

          <script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

          于是,位于外部域中的代碼也會(huì)被加載和解析。


          1.3 標(biāo)簽的位置

          在HTML中,所有的<script>標(biāo)簽會(huì)按照它們出現(xiàn)的先后順序被解析。在不使用defer和async屬性的情況下,只有當(dāng)前面的<script>標(biāo)簽中的代碼解析完成后,才會(huì)開始解析后面的<script>標(biāo)簽中的代碼。


          通常,所有的<script>標(biāo)簽應(yīng)該放在頁(yè)面的<head>標(biāo)簽中,這樣可以將外部文件(包括CSS和JavaScript文件)的引用集中放置。



          然而,如果將所有的JavaScript文件都放在<head>標(biāo)簽中,會(huì)導(dǎo)致瀏覽器在呈現(xiàn)頁(yè)面內(nèi)容之前必須下載、解析并執(zhí)行所有JavaScript代碼,這可能會(huì)造成明顯的延遲,導(dǎo)致瀏覽器窗口在加載過程中出現(xiàn)空白。


          為了避免這種延遲問題,現(xiàn)代Web應(yīng)用程序通常會(huì)將所有的JavaScript引用放置在<body>標(biāo)簽中的頁(yè)面內(nèi)容的后面。這樣做可以確保在解析JavaScript代碼之前,頁(yè)面的內(nèi)容已經(jīng)完全呈現(xiàn)在瀏覽器中,從而加快了打開網(wǎng)頁(yè)的速度。


          二、執(zhí)行JavaScript 程序

          JavaScript 解析過程包括兩個(gè)階段:預(yù)處理(也稱預(yù)編譯)執(zhí)行

          • 在編譯期,JavaScript 解析器將完成對(duì) JavaScript 代碼的預(yù)處理操作,把 JavaScript 代碼轉(zhuǎn)換成字節(jié)碼;
          • 在執(zhí)行期,JavaScript 解析器把字節(jié)碼生成二進(jìn)制機(jī)械碼,并按順序執(zhí)行,完成程序設(shè)計(jì)的任務(wù)。


          1、執(zhí)行過程

          HTML 文檔在瀏覽器中的解析過程是:按照文檔流從上到下逐步解析頁(yè)面結(jié)構(gòu)和信息。

          JavaScript 代碼作為嵌入的腳本應(yīng)該也算做 HTML 文檔的組成部分,所以 JavaScript 代碼在裝載時(shí)的執(zhí)行順序也是根據(jù) <script> 標(biāo)簽出現(xiàn)的順序來確定。

          你是不是厭倦了一成不變的編程模式?想要突破自我,挑戰(zhàn)新技術(shù)想要突破自我,挑戰(zhàn)新技術(shù)?卻遲遲找不到可以練手的項(xiàng)目實(shí)戰(zhàn)?是不是夢(mèng)想打造一個(gè)屬于自己的支付系統(tǒng)?那么,恭喜你,云端源想免費(fèi)實(shí)戰(zhàn)直播——《微實(shí)戰(zhàn)-使用支付寶/微信支付服務(wù),網(wǎng)站在線支付功能大揭秘》正在進(jìn)行,點(diǎn)擊前往獲取源碼!云端源想

          2、預(yù)編譯

          當(dāng) JavaScript 引擎解析腳本時(shí)候,他會(huì)在與編譯期對(duì)所有聲明的變量和函數(shù)預(yù)先進(jìn)行處理。當(dāng) JavaScript 解析器執(zhí)行下面腳本時(shí)不會(huì)報(bào)錯(cuò)。

          alert(a); //返回值 undefined
          var a = 1;
          alert(a); //返回值 1


          由于變量聲明是在預(yù)編譯期被處理的,在執(zhí)行期間對(duì)于所有的代碼來說,都是可見的,但是執(zhí)行上面代碼,提示的值是 undefined 而不是 1。

          因?yàn)樽兞砍跏蓟^程發(fā)生在執(zhí)行期,而不是預(yù)編譯期。在執(zhí)行期,JavaScript 解析器是按照代碼先后順序進(jìn)行解析的,如果在前面代碼行中沒有為變量賦值,則 JavaScript 解析器會(huì)使用默認(rèn)值 undefined 。


          由于第二行中為變量 a 賦值了,所以在第三行代碼中會(huì)提示變量 a 的值為 1,而不是 undefined。

          fun(); //調(diào)用函數(shù),返回值1
          function fun(){
          alert(1);
          }

          函數(shù)聲明前調(diào)用函數(shù)也是合法的,并能夠正確解析,所以返回值是 1。但如果是下面這種方式則 JavaScript 解釋器會(huì)報(bào)錯(cuò)。

          fun(); //調(diào)用函數(shù),返回語(yǔ)法錯(cuò)誤
          var fun = function(){
          alert(1);
          }

          上面的這個(gè)例子中定義的函數(shù)僅作為值賦值給變量 fun 。在預(yù)編譯期,JavaScript 解釋器只能夠?yàn)槁暶髯兞?fun 進(jìn)行處理,而對(duì)于變量 fun 的值,只能等到執(zhí)行期時(shí)按照順序進(jìn)行賦值,自然就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤,提示找不到對(duì)象 fun。

          總結(jié):聲明變量和函數(shù)可以在文檔的任意位置,但是良好的習(xí)慣應(yīng)該是在所有 JavaScript 代碼之前聲明全局變量和函數(shù),并對(duì)變量進(jìn)行初始化賦值。在函數(shù)內(nèi)部也是先聲明變量,后引用。

          通過今天的分享,相信大家已經(jīng)對(duì)JavaScript在HTML中的應(yīng)用有了一定的了解。這只是冰山一角,JavaScript的潛力遠(yuǎn)不止于此。希望這篇文章能激發(fā)大家對(duì)編程的熱情,讓我們一起在編程的世界里探索更多的可能性!



          我們下期再見!


          END

          文案編輯|云端學(xué)長(zhǎng)

          文案配圖|云端學(xué)長(zhǎng)

          內(nèi)容由:云端源想分享

          多朋友可能在學(xué)習(xí)javascript的時(shí)候感覺很枯燥乏味,找不到方法跟方向,今天就給大家分享些學(xué)習(xí)javascript的方法技巧跟心得。

          如今的編程行業(yè)吸引了眾多其他行業(yè)的同志加入我們程序員的行列,還有很多半路“回車”了。原因大概就以下幾種:

          1. 堅(jiān)持不下去

          2. 沒找到方法

          3. 覺得時(shí)間太久

          4. 部分人覺得有點(diǎn)難度

          5. 感覺學(xué)了不知道怎么用

          那么今天就這些問題給大家一個(gè)清晰的思路,跟分享如何學(xué)好javascript,提前告訴大家一聲,學(xué)好了javascript,框架之類的都沒問題,要知道,JS框架的原生是javascript。

          好了,雞湯之類的我不說,直接開工。

          針對(duì)第一個(gè)原因,我想發(fā)表下自己的看法!首先問問自己,為什么當(dāng)初選擇了編程,而如今卻寸步難行?其次,你有沒有問問自己的決心,是不是非要堅(jiān)持下來,當(dāng)然了如果你是業(yè)余愛好者,小編我只能說,雞湯我干了,你隨意!

          既然當(dāng)初,熱血沸騰的進(jìn)來了,咋們就不能空手而退,一定得堅(jiān)持。不是有句話說的好嘛,這個(gè)成功與失敗之間原因很簡(jiǎn)單,同樣的事情,別人堅(jiān)持了,而你只是沒堅(jiān)持而已。

          額,話說,到這怎么還沒見關(guān)于javascript的事情,原諒小編話多。。。(尷尬)

          來到第二個(gè)原因,也是今天的重點(diǎn),學(xué)習(xí)方法。這里還是老規(guī)矩,先列出流程:

          1. 找一本合適自己的書

          2. 找到自己合適的編寫代碼的工具

          3. 學(xué)會(huì)找資源

          4. 學(xué)會(huì)用代碼總結(jié)

          好了,我的粉絲們,大概你們知道我接下來要干啥了。對(duì),沒錯(cuò),開始念經(jīng)。。。

          如何找到一本適合自己的javascript書籍呢?決定于你是否純小白還是半點(diǎn)兒白,純白的建議你選擇javascript權(quán)威指南,半白的建議你javascript高級(jí)程序設(shè)計(jì),這兩本書,我多次在不同社區(qū)跟平臺(tái)給別人推薦過。因?yàn)槲艺J(rèn)為,這兩本書的過渡很好。

          那么找到書了,開始學(xué),學(xué)的時(shí)候得邊寫代碼吧!這時(shí)候找個(gè)得心應(yīng)手的工具在合適不過了。建議大家學(xué)習(xí)javascript不要用瀏覽器去看結(jié)果,不方便。來,跟著老司機(jī)動(dòng)起來

          一、下載node.js,并且全局安裝

          二、找到你的javascript文件目錄,運(yùn)行命令,輸入node 文件名.js 你會(huì)有大發(fā)現(xiàn)

          效果圖如下:

          邊寫邊看,效率高

          這樣你在學(xué)方法的時(shí)候,屬性操作的時(shí)候,能夠快速清晰的看到結(jié)果。話說用命令行學(xué)習(xí),逼格是不是高了點(diǎn)。哈哈!

          當(dāng)你學(xué)的有點(diǎn)苗頭了,別想著它能干啥,想想找點(diǎn)資源來練手,網(wǎng)絡(luò)上一大堆的javascript寫的特效代碼,拿來練手不是更好?

          最后,總結(jié)性的用javascript結(jié)合web前端布局,寫一個(gè)有點(diǎn)效果的靜態(tài)網(wǎng)頁(yè),找成就感,多給自己找找成就感,學(xué)習(xí)起來倍兒輕松。

          好了,前面幾個(gè)簡(jiǎn)單概括了下。現(xiàn)在重點(diǎn)講講怎么學(xué)習(xí)javascript!

          當(dāng)你在看javascript書的第一天開始,你一定得分好時(shí)間,什么時(shí)間看什么部分的書!比如:簡(jiǎn)介性質(zhì)部分,概念部分,代碼示例部分。

          給大家一個(gè)比較好的安排:簡(jiǎn)介可以當(dāng)小說看,在地鐵上,公交上;概念建議夜深人靜的時(shí)候看,你的世界沒人打擾你;代碼示例建議任何有空時(shí)間都要敲,不敲代碼敲什么。

          當(dāng)我們開始堅(jiān)持了一段時(shí)間,然后回過頭來重復(fù)我上面說的第三跟第四部分,最終行成,成就感由小到大,慢慢的時(shí)間一長(zhǎng),你會(huì)發(fā)現(xiàn),原來我已經(jīng)學(xué)的差不多了!

          開到這里,大家可能覺得怎么沒見一行代碼,沒錯(cuò),今天這個(gè)就是javascript開篇,給大家一個(gè)清晰的思路,后之我在分享javascript這個(gè)腳本語(yǔ)言的時(shí)候,你會(huì)很快接受。而且學(xué)習(xí)興趣會(huì)增強(qiáng)。那么,提前跟大家說下接下來要分享的javascript文章流程。

          一、javascript基礎(chǔ)知識(shí)(主要分享變量跟數(shù)據(jù)類型)

          二、javascript常用語(yǔ)句(主要分享?xiàng)l件判斷循環(huán))

          三、javascript函數(shù)(函數(shù))重點(diǎn)

          四、javascript環(huán)境跟作用域(重難點(diǎn),主要是概念)

          五、javascript對(duì)象(長(zhǎng)期要講的,可知多重要)

          希望接下來的這些分享,可以給學(xué)編程的你帶來幫助!

          加油


          主站蜘蛛池模板: 国产一区二区内射最近更新| 日本在线视频一区| 性色AV 一区二区三区| 一区二区三区精品| 日韩视频在线观看一区二区| 深田咏美AV一区二区三区| 日本免费一区二区久久人人澡| 国产一区二区三区电影| 亚洲国产AV无码一区二区三区| 亚洲av无码一区二区三区不卡| 中文字幕一区在线| 亚洲一区二区高清| 无码人妻一区二区三区在线水卜樱 | 久久精品国内一区二区三区| 精品久久一区二区三区| 国产在线观看一区精品| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产精品538一区二区在线| 国产日产久久高清欧美一区| 无码国产精品一区二区免费式影视 | 免费在线观看一区| 国产成人精品视频一区| 日韩精品国产一区| 国产精品伦子一区二区三区| 国产精品一区电影| 无码AV一区二区三区无码| 午夜福利国产一区二区| 国产精久久一区二区三区| 中文字幕久久亚洲一区| 国内偷窥一区二区三区视频| 久久99国产精品一区二区| 污污内射在线观看一区二区少妇 | 国产一区二区免费| 中文字幕一区二区三区5566| 精品国产乱码一区二区三区| 精品国产精品久久一区免费式| 2018高清国产一区二区三区| 成人区人妻精品一区二区不卡| 中文字幕AV一区二区三区 | 无码精品人妻一区二区三区免费| 国产一区二区三区免费在线观看|