一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

JavaScript入門(mén)教程(2) JS基礎(chǔ)知識(shí)

在什么地方插入 JavaScript
  JavaScript 可以出現(xiàn)在 HTML 的任意地方。使用標(biāo)記<script>…</script>,你可以在 HTML 文檔的任意地方插入 JavaScript,甚至在<HTML>之前插入也不成問(wèn)題。不過(guò)如果要在聲明框架的網(wǎng)頁(yè)(框架網(wǎng)頁(yè))中插入,就一定要在<frameset>之前插入,否則不會(huì)運(yùn)行。
基本格式
復(fù)制代碼 代碼如下:
<script>
<!--
...
(JavaScript代碼)
...
//-->
</script>

第二行和第四行的作用,是讓不懂<script>標(biāo)記的瀏覽器忽略 JavaScript 代碼。一般可以省略,因?yàn)楝F(xiàn)在想找不懂 Script 的瀏覽器,恐怕就連博物館里也沒(méi)有了。第四行前邊的雙反斜杠“//”是 JavaScript 里的注釋標(biāo)號(hào),以后將學(xué)到。

另外一種插入 JavaScript 的方法,是把 JavaScript 代碼寫(xiě)到另一個(gè)文件當(dāng)中(此文件通常應(yīng)該用“.js”作擴(kuò)展名),然后用格式為“<script src="Javascript.js"></script>”的標(biāo)記把它嵌入到文檔中。注意,一定要用“</script>”標(biāo)記。
參考 <script>標(biāo)記還有一個(gè)屬性:language(縮寫(xiě)lang),說(shuō)明腳本使用的語(yǔ)言。對(duì)于 JavaScript,請(qǐng)用“l(fā)anguage="JavaScript"”。
參考 相對(duì)于<script>標(biāo)記,還有一個(gè)<server>標(biāo)記。<server>標(biāo)記所包含的,是服務(wù)器端(Server Side)的腳本。本教程只討論客戶(hù)器端(Client Side)的 JavaScript,也就是用<script>標(biāo)記包含的腳本。
如果想在瀏覽器的“地址”欄中執(zhí)行 JavaScript 語(yǔ)句,用這樣的格式:
Javascript:<JavaScript語(yǔ)句>
這樣的格式也可以用在連接中:
<a href="Javascript:<JavaScript語(yǔ)句>">...</a>

JavaScript 基本語(yǔ)法
每一句 JavaScript 都有類(lèi)似于以下的格式:
<語(yǔ)句>;
其中分號(hào)“;”是 JavaScript 語(yǔ)言作為一個(gè)語(yǔ)句結(jié)束的標(biāo)識(shí)符。雖然現(xiàn)在很多瀏覽器都允許用回車(chē)充當(dāng)結(jié)束符號(hào),培養(yǎng)用分號(hào)作結(jié)束的習(xí)慣仍然是很好的。
語(yǔ)句塊 語(yǔ)句塊是用大括號(hào)“{ }”括起來(lái)的一個(gè)或 n 個(gè)語(yǔ)句。在大括號(hào)里邊是幾個(gè)語(yǔ)句,但是在大括號(hào)外邊,語(yǔ)句塊是被當(dāng)作一個(gè)語(yǔ)句的。語(yǔ)句塊是可以嵌套的,也就是說(shuō),一個(gè)語(yǔ)句塊里邊可以再包含一個(gè)或多個(gè)語(yǔ)句塊。

JavaScript 中的變量
什么是變量 從字面上看,變量是可變的量;從編程角度講,變量是用于存儲(chǔ)某種/某些數(shù)值的存儲(chǔ)器。所儲(chǔ)存的值,可以是數(shù)字、字符或其他的一些東西。
變量的命名 變量的命名有以下要求:
只包含字母、數(shù)字和/或下劃線;
要以字母開(kāi)頭;
不能太長(zhǎng)(其實(shí)有什么人喜歡使用又長(zhǎng)又臭的名字呢?);
不能與 JavaScript 保留字(Key Words,Reserved Words,數(shù)量繁多,不能一一列出;凡是可以用來(lái)做 JavaScript 命令的字都是保留字)重復(fù)。
而且,變量是區(qū)分大小寫(xiě)的,例如,variable 和 Variable 是兩個(gè)不同的變量。不僅如此,大部分命令和“對(duì)象”(請(qǐng)參閱“對(duì)象化編程”章)都是區(qū)分大小寫(xiě)的。
提示 給變量命名,最好避免用單個(gè)字母“a”“b”“c”等,而改用能清楚表達(dá)該變量在程序中的作用的詞語(yǔ)。這樣,不僅別人能更容易的了解你的程序,而且你在以后要修改程序的時(shí)候,也很快會(huì)記得該變量的作用。變量名一般用小寫(xiě),如果是由多個(gè)單詞組成的,那么第一個(gè)單詞用小寫(xiě),其他單詞的第一個(gè)字母用大寫(xiě)。例如:myVariable 和 myAnotherVariable。這樣做僅僅是為了美觀和易讀,因?yàn)?JavaScript 一些命令(以后將用更具體的方法闡述“命令”一詞)都是用這種方法命名的:indexOf;charAt 等等。
變量需要聲明 沒(méi)有聲明的變量不能使用,否則會(huì)出錯(cuò):“未定義”。聲明變量可以用:

