整合營銷服務(wù)商

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

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

          一文掌握HTML語言的基礎(chǔ)語法



          礎(chǔ)準(zhǔn)備

          我使用的是Hbuilder編輯器,在hbuilder中創(chuàng)建一個(gè)HTML文件。


          在hbuilder中運(yùn)行HTML文件


          效果



          HTML文檔結(jié)構(gòu)

          <!DOCTYPE html>
          <html>
          	<head>
          		<!--網(wǎng)頁的頭部 -->
          	</head>
          	<body>
          		<!--網(wǎng)頁內(nèi)容 -->
          	</body>
          </html>
          
          <!-- -->   用于注釋代碼


          HTML常用標(biāo)簽

          基礎(chǔ)標(biāo)簽

          • html 最外層的元素
          • head 網(wǎng)頁的頭部
          • title 網(wǎng)頁的標(biāo)題
          • body 網(wǎng)頁內(nèi)容

          文本格式化

          • i/em 斜體
          • strong 加粗
          • q 引用
          • blockquote 長引用
          • code 元素定義編程代碼示例
          <i>武漢,加油!</i>
          <em>湖北,加油!</em>
          
          <strong>武漢,加油!</strong>
          
          <q>HX是輕量編輯器和強(qiáng)大IDE的完美結(jié)合體。敏捷的性能,清爽的界面,強(qiáng)大的功能和于一身。</q>
          
          <blockquote>
            HX是輕量編輯器和強(qiáng)大IDE的完美結(jié)合體。敏捷的性能,清爽的界面,強(qiáng)大的功能和于一身。
          </blockquote>
          
          <code>var a = 1 </code>

          實(shí)驗(yàn)效果


          標(biāo)題段落

          • h1-h6 表示標(biāo)題 數(shù)字越大 字體越小
          • p 段落標(biāo)簽
          • hr 水平分割線
          • br 換行
          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="utf-8">
          		<title>使用標(biāo)題和段落</title>
          	</head>
          	<body>
          		
          		<!-- 標(biāo)題-->
          		<h1>武漢加油!</h1>
          		<h2>武漢加油!</h2>
          		<h3>武漢加油!</h3>
          		
          		<h4>武漢加油!</h4>
          		<h5>武漢加油!</h5>
          		<h6>武漢加油!</h6>
          		
          		<!--段落標(biāo)簽-->
          		<p>武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!</p>
          	
          	    <hr > <!--水平分割線-->
          		<p>武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!武漢加油!</p>
          
          <!-- 換行符-->
          武漢加油!武漢加油!武漢加油!武漢加油!
          <br>武漢加油!武漢加油!武漢加油!
                  
          	</body>
          </html>


          塊元素

          • div 盒子
          • span 功能和div類似,span可以用來裝一小段文字 和div的區(qū)別就是 在一行內(nèi)顯示
          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="utf-8">
          		<title>03</title>
          	</head>
          	<body>
          		
          		<i style="background-color: blue;">武漢加油! 武漢加油! 武漢加油! 武漢加油! 武漢加油! </i>
          		
          		<div style="background-color: aqua;">
          			武漢加油! 武漢加油! 武漢加油! 武漢加油! 武漢加油!
          		</div>
          		<div style="background-color: aqua;">
          			武漢加油! 武漢加油! 武漢加油! 武漢加油! 武漢加油!
          		</div>
          		
          		<span style="background-color: blue;">
          			武漢加油! 武漢加油! 武漢加油! 武漢加油! 武漢加油!
          		</span>
          		<span style="background-color: blue;">
          			武漢加油! 武漢加油! 武漢加油! 武漢加油! 武漢加油!
          		</span>
          	</body>
          </html>

          最終效果


          圖片

          • img
          • img標(biāo)簽必須加上 src屬性 才能把圖像展示出來
          • alt屬性: 當(dāng)圖片沒有辦法顯示的時(shí)候用來提示用戶的文字
          • title屬性:當(dāng)鼠標(biāo)移動(dòng)到圖片的時(shí)候,用來提示用戶的文字
          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="utf-8">
          		<title>使用圖片</title>
          	</head>
          	<body>
          		hello
          		
          		<img src="images/02.png" alt="風(fēng)景圖" title="測試圖片" >
          	</body>
          </html>


          鏈接

          • a標(biāo)簽 超鏈接
          • href屬性: 超鏈接的地址
          • target屬性:_blank 表示新建一個(gè)瀏覽器標(biāo)簽頁來顯示超鏈接的內(nèi)容,不會(huì)覆蓋原來的網(wǎng)頁_parentsearchtop
          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="utf-8">
          		<title></title>
          	</head>
          	<body>
          		
          		<a href="http://www.baidu.com" target="_blank">百度一下</a>
          		<a href="http://www.baidu.com" target="_parent">百度一下</a>
          	    <a href="http://www.baidu.com" target="_search">百度一下</a>
          		<a href="http://www.baidu.com" target="_top">百度一下</a>
          	
          	</body>
          </html>
          
          


          列表

          • ol 有序列表
          • ul 無序列表
          • li 列表項(xiàng)
          • type 定義類型
          • disc 實(shí)體圓點(diǎn)
          • circle 空心圓
          • square 實(shí)體方形
          • a 小寫字母 (有序)
          • A 大寫字母(有序)
          • 默認(rèn)數(shù)字(有序)
          <!DOCTYPE html>
          <html>
          	<head>
          		<meta charset="utf-8">
          		<title>列表</title>
          	</head>
          	<body>
          		
          		
          		<!--有序列表-->
          		
          		<ol type="1"> 
          			<li>北京</li>
          			<li>上海</li>
          		</ol>
          		
          		
          		<ol type="A">
          			<li>北京</li>
          			<li>上海</li>
          		</ol>
          		
          		<ol type="a">
          			<li>北京</li>
          			<li>上海</li>
          		</ol>
          		
          		
          		<!-- 無序列表-->
          		<ul type="disc">
          			<li>北京</li>
          			<li>上海</li>
          		</ul>
          		<ul type="circle">
          			<li>北京</li>
          			<li>上海</li>
          		</ul>
          		
          		<ul type="square">
          			<li>北京</li>
          			<li>上海</li>
          		</ul>
          		
          		
          	</body>
          </html>


          表格

          • tablecaption 表格標(biāo)題
          • th 表頭
          • tr 行
          • td 單元格

          、語句

          JavaScript 程序的執(zhí)行單位為行(line),也就是一行一行地執(zhí)行。一般情況下,每一行就是一個(gè)語句。

          語句(statement)是為了完成某種任務(wù)而進(jìn)行的操作,比如下面就是一行賦值語句。

          var a = 1 + 3;
          

          這條語句先用var命令,聲明了變量a,然后將1 + 3的運(yùn)算結(jié)果賦值給變量a。

          1 + 3叫做表達(dá)式(expression),指一個(gè)為了得到返回值的計(jì)算式。語句和表達(dá)式的區(qū)別在于,前者主要為了進(jìn)行某種操作,一般情況下不需要返回值;后者則是為了得到返回值,一定會(huì)返回一個(gè)值。凡是 JavaScript 語言中預(yù)期為值的地方,都可以使用表達(dá)式。比如,賦值語句的等號右邊,預(yù)期是一個(gè)值,因此可以放置各種表達(dá)式。

          語句以分號結(jié)尾,一個(gè)分號就表示一個(gè)語句結(jié)束。多個(gè)語句可以寫在一行內(nèi)。

          var a = 1 + 3 ; var b = 'abc';
          

          分號前面可以沒有任何內(nèi)容,JavaScript 引擎將其視為空語句。

          ;;;
          

          上面的代碼就表示3個(gè)空語句。

          表達(dá)式不需要分號結(jié)尾。一旦在表達(dá)式后面添加分號,則 JavaScript 引擎就將表達(dá)式視為語句,這樣會(huì)產(chǎn)生一些沒有任何意義的語句。

          1 + 3;'abc';
          

          上面兩行語句只是單純地產(chǎn)生一個(gè)值,并沒有任何實(shí)際的意義。

          2、變量

          2.1、概念

          變量是對“值”的具名引用。變量就是為“值”起名,然后引用這個(gè)名字,就等同于引用這個(gè)值。變量的名字就是變量名。

          var a = 1;
          

          上面的代碼先聲明變量a,然后在變量a與數(shù)值1之間建立引用關(guān)系,稱為將數(shù)值1“賦值”給變量a。以后,引用變量名a就會(huì)得到數(shù)值1。最前面的var,是變量聲明命令。它表示通知解釋引擎,要?jiǎng)?chuàng)建一個(gè)變量a。

          注意,JavaScript 的變量名區(qū)分大小寫,A和a是兩個(gè)不同的變量。

          變量的聲明和賦值,是分開的兩個(gè)步驟,上面的代碼將它們合在了一起,實(shí)際的步驟是下面這樣。

          var a;
          a = 1;
          

          如果只是聲明變量而沒有賦值,則該變量的值是undefined。undefined是一個(gè) JavaScript 關(guān)鍵字,表示“無定義”。

          var a;
          a // undefined
          

          如果變量賦值的時(shí)候,忘了寫var命令,這條語句也是有效的。

          var a = 1;// 基本等同a = 1;
          

          但是,不寫var的做法,不利于表達(dá)意圖,而且容易不知不覺地創(chuàng)建全局變量,所以建議總是使用var命令聲明變量。

          如果一個(gè)變量沒有聲明就直接使用,JavaScript 會(huì)報(bào)錯(cuò),告訴你變量未定義。

          x// ReferenceError: x is not defined
          

          上面代碼直接使用變量x,系統(tǒng)就報(bào)錯(cuò),告訴你變量x沒有聲明。

          可以在同一條var命令中聲明多個(gè)變量。

          var a, b;
          

          JavaScript 是一種動(dòng)態(tài)類型語言,也就是說,變量的類型沒有限制,變量可以隨時(shí)更改類型。

          var a = 1;
          a = 'hello';
          

          上面代碼中,變量a起先被賦值為一個(gè)數(shù)值,后來又被重新賦值為一個(gè)字符串。第二次賦值的時(shí)候,因?yàn)樽兞縜已經(jīng)存在,所以不需要使用var命令。

          如果使用var重新聲明一個(gè)已經(jīng)存在的變量,是無效的。

          var x = 1;var x;
          x // 1
          

          上面代碼中,變量x聲明了兩次,第二次聲明是無效的。

          但是,如果第二次聲明的時(shí)候還進(jìn)行了賦值,則會(huì)覆蓋掉前面的值。

          var x = 1;var x = 2;// 等同于var x = 1;var x;
          x = 2;
          


          2.2、變量提升

          JavaScript 引擎的工作方式是,先解析代碼,獲取所有被聲明的變量,然后再一行一行地運(yùn)行。這造成的結(jié)果,就是所有的變量的聲明語句,都會(huì)被提升到代碼的頭部,這就叫做變量提升(hoisting)。

          console.log(a);var a = 1;
          

          上面代碼首先使用console.log方法,在控制臺(tái)(console)顯示變量a的值。這時(shí)變量a還沒有聲明和賦值,所以這是一種錯(cuò)誤的做法,但是實(shí)際上不會(huì)報(bào)錯(cuò)。因?yàn)榇嬖谧兞刻嵘嬲\(yùn)行的是下面的代碼。

          var a;console.log(a);
          a = 1;
          

          最后的結(jié)果是顯示undefined,表示變量a已聲明,但還未賦值。

          3、標(biāo)識(shí)符

          標(biāo)識(shí)符(identifier)指的是用來識(shí)別各種值的合法名稱。最常見的標(biāo)識(shí)符就是變量名,以及后面要提到的函數(shù)名。JavaScript 語言的標(biāo)識(shí)符對大小寫敏感,所以a和A是兩個(gè)不同的標(biāo)識(shí)符。

          標(biāo)識(shí)符有一套命名規(guī)則,不符合規(guī)則的就是非法標(biāo)識(shí)符。JavaScript 引擎遇到非法標(biāo)識(shí)符,就會(huì)報(bào)錯(cuò)。

          簡單說,標(biāo)識(shí)符命名規(guī)則如下。

          • 第一個(gè)字符,可以是任意 Unicode 字母(包括英文字母和其他語言的字母),以及美元符號($)和下劃線(_)。
          • 第二個(gè)字符及后面的字符,除了 Unicode 字母、美元符號和下劃線,還可以用數(shù)字0-9。

          下面這些都是合法的標(biāo)識(shí)符。

          arg0
          _tmp
          $elem
          π
          

          下面這些則是不合法的標(biāo)識(shí)符。

          1a // 第一個(gè)字符不能是數(shù)字
          23 // 同上
          *** // 標(biāo)識(shí)符不能包含星號
          a+b // 標(biāo)識(shí)符不能包含加號
          -d // 標(biāo)識(shí)符不能包含減號或連詞線
          

          中文是合法的標(biāo)識(shí)符,可以用作變量名。

          var 臨時(shí)變量 = 1;
          
          JavaScript 有一些保留字,不能用作標(biāo)識(shí)符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

          4、注釋

          源碼中被 JavaScript 引擎忽略的部分就叫做注釋,它的作用是對代碼進(jìn)行解釋。Javascript 提供兩種注釋的寫法:一種是單行注釋,用//起頭;另一種是多行注釋,放在/*和*/之間。

          // 這是單行注釋/*
           這是
           多行
           注釋
          */
          

          此外,由于歷史上 JavaScript 可以兼容 HTML 代碼的注釋,所以<!--和-->也被視為合法的單行注釋。

          x = 1; <!-- x = 2;
          --> x = 3;
          

          上面代碼中,只有x = 1會(huì)執(zhí)行,其他的部分都被注釋掉了。

          需要注意的是,-->只有在行首,才會(huì)被當(dāng)成單行注釋,否則會(huì)當(dāng)作正常的運(yùn)算。

          function countdown(n) { 
          while (n --> 0) console.log(n);
          }
          countdown(3)// 2// 1// 0
          

          上面代碼中,n --> 0實(shí)際上會(huì)當(dāng)作n-- > 0,因此輸出2、1、0。

          5、區(qū)塊

          JavaScript 使用大括號,將多個(gè)相關(guān)的語句組合在一起,稱為“區(qū)塊”(block)。

          對于var命令來說,JavaScript 的區(qū)塊不構(gòu)成單獨(dú)的作用域(scope)。

          { var a = 1;
          }
          a // 1
          

          上面代碼在區(qū)塊內(nèi)部,使用var命令聲明并賦值了變量a,然后在區(qū)塊外部,變量a依然有效,區(qū)塊對于var命令不構(gòu)成單獨(dú)的作用域,與不使用區(qū)塊的情況沒有任何區(qū)別。在 JavaScript 語言中,單獨(dú)使用區(qū)塊并不常見,區(qū)塊往往用來構(gòu)成其他更復(fù)雜的語法結(jié)構(gòu),比如for、if、while、function等。

          6、條件語句

          JavaScript 提供if結(jié)構(gòu)和switch結(jié)構(gòu),完成條件判斷,即只有滿足預(yù)設(shè)的條件,才會(huì)執(zhí)行相應(yīng)的語句。

          6.1、if 結(jié)構(gòu)

          if結(jié)構(gòu)先判斷一個(gè)表達(dá)式的布爾值,然后根據(jù)布爾值的真?zhèn)危瑘?zhí)行不同的語句。所謂布爾值,指的是 JavaScript 的兩個(gè)特殊值,true表示真,false表示偽。

          if (布爾值)
           語句;
          // 或者if (布爾值) 語句;
          

          上面是if結(jié)構(gòu)的基本形式。需要注意的是,“布爾值”往往由一個(gè)條件表達(dá)式產(chǎn)生的,必須放在圓括號中,表示對表達(dá)式求值。如果表達(dá)式的求值結(jié)果為true,就執(zhí)行緊跟在后面的語句;如果結(jié)果為false,則跳過緊跟在后面的語句。

          if (m === 3)
           m = m + 1;
          

          上面代碼表示,只有在m等于3時(shí),才會(huì)將其值加上1。

          這種寫法要求條件表達(dá)式后面只能有一個(gè)語句。如果想執(zhí)行多個(gè)語句,必須在if的條件判斷之后,加上大括號,表示代碼塊(多個(gè)語句合并成一個(gè)語句)。

          if (m === 3) {
           m += 1;
          }
          

          建議總是在if語句中使用大括號,因?yàn)檫@樣方便插入語句。

          注意,if后面的表達(dá)式之中,不要混淆賦值表達(dá)式(=)、嚴(yán)格相等運(yùn)算符(===)和相等運(yùn)算符(==)。尤其是賦值表達(dá)式不具有比較作用。

          var x = 1;var y = 2;
          if (x = y) { console.log(x);
          }// "2"
          

          上面代碼的原意是,當(dāng)x等于y的時(shí)候,才執(zhí)行相關(guān)語句。但是,不小心將嚴(yán)格相等運(yùn)算符寫成賦值表達(dá)式,結(jié)果變成了將y賦值給變量x,再判斷變量x的值(等于2)的布爾值(結(jié)果為true)。

          這種錯(cuò)誤可以正常生成一個(gè)布爾值,因而不會(huì)報(bào)錯(cuò)。為了避免這種情況,有些開發(fā)者習(xí)慣將常量寫在運(yùn)算符的左邊,這樣的話,一旦不小心將相等運(yùn)算符寫成賦值運(yùn)算符,就會(huì)報(bào)錯(cuò),因?yàn)槌A坎荒鼙毁x值。

          if (x = 2) {
           // 不報(bào)錯(cuò)
          if (2 = x) { 
           // 報(bào)錯(cuò)
          

          至于為什么優(yōu)先采用“嚴(yán)格相等運(yùn)算符”(===),而不是“相等運(yùn)算符”(==),請參考《運(yùn)算符》章節(jié)。

          6.2、if...else 結(jié)構(gòu)

          if代碼塊后面,還可以跟一個(gè)else代碼塊,表示不滿足條件時(shí),所要執(zhí)行的代碼。

          if (m === 3) { 
          // 滿足條件時(shí),執(zhí)行的語句
          }
           else { 
           // 不滿足條件時(shí),執(zhí)行的語句
          }
          

          上面代碼判斷變量m是否等于3,如果等于就執(zhí)行if代碼塊,否則執(zhí)行else代碼塊。

          對同一個(gè)變量進(jìn)行多次判斷時(shí),多個(gè)if...else語句可以連寫在一起。

          if (m === 0) { 
          // ...} 
          else if (m === 1) { 
           // ...} 
           else if (m === 2) { 
           // ...} 
           else { // ...}
          

          else代碼塊總是與離自己最近的那個(gè)if語句配對。

          var m = 1;
          var n = 2;
          if (m !== 1)
          if (n === 2) 
          console.log('hello');
          else console.log('world');
          

          上面代碼不會(huì)有任何輸出,else代碼塊不會(huì)得到執(zhí)行,因?yàn)樗氖亲罱哪莻€(gè)if語句,相當(dāng)于下面這樣。

          if (m !== 1) { 
          if (n === 2) 
          { console.log('hello');	
           }
           else { console.log('world');
           }
          }
          

          如果想讓else代碼塊跟隨最上面的那個(gè)if語句,就要改變大括號的位置。

          if (m !== 1) { 
          if (n === 2) { 
          console.log('hello');	
           }
          } 
          else { console.log('world');
          }// world
          


          6.3、switch 結(jié)構(gòu)

          多個(gè)if...else連在一起使用的時(shí)候,可以轉(zhuǎn)為使用更方便的switch結(jié)構(gòu)。

          switch (fruit) { 
          case "banana": // ...
           break; 
          case "apple": // ...
           break; 
          default: // ...}
          

          上面代碼根據(jù)變量fruit的值,選擇執(zhí)行相應(yīng)的case。如果所有case都不符合,則執(zhí)行最后的default部分。需要注意的是,每個(gè)case代碼塊內(nèi)部的break語句不能少,否則會(huì)接下去執(zhí)行下一個(gè)case代碼塊,而不是跳出switch結(jié)構(gòu)。

          var x = 1;
          switch (x) { 
          case 1: 
          console.log('x 等于1'); 
          case 2: 
          console.log('x 等于2'); 
          default: console.log('x 等于其他值');
          }// x等于1// x等于2// x等于其他值
          

          上面代碼中,case代碼塊之中沒有break語句,導(dǎo)致不會(huì)跳出switch結(jié)構(gòu),而會(huì)一直執(zhí)行下去。正確的寫法是像下面這樣。

          switch (x) { 
          case 1: console.log('x 等于1'); 
           break; 
           case 2: console.log('x 等于2'); 
           break; 
           default: console.log('x 等于其他值');
          }
          

          switch語句部分和case語句部分,都可以使用表達(dá)式。

          switch (1 + 3) { case 2 + 2:
           f(); break; default:
           neverHappens();
          }
          

          上面代碼的default部分,是永遠(yuǎn)不會(huì)執(zhí)行到的。

          需要注意的是,switch語句后面的表達(dá)式,與case語句后面的表示式比較運(yùn)行結(jié)果時(shí),采用的是嚴(yán)格相等運(yùn)算符(===),而不是相等運(yùn)算符(==),這意味著比較時(shí)不會(huì)發(fā)生類型轉(zhuǎn)換。

          var x = 1;
          switch (x) { 
          case true: console.log('x 發(fā)生類型轉(zhuǎn)換'); 
          break; 
          default: console.log('x 沒有發(fā)生類型轉(zhuǎn)換');
          }// x 沒有發(fā)生類型轉(zhuǎn)換
          

          上面代碼中,由于變量x沒有發(fā)生類型轉(zhuǎn)換,所以不會(huì)執(zhí)行case true的情況。這表明,switch語句內(nèi)部采用的是“嚴(yán)格相等運(yùn)算符”,詳細(xì)解釋請參考《運(yùn)算符》一節(jié)。

          6.4、三元運(yùn)算符 ?:

          JavaScript 還有一個(gè)三元運(yùn)算符(即該運(yùn)算符需要三個(gè)運(yùn)算子)?:,也可以用于邏輯判斷。

          (條件) ? 表達(dá)式1 : 表達(dá)式2
          

          上面代碼中,如果“條件”為true,則返回“表達(dá)式1”的值,否則返回“表達(dá)式2”的值。

          var even = (n % 2 === 0) ? true : false;
          

          上面代碼中,如果n可以被2整除,則even等于true,否則等于false。它等同于下面的形式。

          var even;if (n % 2 === 0) {
           even = true;
          } else {
           even = false;
          }
          

          這個(gè)三元運(yùn)算符可以被視為if...else...的簡寫形式,因此可以用于多種場合。

          var myVar;console.log(
           myVar ? 'myVar has a value' : 'myVar does not have a value')
          // myVar does not have a value
          

          上面代碼利用三元運(yùn)算符,輸出相應(yīng)的提示。

          var msg = '數(shù)字' + n + '是' + (n % 2 === 0 ? '偶數(shù)' : '奇數(shù)');
          

          上面代碼利用三元運(yùn)算符,在字符串之中插入不同的值。

          7、循環(huán)語句

          循環(huán)語句用于重復(fù)執(zhí)行某個(gè)操作,它有多種形式。

          7.1、while 循環(huán)

          While語句包括一個(gè)循環(huán)條件和一段代碼塊,只要條件為真,就不斷循環(huán)執(zhí)行代碼塊。

          while (條件)
           語句;// 或者while (條件) 語句;
          

          while語句的循環(huán)條件是一個(gè)表達(dá)式,必須放在圓括號中。代碼塊部分,如果只有一條語句,可以省略大括號,否則就必須加上大括號。

          while (條件) {
           語句;
          }
          

          下面是while語句的一個(gè)例子。

          var i = 0;while (i < 100) { console.log('i 當(dāng)前為:' + i);
           i = i + 1;
          }
          

          上面的代碼將循環(huán)100次,直到i等于100為止。

          下面的例子是一個(gè)無限循環(huán),因?yàn)檠h(huán)條件總是為真。

          while (true) { console.log('Hello, world');
          }
          


          7.2、for 循環(huán)

          for語句是循環(huán)命令的另一種形式,可以指定循環(huán)的起點(diǎn)、終點(diǎn)和終止條件。它的格式如下。

          for (初始化表達(dá)式; 條件; 遞增表達(dá)式)
           語句// 或者for (初始化表達(dá)式; 條件; 遞增表達(dá)式) {
           語句
          }
          

          for語句后面的括號里面,有三個(gè)表達(dá)式。

          • 初始化表達(dá)式(initialize):確定循環(huán)變量的初始值,只在循環(huán)開始時(shí)執(zhí)行一次。
          • 條件表達(dá)式(test):每輪循環(huán)開始時(shí),都要執(zhí)行這個(gè)條件表達(dá)式,只有值為真,才繼續(xù)進(jìn)行循環(huán)。
          • 遞增表達(dá)式(increment):每輪循環(huán)的最后一個(gè)操作,通常用來遞增循環(huán)變量。

          下面是一個(gè)例子。

          var x = 3;for (var i = 0; i < x; i++) { console.log(i);
          }// 0// 1// 2
          

          上面代碼中,初始化表達(dá)式是var i = 0,即初始化一個(gè)變量i;測試表達(dá)式是i < x,即只要i小于x,就會(huì)執(zhí)行循環(huán);遞增表達(dá)式是i++,即每次循環(huán)結(jié)束后,i增大1。

          所有for循環(huán),都可以改寫成while循環(huán)。上面的例子改為while循環(huán),代碼如下。

          var x = 3;var i = 0;while (i < x) { console.log(i);
           i++;
          }
          

          for語句的三個(gè)部分(initialize、test、increment),可以省略任何一個(gè),也可以全部省略。

          for ( ; ; ){ console.log('Hello World');
          }
          

          上面代碼省略了for語句表達(dá)式的三個(gè)部分,結(jié)果就導(dǎo)致了一個(gè)無限循環(huán)。

          7.3、do...while 循環(huán)

          do...while循環(huán)與while循環(huán)類似,唯一的區(qū)別就是先運(yùn)行一次循環(huán)體,然后判斷循環(huán)條件。

          do
           語句while (條件);// 或者do {
           語句
          } while (條件);
          

          不管條件是否為真,do...while循環(huán)至少運(yùn)行一次,這是這種結(jié)構(gòu)最大的特點(diǎn)。另外,while語句后面的分號注意不要省略。

          下面是一個(gè)例子。

          var x = 3;var i = 0;do { console.log(i);
           i++;
          } while(i < x);
          


          7.4、break 語句和 continue 語句

          break語句和continue語句都具有跳轉(zhuǎn)作用,可以讓代碼不按既有的順序執(zhí)行。

          break語句用于跳出代碼塊或循環(huán)。

          var i = 0;while(i < 100) { console.log('i 當(dāng)前為:' + i);
           i++; if (i === 10) break;
          }
          

          上面代碼只會(huì)執(zhí)行10次循環(huán),一旦i等于10,就會(huì)跳出循環(huán)。

          for循環(huán)也可以使用break語句跳出循環(huán)。

          for (var i = 0; i < 5; i++) { console.log(i); if (i === 3) break;
          }// 0// 1// 2// 3
          

          上面代碼執(zhí)行到i等于3,就會(huì)跳出循環(huán)。

          continue語句用于立即終止本輪循環(huán),返回循環(huán)結(jié)構(gòu)的頭部,開始下一輪循環(huán)。

          var i = 0;while (i < 100){
           i++; if (i % 2 === 0) continue; console.log('i 當(dāng)前為:' + i);
          }
          

          上面代碼只有在i為奇數(shù)時(shí),才會(huì)輸出i的值。如果i為偶數(shù),則直接進(jìn)入下一輪循環(huán)。

          如果存在多重循環(huán),不帶參數(shù)的break語句和continue語句都只針對最內(nèi)層循環(huán)。

          7.5、標(biāo)簽(label)

          JavaScript 語言允許,語句的前面有標(biāo)簽(label),相當(dāng)于定位符,用于跳轉(zhuǎn)到程序的任意位置,標(biāo)簽的格式如下。

          label:
           語句
          

          標(biāo)簽可以是任意的標(biāo)識(shí)符,但不能是保留字,語句部分可以是任意語句。

          標(biāo)簽通常與break語句和continue語句配合使用,跳出特定的循環(huán)。

          top: for (var i = 0; i < 3; i++){ 
           for (var j = 0; j < 3; j++){ 
           if (i === 1 && j === 1) break top; 
           console.log('i=' + i + ', j=' + j);
           }
           }// i=0, j=0// i=0, j=1// i=0, j=2// i=1, j=0
          

          上面代碼為一個(gè)雙重循環(huán)區(qū)塊,break命令后面加上了top標(biāo)簽(注意,top不用加引號),滿足條件時(shí),直接跳出雙層循環(huán)。如果break語句后面不使用標(biāo)簽,則只能跳出內(nèi)層循環(huán),進(jìn)入下一次的外層循環(huán)。

          標(biāo)簽也可以用于跳出代碼塊。

          foo: { console.log(1); 
          break 
          foo; console.log('本行不會(huì)輸出');
          }console.log(2);// 1// 2
          

          上面代碼執(zhí)行到break foo,就會(huì)跳出區(qū)塊。

          continue語句也可以與標(biāo)簽配合使用。

          top: 
          for (var i = 0; i < 3; i++){ 
          for (var j = 0; j < 3; j++){ 
           if (i === 1 && j === 1) continue top; 
          console.log('i=' + i + ', j=' + j);
           }
           }
          // i=0, j=0
          // i=0, j=1
          // i=0, j=2
          // i=1, j=0
          // i=2, j=0
          // i=2, j=1
          // i=2, j=2
          

          上面代碼中,continue命令后面有一個(gè)標(biāo)簽名,滿足條件時(shí),會(huì)跳過當(dāng)前循環(huán),直接進(jìn)入下一輪外層循環(huán)。如果continue語句后面不使用標(biāo)簽,則只能進(jìn)入下一輪的內(nèi)層循環(huán)。

          推薦閱讀:

          「JavaScript 教程」入門篇-導(dǎo)論

          「JavaScript 教程」數(shù)據(jù)類型-數(shù)組

          「JavaScript 教程」數(shù)據(jù)類型-對象

          詳解 js 閉包(圖文版)

          js 中原型和原型鏈深入理解

          SS樣式表是不區(qū)分大小寫, 建議全部小寫

          注釋: /* 注釋內(nèi)容 */

          單位問題:CSS 建議都寫上單位

          如何將樣式表加入您的網(wǎng)頁:

          內(nèi)聯(lián)定義即是在對象的標(biāo)記內(nèi)使用對象的style屬性定義適用其的樣式表屬性。

          示例代碼:

          <p style="color:#f00">這一行的字體顏色將顯示為紅色</p>

          內(nèi)部樣式塊對象 Embedding a Style Block

          你可以在你的HTML文檔的<head>標(biāo)記里插入一個(gè)<style>塊對象。

          示例代碼:

          <style type="text/css">
          body{background:#fff;color:#000;}
          p{font-size:14px;}
          </style>

          外部樣式表 Linking to a Style Sheet

          你可以先建立外部樣式表文件*.css,然后使用HTML的link對象。

          示例代碼:

          <link rel="stylesheet" type="text/css" href="*.css" />

          rel="stylesheet" 是指在HTML文件中使用的是外部樣式表;

          type="text/css" 指明該文件的類型是樣式表文件;

          使用@import命令導(dǎo)入外部CSS文件(兼容性差,有些瀏覽器不支持)

          <style type="text/css">
          @import url("*.css");
          </style>

          使用<!-- -->解決兼容性

          對于不支持CSS樣式的瀏覽器, 將會(huì)把編寫的CSS代碼當(dāng)成普通的字符串顯示在網(wǎng)頁中。

          <style type="text/css">
          <!--
          h4{ /* 標(biāo)記選擇器 */
          color:red;
          font-size:18px;
          }
          -->
          </style>
          <style type="text/css">
          div{width:200px;}
          img{float:right}
          </style>

          花括號(})前的分號可以省略,推薦還是加上

          防止外部樣式亂碼

          @charset "utf-8"

          CSS樣式涉及到圖片的路徑格式:

          background-image: url('/i/eg_bg_03.gif')
          list-style-image:url("/i/arrow.gif");

          W3C提供的CSS語法檢測網(wǎng)頁的網(wǎng)址如下:

          http://jigsaw.w3.org/css-validator/

          同義詞:

          內(nèi)聯(lián)元素:行內(nèi)元素

          CSS樣式遵循的原則:

          先設(shè)置全局的; 從大往小寫

          常用的全局樣式:

          實(shí)例1:

          body,ul,li,a,img{margin:0px;padding:0px;}
          ul li{list-style:none;}
          img{border:none;} /* 解決不同瀏覽器下圖片有無邊框問題 */
          a:link,a:visited{text-decoration:none;color:#444;}
          a:hover{color:#f00;}
          .floatL{float:left;}
          .floatR{float:right;}
          .clear{clear:both;}

          實(shí)例2:

          /*重置css*/
          body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td {
          margin: 0;
          padding: 0;
          }
          body {
          background: #fff;
          color: #444866;
          font-size: 12px;
          font-family: "Arial", "Microsoft YaHei", "黑體", "宋體", sans-serif;
          }
          h1, h2, h3, h4, h5, h6 {
          font-weight: normal;
          font-size: 100%;
          }
          a {/*去掉默認(rèn)的下劃線*/
          color: #444866;
          text-decoration: none;
          }
          img {/*去掉圖片的間隙*/
          border: none;
          vertical-align: middle;
          }
          ol, ul, li {/*去掉默認(rèn)的小圓點(diǎn)*/
          list-style: none;
          }
          table {/*表格樣式美化*/
          border-collapse: collapse;
          }
          body{font-size:12px; color:#444; background-color:#f1f1f1;}
          .weight{font-weight:bold;}

          常用中文字體 Unicode 編碼

          字體名稱 英文名稱 Unicode 編碼

          宋體 SimSun B8BF53

          新宋體 NSimSun B0B8BF53

          黑體 SimHei ED1F53

          微軟雅黑 Microsoft YaHei FAEF6FC5ED1

          楷體_GB2312 KaiTi_GB2312 77F53_GB2312

          隸書 LiSu B6E66

          幼園 YouYuan E7C06

          華文細(xì)黑 STXihei 4E87EC6ED1

          細(xì)明體 MingLiU EC60EF53

          新細(xì)明體 PMingLiU B0EC60EF53

          任意字體轉(zhuǎn)Unicode編碼

          事實(shí)上任何字體都能夠轉(zhuǎn)換為Unicode編碼


          主站蜘蛛池模板: 亚洲高清美女一区二区三区| 国模大胆一区二区三区| 黑人大战亚洲人精品一区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲美女一区二区三区| 伊人久久精品一区二区三区| 国产精品综合一区二区| 国产福利电影一区二区三区| 无码人妻精品一区二区在线视频| 精品午夜福利无人区乱码一区| 国产在线观看一区二区三区| 中文字幕一区二区三区有限公司| 亚洲色精品vr一区二区三区| 国产精品一区在线麻豆| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲av无码一区二区三区天堂| 精品福利一区3d动漫| 无码人妻精品一区二区三区99仓本 | 日韩亚洲一区二区三区| 亚洲香蕉久久一区二区三区四区| 国产成人一区二区在线不卡| av无码人妻一区二区三区牛牛| 91video国产一区| 国产精品无码一区二区在线观一 | 国产日韩一区二区三区在线播放| 无码人妻一区二区三区精品视频 | 色欲AV无码一区二区三区| 久久久精品人妻一区亚美研究所 | 日韩AV片无码一区二区不卡| 中文字幕Av一区乱码| 在线日韩麻豆一区| 精品无人区一区二区三区| 欧洲精品码一区二区三区免费看| 亚洲电影唐人社一区二区| 一区二区三区四区在线视频| 中文字幕在线不卡一区二区| 久久国产午夜精品一区二区三区 | www一区二区三区| 国产精品视频一区国模私拍| 一区二区三区福利视频免费观看| aⅴ一区二区三区无卡无码|