iT邦幫忙

0

為什麼 HTML沒有迴圈

大家好,我最近剛接觸到HTML,想知道為什麼HTML沒有迴圈像是 while 或是 for 之類的迴圈功能,我查了一些資料說他是一種標記語言,還是不是很懂這個意思,這和其他C以及C++那些語言的差別是如何? 希望各位可以稍微解釋或是提供資料讓我了解,感謝

看更多先前的討論...收起先前的討論...
dragonH iT邦大師 1 級 ‧ 2020-02-24 23:28:59 檢舉
於是 javascript 就誕生了
石頭 iT邦研究生 2 級 ‧ 2020-02-25 00:09:57 檢舉
因為她是"超文本標記語言"
> 標記語言而非程式語言
瀏覽器解析Html並渲染畫面出來.

PS假如你有能力自己做一個瀏覽器應用程式,你也可以讓HTML支援 你想要的For 迴圈
優悠 iT邦新手 4 級 ‧ 2020-02-25 08:45:32 檢舉
cshtml可以有
HTML 是一種標記語言,透過解析標記來顯示被標記的內容
配合瀏覽器針對可以產生HTML的程式語言解析引擎,之後就能夠有程式語言的功能,例如常見的 JS PHP JQUERY JSP ASP 這些都能產生HTML的程式語言
接著還有所謂的 UI UX 設計,例如 CSS等,還有所謂的框架、爬蟲、資料庫等等
基本上樓主這個問題餵狗就能得到解答的
NETSCAPE 1.0 表示,你們講得我都不懂,我支持樓主說的,HTML沒有迴圈這件事
連cshtml都出來了。那我再追加一個vbhtml好了。
這樣子會不會更搞混原本的東西啊。

話說,居然給我看到 NETSCAPE 的名字。有種莫名的感動啊!!!!
這麼多的檔案類型,其實也要看用的WEB SERVICE 能不能吃,最早的 WEB SERVICE 只能吃附檔名是 HTML 然後過了很久才能 吃 HTM,當然連帶的瀏覽器也是跟著進步,那堆後來延伸類型都是市場需求產生,HTML 最早也只有 18個標記而已,是後來W3C 慢慢的規範,才有這麼多的標記可以用,至於JS 跟 HTML 兩者可是相差了4-5年的時間,要NETSCAPE 2 才有吃,樓主真的想了解去 WIKI 把每一個名詞都找過一遍,看過一遍相信對這些基本觀念會有幫助的
疑???我一直以為是先htm之後才是html。原來是相反。
好吧,至少多了一項知識了。
好的,謝謝各位大神的幫忙。
7
浩瀚星空
iT邦大師 1 級 ‧ 2020-02-25 09:29:55
最佳解答

已經很多人說了很多專業術語。你能明白的話就好。

我就換個比較白話的說法好了。

認真來說,html文件就很像是一種板模。當然直接說板模也並不太正確。
因為其還可以用css來做上色的表現。

但單純一點來看,還是可以將其當成一種板模。
認真來講,html它並非是一種可程式化的樣板。畢竟它真正的意義是一種樣式的表現。固定的東西。
所以根本不可能跑for或是while這種動態式的東西。

雖說如此,但html可以利用css、javascript來去調整板模。借此來達到你說的使用for及while。
css可以定義表現。它可以設定規則處理。javascript才是可程式化的語言。

真要說html跟c有什麼不同。
html就是「標記語言」這樣的說法你因該也是不懂。白話點的說法就是,它是一個畫,一個刻板。
c語言則是一個平板一個可程序化的機器。

認真來說,這兩者可以說是完全不一樣的東西。只是c也可以輸出html而已。
所以你拿這兩個來當比對組,說實在的並不是很適合。

看更多先前的回應...收起先前的回應...
小魚 iT邦大師 1 級 ‧ 2020-02-25 14:20:00 檢舉

說到這讓我想到,
為什麼Word沒有迴圈?

word好像有喔。可以用巨集。

Word本身沒有,含有巨集的Word有

呃...如果你要把合併列印算成一種迴圈或Template的表示方式的話那就算Word有好了

哈~~~你居然先說出合併列印出來了。
害我沒梗了。

不過反正cshtml跟vbhtml都說出來了。
那連wordview也一起也算好了。