var <變量> [= <值>];

var 我們接觸的第一個(gè)關(guān)鍵字(即保留字)。這個(gè)關(guān)鍵字用作聲明變量。最簡(jiǎn)單的聲明方法就是“var <變量>;”,這將為<變量>準(zhǔn)備內(nèi)存,給它賦初始值“null”。如果加上“= <值>”,則給<變量>賦予自定的初始值<值>。

數(shù)據(jù)類(lèi)型 變量可以用的數(shù)據(jù)類(lèi)型有:
整型 只能儲(chǔ)存整數(shù)。可以是正整數(shù)、0、負(fù)整數(shù),可以是十進(jìn)制、八進(jìn)制、十六進(jìn)制。八進(jìn)制數(shù)的表示方法是在數(shù)字前加“0”,如“0123”表示八進(jìn)制數(shù)“123”。十六進(jìn)制則是加“0x”:“0xEF”表示十六進(jìn)制數(shù)“EF”。
浮點(diǎn)型 即“實(shí)型”,能儲(chǔ)存小數(shù)。有資料顯示,某些平臺(tái)對(duì)浮點(diǎn)型變量的支持不穩(wěn)定。沒(méi)有需要就不要用浮點(diǎn)型。
字符串型 是用引號(hào)“" "”、“' '”包起來(lái)的零個(gè)至多個(gè)字符。用單引號(hào)還是雙引號(hào)由你決定。跟語(yǔ)文一樣,用哪個(gè)引號(hào)開(kāi)始就用哪個(gè)結(jié)束,而且單雙引號(hào)可嵌套使用:'這里是"JavaScript 教程"。' 不過(guò)跟語(yǔ)文不同的是,JavaScript 中引號(hào)的嵌套只能有一層。如果想再多嵌一些,你需要轉(zhuǎn)義字符:
  轉(zhuǎn)義字符 由于一些字符在屏幕上不能顯示,或者 JavaScript 語(yǔ)法上已經(jīng)有了特殊用途,在要用這些字符時(shí),就要使用“轉(zhuǎn)義字符”。轉(zhuǎn)義字符用斜杠“/”開(kāi)頭:/' 單引號(hào)、/" 雙引號(hào)、/n 換行符、/r 回車(chē)(以上只列出常用的轉(zhuǎn)義字符)。于是,使用轉(zhuǎn)義字符,就可以做到引號(hào)多重嵌套:'Micro 說(shuō):"這里是/"JavaScript 教程/"。" '
布爾型 常用于判斷,只有兩個(gè)值可選:true(表“真”)和 false(表“假”)。true 和 false 是 JavaScript 的保留字。它們屬于“常數(shù)”。
對(duì)象 關(guān)于對(duì)象,在“對(duì)象化編程”一章將詳細(xì)講到。
由于 JavaScript 對(duì)數(shù)據(jù)類(lèi)型的要求不嚴(yán)格,一般來(lái)說(shuō),聲明變量的時(shí)候不需要聲明類(lèi)型。而且就算聲明了類(lèi)型,在過(guò)程中還可以給變量賦予其他類(lèi)型的值。聲明類(lèi)型可以用賦予初始值的方法做到:

var aString = '';
這將把 aString 定義為具有空值的字符串型變量。 var anInteger = 0;
這將把 anInteger 定義為值為 0 的整型。
變量的賦值 一個(gè)變量聲明后,可以在任何時(shí)候?qū)ζ滟x值。賦值的語(yǔ)法是:
<變量> = <表達(dá)式>;
其中“=”叫“賦值符”,它的作用是把右邊的值賦給左邊的變量。下一節(jié)將討論到表達(dá)式。

