大家好,我最近剛接觸到HTML,想知道為什麼HTML沒有迴圈像是 while 或是 for 之類的迴圈功能,我查了一些資料說他是一種標記語言,還是不是很懂這個意思,這和其他C以及C++那些語言的差別是如何? 希望各位可以稍微解釋或是提供資料讓我了解,感謝
已經很多人說了很多專業術語。你能明白的話就好。
我就換個比較白話的說法好了。
認真來說,html文件就很像是一種板模。當然直接說板模也並不太正確。
因為其還可以用css來做上色的表現。
但單純一點來看,還是可以將其當成一種板模。
認真來講,html它並非是一種可程式化的樣板。畢竟它真正的意義是一種樣式的表現。固定的東西。
所以根本不可能跑for或是while這種動態式的東西。
雖說如此,但html可以利用css、javascript來去調整板模。借此來達到你說的使用for及while。
css可以定義表現。它可以設定規則處理。javascript才是可程式化的語言。
真要說html跟c有什麼不同。
html就是「標記語言」這樣的說法你因該也是不懂。白話點的說法就是,它是一個畫,一個刻板。
c語言則是一個平板一個可程序化的機器。
認真來說,這兩者可以說是完全不一樣的東西。只是c也可以輸出html而已。
所以你拿這兩個來當比對組,說實在的並不是很適合。
想知道為什麼HTML沒有迴圈像是 while 或是 for 之類的迴圈功能
因為不是他最主要的目的
瀏覽器使用HTML標籤和指令碼來詮釋網頁內容,但不會將它們顯示在頁面上
我查了一些資料說他是一種標記語言,還是不是很懂這個意思
就是字面上的意思, 你可以跟上題搭著看
這和其他C以及C++那些語言的差別是如何
c, c++ 那些是 編譯語言
通常會拿來與其相比的會是 直譯語言
最具代表性的就是 javascript
兩者最大的差別就是直譯語言沒有編譯器
所以可能很多問題
如果開發習慣不好
很容易到了 runtime 才發現
初學 javascript 可以看看 w3School
想要刷題練習可以參考 codewars
親愛的 你知道 javascript 嗎
我是覺得wiki的SGML條目講得不錯:
Markup should describe a document's structure and other attributes rather than specify the processing that needs to be performed, because it is less likely to conflict with future developments.
剛好回答了你的問題。HTML是從SGML發展出來的。
簡單解釋如下
標記語言:用標記的方式來儲存資料的一種語言格式,諸如HTML、XML等均屬之
程式語言:利用語彙基元(此為C#的用詞,詳見此處)組成一系列陳述句,然後經過某種解釋器(編譯/直譯/組譯等)的解釋後,轉為對電腦下指令並執行的機器碼,進而運用電腦的運算能力解決問題
回到正題:為什麼HTML沒有迴圈?
答:HTML最原始的用途就是用來標記資料,不進行任何運算,自然不需要迴圈、判斷等功能。
HTML -> HTML5
分支版本是 XHTML 與 DHTML
XHTML = XML寫法的HTML
DHTML = HTML + CSS + JavaScript + DOM
其實用DHTML跑模板引擎(MVVM)
應該就可以做到你要的HTML迴圈效果
像是AngularJS
https://angularjs.org/
或 KnockoutJS
https://knockoutjs.com/
或 VueJS
https://vuejs.org/
我的理解是html當初產生是為了靜態網頁,使用tag標籤語法(標記語言)來描述靜態網頁資料,
後來因為還是需要有動態網頁需求,ex:100頁的分頁(100個.html 轉為 1個.jsp來達成)或要從db整合資料等才發展出動態網頁(servlet, jsp, php, asp...), 也就是因為動態網頁內崁的這些程式語言才有迴圈等指令, 所以,一個是靜態網頁一個是動態網頁需求/架構不一樣。
舉例:把html想成是設定變數abc, 轉換為.jsp後就可以包for迴號動態重覆產生三筆;對照c或c++之類的程式語言就是var1='abc'再包for輸出,或是說要先瞭解html才能進階寫jsp,跟學一般程式要先會宣告變數才能運用for指令,也就是常說的網頁程式與一般程式語言不同處或相似處(萬變不離其宗)。