2
dragonH
iT邦大師 1 級 ‧ 2020-02-24 23:43:36

想知道為什麼HTML沒有迴圈像是 while 或是 for 之類的迴圈功能

因為不是他最主要的目的

瀏覽器使用HTML標籤和指令碼來詮釋網頁內容,但不會將它們顯示在頁面上

參考

我查了一些資料說他是一種標記語言,還是不是很懂這個意思

就是字面上的意思, 你可以跟上題搭著看

這和其他C以及C++那些語言的差別是如何

c, c++ 那些是 編譯語言

通常會拿來與其相比的會是 直譯語言

最具代表性的就是 javascript

兩者最大的差別就是直譯語言沒有編譯器

所以可能很多問題

如果開發習慣不好

很容易到了 runtime 才發現

初學 javascript 可以看看 w3School

想要刷題練習可以參考 codewars

感謝,想再請問
請問指令碼指的是 HTML 的 code嗎?

沒有編譯器是什麼意思,我如果用記事本跟VS來寫會有差別? 感覺只是介面不同而已?

dragonH iT邦大師 1 級 ‧ 2020-02-27 13:28:26 檢舉

jerry821125

請問指令碼指的是 HTML 的 code嗎

沒有編譯器是什麼意思

編譯程式在可執行前

都要執行編譯的動作

直譯程式不用

有些錯誤在編譯時就可以被找到

沒有編譯的話

例如用記事本寫一個 js

你裡面寫 dragonH.log('123')

他都不會跟你說有問題

只有在執行的時候才會說

好的,我瞭解了,感謝

1
阿展展展
iT邦好手 1 級 ‧ 2020-02-24 23:48:26

親愛的 你知道 javascript 嗎

看更多先前的回應...收起先前的回應...

不知道。我只知道vbscript。

ps:現在是在比老嘛??

/images/emoticon/emoticon04.gif

Visual Basic

小魚 iT邦大師 1 級 ‧ 2020-02-25 23:53:54 檢舉

QuickBasic

3
fillano
iT邦超人 1 級 ‧ 2020-02-25 07:35:42

我是覺得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發展出來的。

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2020-02-25 07:41:36 檢舉

其實要用標記語言定義迴圈並不是做不到,印象中一些xml應用就有,例如xslt:https://stackoverflow.com/questions/9076323/xslt-looping-from-1-to-60 ,不過很恰巧,xslt是一個專注在「processing」的應用,跟以文件為中心的應用不太一樣。

所以HTML比較像是一個網頁的架構?
那請問為什麼HTML不慢慢地發展迴圈的功能?
這樣是不是就不需要搭配像是PHP這樣的語言?

fillano iT邦超人 1 級 ‧ 2020-02-27 13:42:34 檢舉

因為不需要啊。他是規範文章本身的語言,不是怎麼處理文章資料的語言。

瞭解,感謝你

2
打狗松鼠
iT邦新手 5 級 ‧ 2020-02-25 09:29:07

簡單解釋如下

標記語言:用標記的方式來儲存資料的一種語言格式,諸如HTML、XML等均屬之

程式語言:利用語彙基元(此為C#的用詞,詳見此處)組成一系列陳述句,然後經過某種解釋器(編譯/直譯/組譯等)的解釋後,轉為對電腦下指令並執行的機器碼,進而運用電腦的運算能力解決問題

回到正題:為什麼HTML沒有迴圈?
答:HTML最原始的用途就是用來標記資料,不進行任何運算,自然不需要迴圈、判斷等功能。

補充:樓上各位提到的javascript,本身是程式語言的一種,可進行複雜的運算功能,而在網頁中常見的用途就是利用javascript更改HTML標記的資料
所以要用迴圈得用在javascript,javascript才具有讓電腦做運算的能力,而HTML沒有

小魚 iT邦大師 1 級 ‧ 2020-02-25 14:19:15 檢舉

下一個問題:為什麼Xml沒有迴圈?

好的,感謝/images/emoticon/emoticon34.gif

1
player
iT邦大師 1 級 ‧ 2020-02-25 19:30:16

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/

0
cyc0713
iT邦新手 5 級 ‧ 2020-03-02 19:25:31

我的理解是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指令,也就是常說的網頁程式與一般程式語言不同處或相似處(萬變不離其宗)。

我要發表回答

立即登入回答