JavaScript常數(shù) 有下列幾個(gè):

null 一個(gè)特殊的空值。當(dāng)變量未定義,或者定義之后沒(méi)有對(duì)其進(jìn)行任何賦值操作,它的值就是“null”。企圖返回一個(gè)不存在的對(duì)象時(shí)也會(huì)出現(xiàn)null值。
NaN “Not a Number”。出現(xiàn)這個(gè)數(shù)值比較少見(jiàn),以至于我們可以不理它。當(dāng)運(yùn)算無(wú)法返回正確的數(shù)值時(shí),就會(huì)返回“NaN”值。NaN 值非常特殊,因?yàn)樗安皇菙?shù)字”,所以任何數(shù)跟它都不相等,甚至 NaN 本身也不等于 NaN 。
true 布爾值“真”。用通俗的說(shuō)法,“對(duì)”。
false 布爾值“假”。用通俗的說(shuō)法,“錯(cuò)”。

在 Math 對(duì)象中還有一系列數(shù)學(xué)常數(shù)。這將在討論“對(duì)象化編程”時(shí)談到。

表達(dá)式與運(yùn)算符
表達(dá)式 與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值的、用運(yùn)算符把常數(shù)和變量連接起來(lái)的代數(shù)式。一個(gè)表達(dá)式可以只包含一個(gè)常數(shù)或一個(gè)變量。運(yùn)算符可以是四則運(yùn)算符、關(guān)系運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、復(fù)合運(yùn)算符。下表將這些運(yùn)算符從高優(yōu)先級(jí)到低優(yōu)先級(jí)排列:
括號(hào)(x) [x]中括號(hào)只用于指明數(shù)組下標(biāo)
求反、自加、自減-x返回 x 的相反數(shù)
!x返回與 x (布爾值)相反的布爾值
x++x 值加 1,但仍返回原來(lái)的 x 值
x--x 值減 1,但仍返回原來(lái)的 x 值
++xx 值加 1,返回后來(lái)的 x 值
--xx 值減 1,返回后來(lái)的 x 值
乘、除x*y返回 x 乘以 y 的值
x/y返回 x 除以 y 的值
x%y返回 x 與 y 的模(x 除以y 的余數(shù))
加、減x+y返回 x 加 y 的值
x-y返回 x 減 y 的值
關(guān)系運(yùn)算x<y x<=y
x>=y x>y
當(dāng)符合條件時(shí)返回 true 值,否則返回 false 值
等于、
不等于
x==y當(dāng) x 等于 y 時(shí)返回 true 值,否則返回 false 值
x!=y當(dāng) x 不等于 y 時(shí)返回 true 值,否則返回 false 值
位與x&y當(dāng)兩個(gè)數(shù)位同時(shí)為 1 時(shí),返回的數(shù)據(jù)的當(dāng)前數(shù)位為 1,其他情況都為 0
位異或x^y兩個(gè)數(shù)位中有且只有一個(gè)為 0 時(shí),返回 0,否則返回 1
位或x|y兩個(gè)數(shù)位中只要有一個(gè)為 1,則返回 1;當(dāng)兩個(gè)數(shù)位都為零時(shí)才返回零
位運(yùn)算符通常會(huì)被當(dāng)作邏輯運(yùn)算符來(lái)使用。它的實(shí)際運(yùn)算情況是:把兩個(gè)操作數(shù)(即 x 和 y)化成二進(jìn)制數(shù),對(duì)每個(gè)數(shù)位執(zhí)行以上所列工作,然后返回得到的新二進(jìn)制數(shù)。由于“真”值在電腦內(nèi)部(通常)是全部數(shù)位都是 1 的二進(jìn)制數(shù),而“假”值則是全部是 0 的二進(jìn)制數(shù),所以位運(yùn)算符也可以充當(dāng)邏輯運(yùn)算符。
邏輯與x&&y當(dāng) x 和 y 同時(shí)為 true 時(shí)返回 true,否則返回 false
邏輯或x||y當(dāng) x 和 y 任意一個(gè)為 true 時(shí)返回 true,當(dāng)兩者同時(shí)為 false 時(shí)返回 false
邏輯與/或有時(shí)候被稱(chēng)為“快速與/或”。這是因?yàn)楫?dāng)?shù)谝徊僮鲾?shù)(x)已經(jīng)可以決定結(jié)果,它們將不去理會(huì) y 的值。例如,false && y,因?yàn)閤 == false,不管 y 的值是什么,結(jié)果始終是 false,于是本表達(dá)式立即返回 false,而不論 y 是多少,甚至 y 可以導(dǎo)致出錯(cuò),程序也可以照樣運(yùn)行下去。
條件c?x:y當(dāng)條件 c 為 true 時(shí)返回 x 的值(執(zhí)行 x 語(yǔ)句),否則返回 y 的值(執(zhí)行 y 語(yǔ)句)
賦值、
復(fù)合運(yùn)算
x=y把 y 的值賦給 x,返回所賦的值
x+=y x-=y x*=y
x/=y x%=y
x 與 y 相加/減/乘/除/求余,所得結(jié)果賦給 x,并返回 x 賦值后


