Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
最近在 GitHub 上發現了一個 vanillawebprojects[1] 開源倉庫,里面收集了 20 個 JavaScript+Html+CSS的練手項目,沒有使用任何框架,可以讓你從基礎入門到深入學習。這些項目原本是 Udemy 上 20 Web Projects With Vanilla JavaScript 課程的一部分,但是如果你已經擁有了一些基礎,不妨試著看一下源碼,然后模仿實現吧
判斷輸入的表單字段是否合法
一個簡單的電影座位預定演示項目
一個簡單的網頁視頻播放器
計算不同貨幣的兌換匯率
練習如何操作 DOM 數組
練習如何彈出登錄注冊窗口,以及滑動彈出菜單
練習如何判斷隱藏字符是否正確
簡單的點餐查詢應用
簡單的購物車結算應用
簡單的網頁音樂播放器
網頁無限向下滾動實現
簡單的打字輸入游戲
文本閱讀器
測試記憶的記憶卡片
網頁歌詞搜索器
模擬呼吸的節奏
簡單的網頁破冰游戲
網頁新年倒計時
網頁財富榜單
說出數字,猜測數字
今天我們給大家分享了,20 個 JavaScript+Html+CSS 練手小項目,大家覺得哪個最簡單,哪個最復雜呢?趕緊去 Github 倉庫拉取項目,碼上行動吧
歡迎關注公眾號:KnowHub 知識加油站!
[1]
vanillawebprojects: https://github.com/bradtraversy/vanillawebprojects
這里是云端源想IT,幫你輕松學IT”
嗨~ 今天的你過得還好嗎?
我們總是先揚起塵土
然后抱怨自己看不見
- 2024.04.17 -
JavaScript是一種輕量級的編程語言,通常用于網頁開發,以增強用戶界面的交互性和動態性。然而在HTML中,有多種方法可以嵌入和使用JavaScript代碼。
本文就帶大家深入了解如何在HTML中使用JavaScript。
要在HTML中使用JavaScript,我們需要使用<script>標簽。這個標簽可以放在<head>或<body>部分,但通常我們會將其放在<body>部分的底部,以確保在執行JavaScript代碼時,HTML文檔已經完全加載。
使用 <script> 標簽有兩種方式:直接在頁面中嵌入 JavaScript 代碼和包含外部 JavaScript 文件。
包含在 <script> 標簽內的 JavaScript 代碼在瀏覽器總按照從上至下的順序依次解釋。
所有 <script> 標簽都會按照他們在 HTML 中出現的先后順序依次被解析。
HTML 為 <script> 定義了幾個屬性:
1)async:可選。表示應該立即下載腳本,但不妨礙頁面中其他操作。該功能只對外部 JavaScript 文件有效。
如果給一個外部引入的js文件設置了這個屬性,那頁面在解析代碼的時候遇到這個<script>的時候,一邊下載該腳本文件,一邊異步加載頁面其他內容。
2)defer:可選。表示腳本可以延遲到整個頁面完全被解析和顯示之后再執行。該屬性只對外部 JavaScript 文件有效。
3)src:可選。表示包含要執行代碼的外部文件。
4)type:可選。表示編寫代碼使用的腳本語言的內容類型,目前在客戶端,type 屬性值一般使用 text/javascript。不過這個屬性并不是必需的,如果沒有指定這個屬性,則其默認值仍為text/javascript。
1.1 直接在頁面中嵌入JavaScript代碼
內部JavaScript是將JavaScript代碼放在HTML文檔的<script>標簽中。這樣可以將JavaScript代碼與HTML代碼分離,使結構更清晰,易于維護。
在使用<script>元素嵌入JavaScript代碼時,只須為<script>指定type屬性。然后,像下面這樣把JavaScript代碼直接放在元素內部即可:
<script type="text/javascript">
function sayHi(){
alert("Hi!");
}
</script>
如果沒有指定script屬性,則其默認值為text/javascript。
包含在<script>元素內部的JavaScript代碼將被從上至下依次解釋。在解釋器對<script>元素內部的所有代碼求值完畢以前,頁面中的其余內容都不會被瀏覽器加載或顯示。
在使用<script>嵌入JavaScript代碼的過程中,當代碼中出現"</script>"字符串時,由于解析嵌入式代碼的規則,瀏覽器會認為這是結束的</script>標簽。可以通過轉義字符“\”寫成<\/script>來解決這個問題。
1.2 包含外部 JavaScript 文件
外部JavaScript是將JavaScript代碼放在單獨的.js文件中,然后在HTML文檔中通過<script>標簽的src屬性引用這個文件。這種方法可以使代碼更加模塊化,便于重用和共享。
如果要通過<script>元素來包含外部JavaScript文件,那么src屬性就是必需的。這個屬性的值是一個指向外部JavaScript文件的鏈接。
<script type="text/javascript" src="example.js"></script>
與解析嵌入式JavaScript代碼一樣,在解析外部JavaScript文件(包括下載該文件)時,頁面的處理也會暫時停止。
注意:帶有src屬性的<script>元素不應該在其<script>和</script>標簽之間再包含額外的JavaScript代碼。如果包含了嵌入的代碼,則只會下載并執行外部腳本文件,嵌入的代碼會被忽略。
通過<script>元素的src屬性還可以包含來自外部域的JavaScript文件。它的src屬性可以是指向當前HTML頁面所在域之外的某個域中的完整URL。
<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>
于是,位于外部域中的代碼也會被加載和解析。
1.3 標簽的位置
在HTML中,所有的<script>標簽會按照它們出現的先后順序被解析。在不使用defer和async屬性的情況下,只有當前面的<script>標簽中的代碼解析完成后,才會開始解析后面的<script>標簽中的代碼。
通常,所有的<script>標簽應該放在頁面的<head>標簽中,這樣可以將外部文件(包括CSS和JavaScript文件)的引用集中放置。
然而,如果將所有的JavaScript文件都放在<head>標簽中,會導致瀏覽器在呈現頁面內容之前必須下載、解析并執行所有JavaScript代碼,這可能會造成明顯的延遲,導致瀏覽器窗口在加載過程中出現空白。
為了避免這種延遲問題,現代Web應用程序通常會將所有的JavaScript引用放置在<body>標簽中的頁面內容的后面。這樣做可以確保在解析JavaScript代碼之前,頁面的內容已經完全呈現在瀏覽器中,從而加快了打開網頁的速度。
JavaScript 解析過程包括兩個階段:預處理(也稱預編譯)和執行。
1、執行過程
HTML 文檔在瀏覽器中的解析過程是:按照文檔流從上到下逐步解析頁面結構和信息。
JavaScript 代碼作為嵌入的腳本應該也算做 HTML 文檔的組成部分,所以 JavaScript 代碼在裝載時的執行順序也是根據 <script> 標簽出現的順序來確定。
你是不是厭倦了一成不變的編程模式?想要突破自我,挑戰新技術想要突破自我,挑戰新技術?卻遲遲找不到可以練手的項目實戰?是不是夢想打造一個屬于自己的支付系統?那么,恭喜你,云端源想免費實戰直播——《微實戰-使用支付寶/微信支付服務,網站在線支付功能大揭秘》正在進行,點擊前往獲取源碼!云端源想
2、預編譯
當 JavaScript 引擎解析腳本時候,他會在與編譯期對所有聲明的變量和函數預先進行處理。當 JavaScript 解析器執行下面腳本時不會報錯。
alert(a); //返回值 undefined
var a = 1;
alert(a); //返回值 1
由于變量聲明是在預編譯期被處理的,在執行期間對于所有的代碼來說,都是可見的,但是執行上面代碼,提示的值是 undefined 而不是 1。
因為變量初始化過程發生在執行期,而不是預編譯期。在執行期,JavaScript 解析器是按照代碼先后順序進行解析的,如果在前面代碼行中沒有為變量賦值,則 JavaScript 解析器會使用默認值 undefined 。
由于第二行中為變量 a 賦值了,所以在第三行代碼中會提示變量 a 的值為 1,而不是 undefined。
fun(); //調用函數,返回值1
function fun(){
alert(1);
}
函數聲明前調用函數也是合法的,并能夠正確解析,所以返回值是 1。但如果是下面這種方式則 JavaScript 解釋器會報錯。
fun(); //調用函數,返回語法錯誤
var fun = function(){
alert(1);
}
上面的這個例子中定義的函數僅作為值賦值給變量 fun 。在預編譯期,JavaScript 解釋器只能夠為聲明變量 fun 進行處理,而對于變量 fun 的值,只能等到執行期時按照順序進行賦值,自然就會出現語法錯誤,提示找不到對象 fun。
總結:聲明變量和函數可以在文檔的任意位置,但是良好的習慣應該是在所有 JavaScript 代碼之前聲明全局變量和函數,并對變量進行初始化賦值。在函數內部也是先聲明變量,后引用。
通過今天的分享,相信大家已經對JavaScript在HTML中的應用有了一定的了解。這只是冰山一角,JavaScript的潛力遠不止于此。希望這篇文章能激發大家對編程的熱情,讓我們一起在編程的世界里探索更多的可能性!
我們下期再見!
END
文案編輯|云端學長
文案配圖|云端學長
內容由:云端源想分享
多朋友可能在學習javascript的時候感覺很枯燥乏味,找不到方法跟方向,今天就給大家分享些學習javascript的方法技巧跟心得。
如今的編程行業吸引了眾多其他行業的同志加入我們程序員的行列,還有很多半路“回車”了。原因大概就以下幾種:
堅持不下去
沒找到方法
覺得時間太久
部分人覺得有點難度
感覺學了不知道怎么用
那么今天就這些問題給大家一個清晰的思路,跟分享如何學好javascript,提前告訴大家一聲,學好了javascript,框架之類的都沒問題,要知道,JS框架的原生是javascript。
好了,雞湯之類的我不說,直接開工。
針對第一個原因,我想發表下自己的看法!首先問問自己,為什么當初選擇了編程,而如今卻寸步難行?其次,你有沒有問問自己的決心,是不是非要堅持下來,當然了如果你是業余愛好者,小編我只能說,雞湯我干了,你隨意!
既然當初,熱血沸騰的進來了,咋們就不能空手而退,一定得堅持。不是有句話說的好嘛,這個成功與失敗之間原因很簡單,同樣的事情,別人堅持了,而你只是沒堅持而已。
額,話說,到這怎么還沒見關于javascript的事情,原諒小編話多。。。(尷尬)
來到第二個原因,也是今天的重點,學習方法。這里還是老規矩,先列出流程:
找一本合適自己的書
找到自己合適的編寫代碼的工具
學會找資源
學會用代碼總結
好了,我的粉絲們,大概你們知道我接下來要干啥了。對,沒錯,開始念經。。。
如何找到一本適合自己的javascript書籍呢?決定于你是否純小白還是半點兒白,純白的建議你選擇javascript權威指南,半白的建議你javascript高級程序設計,這兩本書,我多次在不同社區跟平臺給別人推薦過。因為我認為,這兩本書的過渡很好。
那么找到書了,開始學,學的時候得邊寫代碼吧!這時候找個得心應手的工具在合適不過了。建議大家學習javascript不要用瀏覽器去看結果,不方便。來,跟著老司機動起來
一、下載node.js,并且全局安裝
二、找到你的javascript文件目錄,運行命令,輸入node 文件名.js 你會有大發現
效果圖如下:
邊寫邊看,效率高
這樣你在學方法的時候,屬性操作的時候,能夠快速清晰的看到結果。話說用命令行學習,逼格是不是高了點。哈哈!
當你學的有點苗頭了,別想著它能干啥,想想找點資源來練手,網絡上一大堆的javascript寫的特效代碼,拿來練手不是更好?
最后,總結性的用javascript結合web前端布局,寫一個有點效果的靜態網頁,找成就感,多給自己找找成就感,學習起來倍兒輕松。
好了,前面幾個簡單概括了下。現在重點講講怎么學習javascript!
當你在看javascript書的第一天開始,你一定得分好時間,什么時間看什么部分的書!比如:簡介性質部分,概念部分,代碼示例部分。
給大家一個比較好的安排:簡介可以當小說看,在地鐵上,公交上;概念建議夜深人靜的時候看,你的世界沒人打擾你;代碼示例建議任何有空時間都要敲,不敲代碼敲什么。
當我們開始堅持了一段時間,然后回過頭來重復我上面說的第三跟第四部分,最終行成,成就感由小到大,慢慢的時間一長,你會發現,原來我已經學的差不多了!
開到這里,大家可能覺得怎么沒見一行代碼,沒錯,今天這個就是javascript開篇,給大家一個清晰的思路,后之我在分享javascript這個腳本語言的時候,你會很快接受。而且學習興趣會增強。那么,提前跟大家說下接下來要分享的javascript文章流程。
一、javascript基礎知識(主要分享變量跟數據類型)
二、javascript常用語句(主要分享條件判斷循環)
三、javascript函數(函數)重點
四、javascript環境跟作用域(重難點,主要是概念)
五、javascript對象(長期要講的,可知多重要)
希望接下來的這些分享,可以給學編程的你帶來幫助!
加油
*請認真填寫需求信息,我們會在24小時內與您取得聯系。