注意 所有與四則運(yùn)算有關(guān)的運(yùn)算符都不能作用在字符串型變量上。字符串可以使用 +、+= 作為連接兩個(gè)字符串之用。

提示 請(qǐng)密切注意運(yùn)算的優(yōu)先級(jí)。編程時(shí)如果不記得運(yùn)算符的優(yōu)先級(jí),可以使用括號(hào)( )。例如:(a == 0)||(b == 0)。

一些用來(lái)賦值的表達(dá)式,由于有返回的值,可以加以利用。例如,用以下語(yǔ)句:a = b = c = 10,可以一次對(duì)三個(gè)變量賦值。

語(yǔ)句
下面將開(kāi)始討論 JavaScript 基本編程命令,或者叫“語(yǔ)句”。

注釋

像其他所有語(yǔ)言一樣,JavaScript 的注釋在運(yùn)行時(shí)也是被忽略的。注釋只給程序員提供消息。

JavaScript 注釋有兩種:?jiǎn)涡凶⑨尯投嘈凶⑨尅涡凶⑨層秒p反斜杠“//”表示。當(dāng)一行代碼有“//”,那么,“//”后面的部分將被忽略。而多行注釋是用“/*”和“*/”括起來(lái)的一行到多行文字。程序執(zhí)行到“/*”處,將忽略以后的所有文字,直到出現(xiàn)“*/”為止。

提示 如果你的程序需要草稿,或者需要讓別人閱讀,注釋能幫上大忙。養(yǎng)成寫(xiě)注釋的習(xí)慣,能節(jié)省你和其他程序員的寶貴時(shí)間,使他們不用花費(fèi)多余的時(shí)間琢磨你的程序。在程序調(diào)試的時(shí)候,有時(shí)需要把一段代碼換成另一段,或者暫時(shí)不要一段代碼。這時(shí)最忌用 Delete 鍵,如果想要回那段代碼怎么辦?最好還是用注釋?zhuān)褧簳r(shí)不要的代碼“隱”去,到確定方法以后再刪除也不遲。

if 語(yǔ)句 if ( <條件> ) <語(yǔ)句1> [ else <語(yǔ)句2> ];
本語(yǔ)句有點(diǎn)象條件表達(dá)式“?:”:當(dāng)<條件>為真時(shí)執(zhí)行<語(yǔ)句1>,否則,如果 else 部分存在的話,就執(zhí)行<語(yǔ)句2>。與“?:”不同的是,if 只是一條語(yǔ)句,不會(huì)返回?cái)?shù)值。<條件>是布爾值,必須用小括號(hào)括起來(lái);<語(yǔ)句1>和<語(yǔ)句2>都只能是一個(gè)語(yǔ)句,欲使用多條語(yǔ)句,請(qǐng)用語(yǔ)句塊。

注意 請(qǐng)看下例: if (a == 1)
  if (b == 0) alert(a+b);
else
  alert(a-b);

本代碼企圖用縮進(jìn)的方法說(shuō)明 else 是對(duì)應(yīng) if (a == 1) 的,但是實(shí)際上,由于 else 與 if (b == 0) 最相近,本代碼不能按作者的想法運(yùn)行。正確的代碼是 if (a == 1) {
  if (b == 0) alert(a+b);
} else {
  alert(a-b);
}

提示 一行代碼太長(zhǎng),或者涉及到比較復(fù)雜的嵌套,可以考慮用多行文本,如上例,if (a == 1) 后面沒(méi)有立即寫(xiě)上語(yǔ)句,而是換一行再繼續(xù)寫(xiě)。瀏覽器不會(huì)混淆的,當(dāng)它們讀完一行,發(fā)現(xiàn)是一句未完成語(yǔ)句,它們會(huì)繼續(xù)往下讀。使用縮進(jìn)也是很好的習(xí)慣,當(dāng)一些語(yǔ)句與上面的一兩句語(yǔ)句有從屬關(guān)系時(shí),使用縮進(jìn)能使程序更易讀,方便程序員進(jìn)行編寫(xiě)或修改工作。

循環(huán)體 for (<變量>=<初始值>; <循環(huán)條件>; <變量累加方法>) <語(yǔ)句>;
本語(yǔ)句的作用是重復(fù)執(zhí)行<語(yǔ)句>,直到<循環(huán)條件>為 false 為止。它是這樣運(yùn)作的:首先給<變量>賦<初始值>,然后*判斷<循環(huán)條件>(應(yīng)該是一個(gè)關(guān)于<變量>的條件表達(dá)式)是否成立,如果成立就執(zhí)行<語(yǔ)句>,然后按<變量累加方法>對(duì)<變量>作累加,回到“*”處重復(fù),如果不成立就退出循環(huán)。這叫做“for循環(huán)”。下面看看例子。 for (i = 1; i < 10; i++) document.write(i);
本語(yǔ)句先給 i 賦初始值 1,然后執(zhí)行 document.write(i)語(yǔ)句(作用是在文檔中寫(xiě) i 的值,請(qǐng)參越“對(duì)象化編程”一章);重復(fù)時(shí) i++,也就是把 i 加 1;循環(huán)直到 i<10 不滿(mǎn)足,也就是 i>=10 時(shí)結(jié)束。結(jié)果是在文檔中輸出了“123456789”。

和 if 語(yǔ)句一樣,<語(yǔ)句>只能是一行語(yǔ)句,如果想用多條語(yǔ)句,你需要用語(yǔ)句塊。

與其他語(yǔ)言不同,JavaScript 的 for 循環(huán)沒(méi)有規(guī)定循環(huán)變量每次循環(huán)一定要加一或減一,<變量累加方法>可以是任意的賦值表達(dá)式,如 i+=3、i*=2、i-=j 等都成立。

提示 適當(dāng)?shù)氖褂?for 循環(huán),能使 HTML 文檔中大量的有規(guī)律重復(fù)的部分簡(jiǎn)化,也就是用 for 循環(huán)重復(fù)寫(xiě)一些 HTML 代碼,達(dá)到提高網(wǎng)頁(yè)下載速度的目的。不過(guò)請(qǐng)?jiān)?NETscape 中重復(fù)進(jìn)行嚴(yán)格測(cè)試,保證通過(guò)了才好把網(wǎng)頁(yè)傳上去。作者曾試過(guò)多次因?yàn)橛?for 循環(huán)向文檔重復(fù)寫(xiě) HTML 代碼而導(dǎo)致 NETscape“猝死”。IE 中絕對(duì)沒(méi)有這種事情發(fā)生,如果你的網(wǎng)也是只給 IE 看的,用多多的 for 也沒(méi)問(wèn)題。

除了 for 循環(huán),JavaScript 還提供 while 循環(huán)。 while (<循環(huán)條件>) <語(yǔ)句>;
比 for 循環(huán)簡(jiǎn)單,while 循環(huán)的作用是當(dāng)滿(mǎn)足<循環(huán)條件>時(shí)執(zhí)行<語(yǔ)句>。while 循環(huán)的累加性質(zhì)沒(méi)有 for 循環(huán)強(qiáng)。<語(yǔ)句>也只能是一條語(yǔ)句,但是一般情況下都使用語(yǔ)句塊,因?yàn)槌艘貜?fù)執(zhí)行某些語(yǔ)句之外,還需要一些能變動(dòng)<循環(huán)條件>所涉及的變量的值的語(yǔ)句,否則一但踏入此循環(huán),就會(huì)因?yàn)闂l件總是滿(mǎn)足而一直困在循環(huán)里面,不能出來(lái)。這種情況,我們習(xí)慣稱(chēng)之為“死循環(huán)”。死循環(huán)會(huì)弄停當(dāng)時(shí)正在運(yùn)行的代碼、正在下載的文檔,和占用很大的內(nèi)存,很可能造成死機(jī),應(yīng)該盡最大的努力避免。

break 和 continue

有時(shí)候在循環(huán)體內(nèi),需要立即跳出循環(huán)或跳過(guò)循環(huán)體內(nèi)其余代碼而進(jìn)行下一次循環(huán)。break 和 continue 幫了我們大忙。

break;

本語(yǔ)句放在循環(huán)體內(nèi),作用是立即跳出循環(huán)。

continue;

本語(yǔ)句放在循環(huán)體內(nèi),作用是中止本次循環(huán),并執(zhí)行下一次循環(huán)。如果循環(huán)的條件已經(jīng)不符合,就跳出循環(huán)。

復(fù)制代碼 代碼如下:
for (i = 1; i < 10; i++) {
if (i == 3 || i == 5 || i == 8) continue;
document.write(i);
}

輸出:124679。

switch 語(yǔ)句

如果要把某些數(shù)據(jù)分類(lèi),例如,要把學(xué)生的成績(jī)按優(yōu)、良、中、差分類(lèi),我們可能會(huì)用 if 語(yǔ)句: 復(fù)制代碼 代碼如下:
if (score >= 0 && score < 60) {
result = 'fail';
} else if (score < 80) {
result = 'pass';
} else if (score < 90) {
result = 'good';
} else if (score <= 100) {
result = 'excellent';
} else {
result = 'error';
}
看起來(lái)沒(méi)有問(wèn)題,但使用太多的 if 語(yǔ)句的話,程序看起來(lái)有點(diǎn)亂。switch 語(yǔ)句就是解決這種問(wèn)題的最好方法。 switch (e) {
  case r1: (注意:冒號(hào))
    ...
    [break;]
  case r2:
    ...
    [break;]
  ...
  [default:
    ...]
}

這一大段的作用是:計(jì)算 e 的值(e 為表達(dá)式),然后跟下邊“case”后的 r1、r2……比較,當(dāng)找到一個(gè)相等于 e 的值時(shí),就執(zhí)行該“case”后的語(yǔ)句,直到遇到 break 語(yǔ)句或 switch 段落結(jié)束(“}”)。如果沒(méi)有一個(gè)值與 e 匹配,那么就執(zhí)行“default:”后邊的語(yǔ)句,如果沒(méi)有 default 塊,switch 語(yǔ)句結(jié)束。

上邊的 if 段用 switch 改寫(xiě)就是: 復(fù)制代碼 代碼如下:
switch (parseInt(score / 10)) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
result = 'fail';
break;
case 6:
case 7:
result = 'pass';
break;
case 8:
result = 'good';
break;
case 9:
result = 'excellent';
break;
default:
if (score == 100)
result = 'excellent';
else
result = 'error';
}
其中 parseInt()方法是以后會(huì)介紹的,作用是取整。最后 default 段用的 if 語(yǔ)句,是為了不把 100 分當(dāng)錯(cuò)誤論(parseInt(100 / 10) == 10)。

JavaScript技術(shù)JavaScript入門(mén)教程(2) JS基礎(chǔ)知識(shí),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久国产精品国产自线拍免费 | 91精品视频在线免费观看 | 国产成人欧美 | 婷婷五色 | 国产区图片区小说区亚洲区 | 国产视频三区 | 色综合视频在线 | 国产乱色 | 一级做a爰片性色毛片小说 一级做a爰片性色毛片新版的 | 极品美女一级毛片 | 久久九九国产精品怡红院 | 欧美亚洲综合视频 | 欧美成人免费全部观看天天性色 | 日本三级韩国三级美三级91 | 美女胸又大又黄www网站 | 亚洲性色成人 | 国产亚洲91 | 欧美一区二区三区婷婷月色 | 91国视频| 欧美午夜性视频 | 久久国产精品超级碰碰热 | 黄色片网站免费在线观看 | 欧美人与禽片免播放 | 色狠狠一区 | 色视频在线免费看 | 色女人综合网 | 久久久不卡国产精品一区二区 | 国产麻豆视频 | 午夜a毛片| 国内精品小视频在线 | 五月四房| 美女精品永久福利在线 | 99re久久精品国产首页2020 | 在线播影院理论片 | 亚洲欧洲专线一区 | 四虎最新紧急入口4hu | 国产成在线观看免费视频 | 国产美女精品三级在线观看 | 一本久道久久综合多人 | 米奇狠狠干 | 亚洲欧美激情视频 |