關(guān)于我們
書單推薦
新書推薦
|
javascript+jQuery程序開發(fā)實(shí)用教程 本書循序漸進(jìn)地介紹了JavaScript開發(fā)技術(shù)。深入分析了JavaScript的核心知識(shí),并在此基礎(chǔ)上詳細(xì)講解了jQuery框架的使用。此外,在每個(gè)重要知識(shí)點(diǎn)講解的后面,通過(guò)豐富典型的案例,使讀者進(jìn)一步鞏固所學(xué)的知識(shí),提高實(shí)際開發(fā)能力。 本書內(nèi)容全面,實(shí)例豐富,易于理解,每章的內(nèi)容都簡(jiǎn)潔緊湊,從最佳實(shí)踐的角度入手,為讀者更好地使用JavaScript及jQuery框架開發(fā)動(dòng)態(tài)網(wǎng)頁(yè)提供了很好的指導(dǎo)。 本書適合高等院校計(jì)算機(jī)科學(xué)、軟件工程、數(shù)字媒體技術(shù)、通信及相關(guān)專業(yè)本、專科作為動(dòng)態(tài)網(wǎng)頁(yè)程序設(shè)計(jì)相關(guān)課程教材使用,也是打算學(xué)習(xí)和正從事JavaScript+jQuery動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)的開發(fā)人員的教材或參考書。
目 錄
第1章 JavaScript概述1 1.1 JavaScript簡(jiǎn)介2 1.1.1 JavaScript語(yǔ)言簡(jiǎn)史2 1.1.2 JavaScript的特點(diǎn)2 1.1.3 JavaScript在頁(yè)面中的應(yīng)用3 1.2 HTML頁(yè)面中嵌入JavaScript的 方法4 1.2.1 頁(yè)面中定義JavaScript代碼5 1.2.2 鏈接外部JavaScript文件6 1.2.3 事件調(diào)用JavaScript程序7 1.3 JavaScript代碼的編輯工具8 1.3.1 純文本編輯器9 1.3.2 Dreamweaver9 課后小結(jié)11 習(xí)題11 第2章 JavaScript的數(shù)據(jù)類型和 運(yùn)算符13 2.1 JavaScript的語(yǔ)法規(guī)則14 2.1.1 區(qū)分大小寫14 2.1.2 代碼的格式14 2.1.3 代碼的注釋15 2.1.4 常量15 2.1.5 空白符和換行符16 2.1.6 標(biāo)識(shí)符17 2.1.7 保留字17 2.2 數(shù)據(jù)類型18 2.2.1 數(shù)值型18 2.2.2 字符串類型19 2.2.3 布爾型20 2.2.4 空值型20 2.2.5 未定義值21 2.2.6 類型轉(zhuǎn)換21 2.3 變量24 2.3.1 變量的命名24 2.3.2 變量的聲明24 2.3.3 變量的賦值26 2.4 運(yùn)算符27 2.4.1 算術(shù)運(yùn)算符28 2.4.2 賦值運(yùn)算符31 2.4.3 關(guān)系運(yùn)算符32 2.4.4 邏輯運(yùn)算符34 2.4.5 字符串運(yùn)算符36 2.4.6 其他運(yùn)算符37 2.4.7 運(yùn)算符的優(yōu)先級(jí)38 課后小結(jié)39 習(xí)題39 第3章 JavaScript的流程控制41 3.1 JavaScript中的選擇結(jié)構(gòu)42 3.1.1 if語(yǔ)句42 3.1.2 if...else語(yǔ)句42 3.1.3 嵌套if...else語(yǔ)句44 3.1.4 switch語(yǔ)句46 3.2 JavaScript中的循環(huán)結(jié)構(gòu)48 3.2.1 while語(yǔ)句48 3.2.2 do...while語(yǔ)句49 3.2.3 for語(yǔ)句50 3.2.4 for…in語(yǔ)句51 3.2.5 with語(yǔ)句52 3.2.6 break語(yǔ)句54 3.2.7 continue語(yǔ)句55 課后小結(jié)56 習(xí)題56 第4章 JavaScript中的函數(shù)59 4.1 函數(shù)的定義60 4.2 函數(shù)的調(diào)用61 4.3 函數(shù)的參數(shù)和返回值62 4.3.1 函數(shù)的參數(shù)62 4.3.2 函數(shù)的返回值66 4.4 函數(shù)的嵌套和遞歸67 4.5 變量的作用域70 4.6 JavaScript中的系統(tǒng)函數(shù)71 4.6.1 encodeURI函數(shù)71 4.6.2 decodeURI函數(shù)72 4.6.3 parseInt函數(shù)73 4.6.4 isNaN函數(shù)74 4.6.5 eval函數(shù)75 課后小結(jié)76 習(xí)題76 第5章 JavaScript中的對(duì)象77 5.1 對(duì)象的基本概念78 5.1.1 對(duì)象的屬性和方法78 5.1.2 對(duì)象的創(chuàng)建和刪除79 5.2 內(nèi)置對(duì)象81 5.2.1 String對(duì)象81 5.2.2 Number對(duì)象85 5.2.3 Math對(duì)象88 5.2.4 Date對(duì)象90 5.2.5 Array對(duì)象93 5.3 瀏覽器對(duì)象98 5.3.1 window對(duì)象99 5.3.2 document對(duì)象102 5.3.3 frame對(duì)象104 5.3.4 history對(duì)象106 5.3.5 location對(duì)象108 5.3.6 navigator對(duì)象109 課后小結(jié)111 習(xí)題111 第6章 JavaScript中的事件與事件 處理113 6.1 事件及事件處理程序114 6.1.1 事件和事件處理程序114 6.1.2 指定事件處理程序114 6.2 JavaScript的常用事件116 6.2.1 鍵盤事件116 6.2.2 鼠標(biāo)事件118 6.2.3 Load事件和Unload事件121 6.2.4 Focus事件和Blur事件123 6.2.5 Submit事件和Reset事件125 6.2.6 Change事件和Select事件127 6.2.7 Error事件129 課后小結(jié)129 習(xí)題130 第7章 JavaScript中的DOM編程131 7.1 XML基礎(chǔ)132 7.1.1 XML的文檔結(jié)構(gòu)132 7.1.2 XML解析器133 7.2 DOM編程基礎(chǔ)134 7.2.1 DOM文檔對(duì)象模型134 7.2.2 DOM中的節(jié)點(diǎn)135 7.3 使用DOM編程137 7.3.1 訪問(wèn)節(jié)點(diǎn)137 7.3.2 創(chuàng)建新節(jié)點(diǎn)138 7.3.3 添加節(jié)點(diǎn)139 7.3.4 插入節(jié)點(diǎn)140 7.3.5 刪除節(jié)點(diǎn)142 課后小結(jié)145 習(xí)題145 第8章 CSS樣式表147 8.1 CSS簡(jiǎn)介148 8.1.1 CSS的發(fā)展148 8.1.2 CSS的特點(diǎn)148 8.2 CSS的定義方式149 8.3 CSS的選擇器150 8.3.1 元素選擇器150 8.3.2 類選擇器152 8.3.3 ID選擇器153 8.3.4 屬性選擇器155 8.3.5 后代選擇器156 8.3.6 子元素選擇器158 8.3.7 相鄰兄弟選擇器159 8.4 CSS中的屬性161 8.4.1 字體屬性設(shè)置164 8.4.2 文本屬性設(shè)置168 8.4.3 背景屬性設(shè)置171 8.4.4 邊框?qū)傩栽O(shè)置175 8.4.5 邊距和填充距屬性設(shè)置178 課后小結(jié)179 習(xí)題179 第9章 JavaScript網(wǎng)頁(yè)特效181 9.1 文字特效182 9.1.1 跑馬燈效果182 9.1.2 打字效果183 9.1.3 文字大小變化效果185 9.1.4 升降文字效果187 9.2 圖片特效188 9.2.1 改變頁(yè)面中圖片的位置188 9.2.2 鼠標(biāo)拖動(dòng)改變圖片大小190 9.2.3 不斷閃爍的圖片191 9.3 時(shí)間和日期特效192 9.3.1 標(biāo)題欄顯示分時(shí)問(wèn)候語(yǔ)192 9.3.2 顯示當(dāng)前系統(tǒng)時(shí)間193 9.3.3 星期查詢功能195 9.4 窗體特效197 9.4.1 無(wú)邊框窗口自動(dòng)關(guān)閉特效197 9.4.2 方向鍵控制窗口的特效199 9.4.3 改變窗體顏色200 9.5 鼠標(biāo)特效201 9.5.1 屏蔽鼠標(biāo)右鍵201 9.5.2 獲取鼠標(biāo)位置坐標(biāo)202 9.5.3 根據(jù)方向改變鼠標(biāo)外觀204 9.6 菜單特效205 9.6.1 左鍵彈出菜單205 9.6.2 下拉菜單207 9.6.3 滾動(dòng)菜單208 9.7 警告和提示特效210 9.7.1 進(jìn)站提示信息210 9.7.2 單擊超鏈接顯示提示框211 9.7.3 顯示停留時(shí)間211 9.8 密碼特效213 9.8.1 彈出式密碼保護(hù)213 9.8.2 檢查密碼的格式合法性215 課后小結(jié)218 第10章 初識(shí)jQuery219 10.1 jQuery概述220 10.1.1 jQuery簡(jiǎn)介220 10.1.2 jQuery的特點(diǎn)220 10.2 jQuery代碼編寫221 10.2.1 配置jQuery開發(fā)環(huán)境221 10.2.2 jQuery代碼編寫221 10.3 jQuery對(duì)象與DOM對(duì)象222 10.3.1 jQuery對(duì)象簡(jiǎn)介222 10.3.2 jQuery對(duì)象與DOM對(duì)象 的相互轉(zhuǎn)換223 課后小結(jié)223 習(xí)題224 第11章 jQuery選擇器225 11.1 jQuery選擇器簡(jiǎn)介226 11.2 jQuery選擇器的分類226 11.2.1 基本選擇器226 11.2.2 層次選擇器228 11.2.3 過(guò)濾選擇器229 11.2.4 表單選擇器235 11.3 jQuery中元素屬性的操作237 11.3.1 設(shè)置元素屬性237 11.3.2 刪除元素屬性238 11.4 jQuery中樣式類的操作239 11.4.1 添加樣式類239 11.4.2 移除樣式類241 11.4.3 交替樣式類242 11.5 jQuery中樣式屬性的操作243 11.5.1 讀取樣式屬性243 11.5.2 設(shè)置樣式屬性244 11.5.3 設(shè)置元素偏移245 11.6 jQuery中元素內(nèi)容的操作247 11.6.1 操作HTML代碼247 11.6.2 操作文本248 11.6.3 操作表單元素的值249 11.7 篩選與查找元素集中的元素250 課后小結(jié)255 習(xí)題255 第12章 jQuery中DOM的操作257 12.1 DOM樹結(jié)構(gòu)258 12.2 創(chuàng)建元素259 12.3 插入元素259 12.4 復(fù)制元素261 12.5 替換元素262 12.6 包裹元素263 12.7 刪除元素264 課后小結(jié)266 習(xí)題266 第13章 jQuery的事件處理267 13.1 jQuery中的事件處理機(jī)制268 13.2 jQuery中的頁(yè)面載入事件270 13.3 jQuery中的事件綁定272 13.3.1 bind()方法綁定事件272 13.3.2 one()方法綁定事件273 13.3.3 live()方法綁定事件274 13.4 jQuery中的事件移除276 13.5 jQuery中的事件冒泡278 13.6 jQuery中的模擬事件觸發(fā)操作279 13.7 jQuery中的合成事件282 13.7.1 hover()方法282 13.7.2 toggle()方法283 課后小結(jié)284 習(xí)題284 第14章 jQuery的動(dòng)畫效果285 14.1 顯示與隱藏效果286 14.1.1 隱藏元素的hide()方法286 14.1.2 顯示元素的show()方法287 14.1.3 交替顯示隱藏元素288 14.2 滑動(dòng)效果288 14.2.1 向上收縮效果289 14.2.2 向下展開效果290 14.2.3 交替伸縮效果290 14.3 淡入淡出效果291 14.3.1 淡入效果291 14.3.2 淡出效果293 14.3.3 交替淡入淡出效果294 14.3.4 不透明效果295 14.4 自定義動(dòng)畫效果295 14.4.1 自定義動(dòng)畫296 14.4.2 動(dòng)畫隊(duì)列297 14.4.3 動(dòng)畫停止和延時(shí)299 課后小結(jié)301 習(xí)題301 第15章 jQuery與Ajax303 15.1 Ajax簡(jiǎn)介304 15.2 jQuery中的Ajax方法306 15.2.1 load()方法306 15.2.2 $.get()方法和$.post()方法307 15.2.3 $.getScript()方法和 $.getJSON()方法309 15.2.4 $.ajax()方法310 15.3 jQuery中的Ajax事件312 課后小結(jié)315 習(xí)題315 第16章 jQuery常用插件317 16.1 jQuery中的表單插件318 16.2 jQuery中的驗(yàn)證插件320 16.3 jQuery中的右鍵菜單插件325 16.4 jQuery中的圖片彈窗插件329 課后小結(jié)332 習(xí)題333
第2章 JavaScript的數(shù)據(jù)類型和運(yùn)算符
學(xué)習(xí)目標(biāo): JavaScript腳本語(yǔ)言同其他程序設(shè)計(jì)語(yǔ)言一樣,有其自身的基本數(shù)據(jù)類型、表達(dá)式和算術(shù)運(yùn)算符。JavaScript有一套其自身的語(yǔ)法規(guī)則和基本框架結(jié)構(gòu),這是掌握J(rèn)avaScript語(yǔ)言和開發(fā)JavaScript程序的基礎(chǔ)。 內(nèi)容摘要: * 熟悉JavaScript的語(yǔ)法規(guī)則 * 掌握J(rèn)avaScript的數(shù)據(jù)類型 * 熟練掌握J(rèn)avaScript的運(yùn)算符 2.1 JavaScript的語(yǔ)法規(guī)則 所有的編程語(yǔ)言都有自己的一套語(yǔ)法規(guī)則,用來(lái)詳細(xì)說(shuō)明如何使用該語(yǔ)言來(lái)編寫程序。JavaScript語(yǔ)言也不例外,為了確保JavaScript代碼正確運(yùn)行,必須遵守其語(yǔ)法規(guī)則。 說(shuō)明:在編寫JavaScript代碼時(shí),由于JavaScript不是一種可獨(dú)立運(yùn)行的語(yǔ)言,所以必須既關(guān)注JavaScript的語(yǔ)法規(guī)則,又要熟悉HTML的語(yǔ)法規(guī)則。 2.1.1 區(qū)分大小寫 JavaScript是嚴(yán)格區(qū)分大小寫的。例如,在程序代碼中定義一個(gè)標(biāo)識(shí)符computer(首字母小寫)的同時(shí)還可以定義一個(gè)標(biāo)識(shí)符Computer(首字母大寫),二者是完全不同的兩個(gè)符號(hào)。一般來(lái)說(shuō),在JavaScript中使用的大多數(shù)標(biāo)識(shí)符都采用小寫形式。如保留字全部都為小寫,但也有一些名稱采用大小寫組合方式,如onClick、onLoad、Date.getFullYear等。 2.1.2 代碼的格式 JavaScript中的代碼有其固定的格式。在JavaScript程序中,每條功能執(zhí)行語(yǔ)句的最后必須以分號(hào)結(jié)束。一個(gè)單獨(dú)的分號(hào)也可以表示一條語(yǔ)句,這種語(yǔ)句叫作空語(yǔ)句。為了使程序代碼整齊美觀,而采取的對(duì)齊或者縮進(jìn)文本的格式不是必需的。代碼可以按編寫者的意愿任意編排,只要每個(gè)詞之間用空格、制表符、換行符或者大括號(hào)、小括號(hào)等分隔符隔開就可以了。 在JavaScript程序中,一行可以寫一條語(yǔ)句,也可以寫多條語(yǔ)句。一行中寫多條語(yǔ)句時(shí),語(yǔ)句之間使用分號(hào)分隔。當(dāng)在一行中只寫一條語(yǔ)句時(shí),可以省略語(yǔ)句結(jié)尾的分號(hào),此時(shí)以回車換行符作為語(yǔ)句的結(jié)束。例如,以下寫法都是正確的。 int c=10; //此行結(jié)尾的分號(hào)可以省略 int x=5; 或 c=10; x=5; //此行C=10;之后的分號(hào)不能省略 或 c=10 //語(yǔ)句結(jié)尾省略了分號(hào) x=5; 說(shuō)明:為了便于閱讀,即使一行只有一條語(yǔ)句,最好也在語(yǔ)句末尾加上一個(gè)分號(hào)。 如果一條語(yǔ)句被分成了一行以上,JavaScript會(huì)自動(dòng)在該行結(jié)尾插入分號(hào),使換行符之前的一行形成一條語(yǔ)句。例如,如果按以下格式輸入以下語(yǔ)句。 return false; 本來(lái)想表達(dá)的意圖是以下語(yǔ)句: return false; 但JavaScript在解釋時(shí)會(huì)在return之后自動(dòng)插入一個(gè)分號(hào),而形成以下的兩條語(yǔ)句: return; false; 從而產(chǎn)生代碼錯(cuò)誤。因此,要注意同一條語(yǔ)句要寫在一行中,其間不要插入換行符。 但作為HTML標(biāo)簽屬性值的JavaScript腳本程序代碼的最后一條語(yǔ)句結(jié)尾處的分號(hào)可以省略,例如: <input type=button value=text onclick=”alert (new Date())”> 其中alert(new Date())后面就省略了分號(hào)。 2.1.3 代碼的注釋 為程序添加注釋可以起到解釋程序的作用,提高程序的可讀性。此外,還可以使用注釋來(lái)暫時(shí)屏蔽某些程序語(yǔ)句,讓瀏覽器暫時(shí)不要理會(huì)這些語(yǔ)句。等到需要的時(shí)候,只要取消注釋標(biāo)記,這些程序語(yǔ)句就又可以發(fā)揮作用了。 實(shí)際上,注釋是腳本的重要組成部分,注釋有利于提高腳本的可讀性。為程序加入適當(dāng)?shù)淖⑨專渌司涂梢越柚⑨寔?lái)理解和維護(hù)腳本,從而有利于團(tuán)隊(duì)合作開發(fā),提高開發(fā)效率。 JavaScript可以使用兩種方式書寫注釋:?jiǎn)涡凶⑨尯投嘈凶⑨尅?br /> (1) 單行注釋。 單行注釋以兩個(gè)斜杠開頭,然后在該行中書寫注釋文字,注釋內(nèi)容不超過(guò)一行。例如: //這是對(duì)一個(gè)函數(shù)的定義 (2) 多行注釋。 多行注釋又叫注釋塊,它表示一段文字都是注釋的內(nèi)容。多行注釋以符號(hào)“/*”開頭,并以“*/”結(jié)尾,中間部分為注釋的內(nèi)容,注釋內(nèi)容可以跨越多行,但其中不能有嵌套的注釋。例如: /* 這是一個(gè)多行注釋,這一行是注釋的開始 函數(shù)定義的開始 …… 函數(shù)定義的結(jié)束*/ 2.1.4 常量 JavaScript的常量又稱為字面常量,是程序中不能改變的數(shù)據(jù),與數(shù)據(jù)類型相對(duì)應(yīng),有以下幾種常量。 1. 整型常量 整型常量可以使用十六進(jìn)制、八進(jìn)制和十進(jìn)制表示。十六進(jìn)制以0x或者0X開頭。如0x8a。八進(jìn)制必須以0開頭,如0167。十進(jìn)制的第一位不能是0(數(shù)字0除外),如235。 2. 實(shí)型常量 實(shí)型常量是由整數(shù)部分加小數(shù)部分表示,如11.376和689.78,實(shí)型常量也可以使用科學(xué)記數(shù)法來(lái)表示,如8E7、7e6。 3. 布爾常量 布爾常量不是真就是假。其值只有兩種:true和false。 4. 字符串常量 JavaScript中沒(méi)有單獨(dú)的字符常量,而只有表示由若干字符所組成的字符串常量。字符串常量使用單引號(hào)(')或雙引號(hào)(" ")引起來(lái)的若干字符,如"abc","a book"等。一個(gè)字符串中不包含任何字符也是可以的,其形式為" ",表示一個(gè)空字符串。 5.??null常量 JavaScript中的null常量表示一個(gè)變量所指向的對(duì)象為空值。 6.??undefined常量 undefined常量用于表示變量還沒(méi)有被賦值的狀態(tài)。null表示賦給變量的值為“空”,“空”是一個(gè)有特殊意義的值。而undefined則是表示還沒(méi)有對(duì)變量賦值,變量的值還處于未知狀態(tài)。 2.1.5 空白符和換行符 JavaScript會(huì)忽略程序中記號(hào)之間的空格、制表符和換行符,除非它們是字符串常量的組成部分。這里的記號(hào)就是指一個(gè)關(guān)鍵字、變量名、數(shù)字、函數(shù)名或者其他各種實(shí)體。具體來(lái)說(shuō),可以分為以下3種情況。 (1) 如果標(biāo)識(shí)符、運(yùn)算符之間有多于一個(gè)的空白字符,對(duì)于解釋器來(lái)講,多個(gè)空白字符相當(dāng)于一個(gè)空白字符的分隔作用。例如,下面的兩行代碼是等價(jià)的: var name="王五"; var name = "王五"; (2) 如果在一個(gè)記號(hào)中插入了空格或制表符,JavaScript就會(huì)將它分成兩個(gè)記號(hào)。例如,area是一個(gè)變量名,而ar ea則是兩個(gè)獨(dú)立的變量ar和ea。 (3) 如果字符串常量本身包含空格,如“cell phone”,JavaScript解釋器在解釋代碼的過(guò)程中會(huì)保留這些空格。 說(shuō)明:由于JavaScript忽略出現(xiàn)在其他地方的空白,因此,可以自由地縮進(jìn)代碼行,可以采用整齊、一致的方式自由安排程序的格式,以便于閱讀和理解程序。 2.1.6 標(biāo)識(shí)符 標(biāo)識(shí)符是指JavaScript中定義的符號(hào),如變量名、函數(shù)名、數(shù)組名等。在JavaScript中,合法的標(biāo)識(shí)符的命名規(guī)則和Java語(yǔ)言以及其他許多編程語(yǔ)言的命名規(guī)則相同,即標(biāo)識(shí)符可以由大小字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,但標(biāo)識(shí)符不能以數(shù)字開頭,不能是JavaScript中的保留字。 例如,下面的幾個(gè)標(biāo)識(shí)符是合法的: username user_name _userName $username 下面的幾個(gè)標(biāo)識(shí)符是非法的: int //int是JavaScript中的保留字 78.2//78.2是由數(shù)字開頭,并且標(biāo)識(shí)符中不能含有點(diǎn)號(hào)(.) Hello world//標(biāo)識(shí)符中不能含有空格 2.1.7 保留字 每種程序語(yǔ)言都有自己的保留字,不能將它們用作程序中的標(biāo)識(shí)符。JavaScript同其他程序語(yǔ)言一樣,也擁有自己的保留字。JavaScript保留字是指在JavaScript語(yǔ)言中有特定含義,成為JavaScript語(yǔ)法的一部分的那些字符。它們只能在JavaScript語(yǔ)言規(guī)定的場(chǎng)合中使用,而不能用作變量名、函數(shù)名等標(biāo)識(shí)符。表2-1列出了JavaScript的保留字。 表2-1 保留的JavaScript的關(guān)鍵字 abstract do if package throws boolean double implements protected transient break else import public true byte extends in return try case false instanceof short var catch final int static void char finally interface super while class float long switch with const for native synchronized continue function new this default goto null throw 說(shuō)明:在最新的ECMAScript V4標(biāo)準(zhǔn)(草稿)中還將is、namespace和use作為了保留字。使用時(shí)應(yīng)該也避免使用這幾個(gè)保留字。 除了不能將保留字用作標(biāo)識(shí)符外,還有很多其他的詞也不能被用作標(biāo)識(shí)符。它們是被JavaScript用作屬性名、方法名和構(gòu)造函數(shù)名的詞。如果用這些名字創(chuàng)建了一個(gè)變量或函數(shù),就會(huì)重定義已經(jīng)存在的屬性或函數(shù)。編寫程序時(shí),在給變量或函數(shù)命名時(shí)不應(yīng)該和這些全局變量或函數(shù)的名字相同。另外,還要避免定義以兩個(gè)下劃線開頭的標(biāo)識(shí)符,因?yàn)镴avaScript常常將這種形式的標(biāo)識(shí)符用于內(nèi)部。 2.2 數(shù) 據(jù) 類 型 JavaScript中的數(shù)據(jù)類型可以分為兩類:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。JavaScript的基本數(shù)據(jù)類型包括數(shù)值型、字符串型和布爾型以及兩個(gè)特殊的數(shù)據(jù)類型(空值和未定義)。另外,還支持?jǐn)?shù)組、函數(shù)、對(duì)象等引用數(shù)據(jù)類型。由于JavaScript采用弱類型的變量聲明形式,因而變量在使用前可以先不作聲明,而是在使用或賦值時(shí)再確定其數(shù)據(jù)類型。 2.2.1 數(shù)值型 數(shù)值型(number)是最基本的數(shù)據(jù)類型,可以用于完成數(shù)學(xué)運(yùn)算。JavaScript與其他程序設(shè)計(jì)語(yǔ)言的不同之處在于,它并不區(qū)分整型數(shù)值和浮點(diǎn)型數(shù)值。在JavaScript中,所有數(shù)字都是由浮點(diǎn)型表示的。 如果一個(gè)數(shù)值直接出現(xiàn)在JavaScript程序中時(shí),稱為數(shù)值直接量。JavaScript支持的數(shù)值直接量的形式有以下幾種。 1. 整型直接量 一個(gè)整型直接量可以是十進(jìn)制、十六進(jìn)制和八進(jìn)制數(shù)。例如,下面列出了幾個(gè)整型直接量: 25 //整數(shù)25的十進(jìn)制表示 037//整數(shù)31的八進(jìn)制表示 0x1A//整數(shù)26的十六進(jìn)制表示 2. 浮點(diǎn)型直接量 浮點(diǎn)型直接量即帶小數(shù)點(diǎn)的數(shù)。它既可以使用常規(guī)表示法,也可以使用科學(xué)記數(shù)法來(lái)表示。使用科學(xué)記數(shù)法表示時(shí),指數(shù)部分是在一個(gè)整數(shù)后跟一個(gè)“e”或“E”,它可以是一個(gè)有符號(hào)的數(shù)。下面是一些浮點(diǎn)型直接量: 3.1415//常規(guī)表示法 -3.1E12//常規(guī)表示法 .1e12 //科學(xué)記數(shù)法,該數(shù)等于0.1×1012 52E-12//科學(xué)記數(shù)法,該數(shù)等于52×10-12 說(shuō)明:一個(gè)浮點(diǎn)數(shù)組必須包含一個(gè)數(shù)字、一個(gè)小數(shù)點(diǎn)或“e”(或“E”)。 * 特殊數(shù)值 JavaScript中還定義了一些表示特殊數(shù)值的常量,如表2-2所示。 表2-2 JavaScript中特殊的數(shù)值常量 常 量 含 義 Infinity 表示正無(wú)窮大的特殊值 NaN 特殊的非數(shù)字值 Number.MAX_VALUE 可表示的最大值 Number.MIN_VALUE 可表示的最小負(fù)數(shù)(與零最接近的值) Number.NaN 特殊的非數(shù)字值 Number.POSITIVE_INFINITY 表示正無(wú)窮大的特殊值 Number.NEGATIVE_INFINITY 表示負(fù)無(wú)窮大的特殊值 2.2.2 字符串類型 字符串是由字符、數(shù)字、標(biāo)點(diǎn)符號(hào)等組成的序列,是JavaScript中用來(lái)表示文本的數(shù)據(jù)類型。 說(shuō)明:JavaScript和C以及C++、Java不同的是,它沒(méi)有char這樣的字符數(shù)據(jù)類型,要表示單個(gè)字符,必須使用長(zhǎng)度為1的字符串。 1. 字符串直接量 字符串直接量是由單引號(hào)或雙引號(hào)括起來(lái)的一串字符,其中可以包含0個(gè)或多個(gè)字符。下面為一些字符串直接量: "fish" '李白' "5467" "a line" "That’s very good. " '"What are you doing?", he asked.' 字符串直接量?jī)蛇叺囊?hào)必須相同,即對(duì)一個(gè)字符串來(lái)說(shuō),要么兩邊都是雙引號(hào),要么兩邊都是單引號(hào);否則一邊加單引號(hào),一邊加雙引號(hào)會(huì)產(chǎn)生錯(cuò)誤。此外,由單引號(hào)定界的字符串中可以含有雙引號(hào),由雙引號(hào)定界的字符串中也可以含有單引號(hào),如上面的最后一行即是單引號(hào)中包含了雙引號(hào)來(lái)定界字符串。 說(shuō)明:HTML使用雙引號(hào)來(lái)定界字符串,由于要在HTML文檔中使用JavaScript,所以最好養(yǎng)成在JavaScript語(yǔ)句內(nèi)使用單引號(hào)的習(xí)慣,這可以避免與HTML代碼沖突。 2. 轉(zhuǎn)義字符 有些包含在字符串中的字符,由于在JavaScript 語(yǔ)法上已經(jīng)有了特殊用途,而不能以常規(guī)的形式直接加入這些符號(hào)。為了解決這個(gè)問(wèn)題,JavaScript專門為這類字符提供了一種特殊的表達(dá)方式,稱為轉(zhuǎn)義字符。 轉(zhuǎn)義字符以反斜杠(\)開始,后面跟一些符號(hào)。這些由反斜杠開頭的字符表示的是控制字符而不是字符原來(lái)的含義。表2-3列出了JavaScript支持的轉(zhuǎn)義字符及其代表的實(shí)際意義。 表2-3 JavaScript中的轉(zhuǎn)義字符 字 符 含 義 \0 NULL字符(\u0000) \b 退格符(\u0008) \t 水平制表符(\u0009) \n 換行符(\u000A) \v 垂直制表符(\u000B) \f 換頁(yè)符(\uDDCC) \r 回車符(\uDDCD) \" 雙引號(hào)(\u0022) \' 撇號(hào)或單引號(hào)(\u0027) \\ 反斜杠符\ (\u005C) \xXX 由兩個(gè)十六進(jìn)制數(shù)值XX指定的 Latin-1 編碼字符,如 \xA9 即是版權(quán)符號(hào)的十六進(jìn)制碼 \uXXXX 由4位十六進(jìn)制數(shù)的?XXXX指定的Unicode 字符,如 \u00A9 即是版權(quán)符號(hào)的 Unicode 編碼 \XXX 由1~3位八進(jìn)制數(shù)(從1~377)指定的 Latin-1 編碼字符,如 \251 即是版權(quán)符號(hào)的八進(jìn)制碼(ECMAScript V3不支持,不要使用這種轉(zhuǎn)義序列) 2.2.3 布爾型 布爾型主要用來(lái)代表一種狀態(tài),其數(shù)據(jù)的值只有兩個(gè),由布爾型直接量true和false來(lái)表示,分別代表真和假。 例如, a = =1 這行代碼測(cè)試了變量a的值是否和數(shù)值1相等,如果相等,結(jié)果就是布爾值true;否則結(jié)果就是false。 2.2.4 空值型 JavaScript中還有一個(gè)特殊的空值型數(shù)據(jù),用關(guān)鍵字null來(lái)表示。它是JavaScript中的一種對(duì)象類型,常常被看作對(duì)象類型的一個(gè)特殊值,即代表“無(wú)對(duì)象”的值。如果一個(gè)變量的值為null,那么就表示它的值不是有效的對(duì)象、數(shù)字、字符串和布爾值。 null可用于初始化變量,以避免產(chǎn)生錯(cuò)誤,也可用于清除變量的內(nèi)容,從而釋放與變量相關(guān)聯(lián)的內(nèi)存空間。當(dāng)把null賦值給某個(gè)變量后,這個(gè)變量中就不再保存任何有效的數(shù)據(jù)了。 2.2.5 未定義值 JavaScript中還有一個(gè)特殊的未定義值,用全局變量undefined來(lái)表示。當(dāng)使用了一個(gè)并未聲明的變量或聲明了變量但還沒(méi)有為變量賦值時(shí),將返回 undefined 值。 null和undefined既有區(qū)別又有聯(lián)系。null是JavaScript中的保留字,而undefined卻不是JavaScript中的保留字,而是在ECMAScript V3標(biāo)準(zhǔn)中系統(tǒng)預(yù)定義的一個(gè)全局變量。 雖然undefined和null值不同,但是= =運(yùn)算符卻將二者看作相等。如果想?yún)^(qū)分判斷null和undefined,那么應(yīng)該使用測(cè)試一致性的運(yùn)算符= = =或typeof運(yùn)算符。 2.2.6 類型轉(zhuǎn)換 JavaScript是一種松散類型的程序設(shè)計(jì)語(yǔ)言,并沒(méi)有嚴(yán)格的規(guī)定變量的數(shù)據(jù)類型,也就是說(shuō),已經(jīng)定義數(shù)據(jù)類型的變量,可以通過(guò)相應(yīng)的方法進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。 例如,如果字符串“5”和數(shù)字10進(jìn)行算術(shù)加法運(yùn)算,就需要首先將字符串“5”轉(zhuǎn)換為數(shù)值型。 為了適應(yīng)不同的情況,JavaScript提供了兩種數(shù)據(jù)類型轉(zhuǎn)換的方法:一種方法是將整個(gè)值從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型(稱為基本數(shù)據(jù)類型轉(zhuǎn)換);另一種方法是從一個(gè)值中提取另一種類型的值,并完成類型轉(zhuǎn)換。 JavaScript提供了3個(gè)方法實(shí)現(xiàn)基本數(shù)據(jù)類型之間的轉(zhuǎn)換。 * String():將其他類型的值轉(zhuǎn)換為字符串,如String(123)將數(shù)值123轉(zhuǎn)換為字符串"123"。 * Number():將其他類型的值轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。例如,Number(false)可以將布爾型直接量false轉(zhuǎn)換為數(shù)值0。 * Boolean():將其他類型的值轉(zhuǎn)換為布爾型值。除0、NaN、null、undefined、" " (空字符串)被轉(zhuǎn)換為false外,所有其他值都被轉(zhuǎn)換為true。 實(shí)例2.1 JavaScript基本數(shù)據(jù)類型轉(zhuǎn)換。其代碼如下: <HTML> <HEAD> <TITLE>基本數(shù)據(jù)類型轉(zhuǎn)換</TITLE> <SCRIPT Language="JavaScript"> var num1 ="100"; var num2="200"; document.write("num1='100' num2='200'"); var result=Number(num1)+Number(num2); document.write("<br>數(shù)值的運(yùn)算結(jié)果為:",result); var st=String(num1); result=st+200; document.write("<br>字符串與數(shù)字的運(yùn)算結(jié)果為:",result); var bo=Boolean(num1); result=bo+num2; document.write("<br>字符串與布爾值的運(yùn)算結(jié)果為:",result); result=bo+200; document.write("<br>數(shù)值與布爾值的運(yùn)算結(jié)果為:",result); document </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為shuju.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-1所示。 圖2-1 基本數(shù)據(jù)類型程序運(yùn)行結(jié)果 JavaScript中還提供了3種通過(guò)提取數(shù)據(jù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的方法,即parseInt()、parseFloat()和eval()。 (1) 提取整數(shù)的parseInt()方法。 parseInt()方法用于將字符串轉(zhuǎn)換為整數(shù),其語(yǔ)法格式如下: parseInt(numString,[radix]) 其中,第一個(gè)參數(shù)為必選項(xiàng),指定要轉(zhuǎn)化為整數(shù)的字符串。當(dāng)僅包括這個(gè)參數(shù)時(shí),表示將字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。第二個(gè)參數(shù)是可選的,使用該參數(shù)能夠完成八進(jìn)制、十六進(jìn)制等數(shù)據(jù)的轉(zhuǎn)換。但不管指定按哪一種進(jìn)制轉(zhuǎn)換,parseInt()方法總是以十進(jìn)制值返回結(jié)果。 例如,parseInt("123abc45")的返回值是123。而parseInt("100abc",8)表示將"100abc"按八進(jìn)制數(shù)進(jìn)行轉(zhuǎn)化,由于“abc”不是數(shù)字,所以實(shí)際是將八進(jìn)制數(shù)100轉(zhuǎn)換為十進(jìn)制,轉(zhuǎn)換的結(jié)果為十進(jìn)制數(shù)64。 (2) 提取浮點(diǎn)數(shù)的parseFloat()方法。 parseFloat()方法用于將字符串轉(zhuǎn)換為浮點(diǎn)數(shù),其語(yǔ)法格式如下: parseFloat(numString) 該方法與parseInt()方法相似,不同之處在于parseFloat()方法能夠轉(zhuǎn)換浮點(diǎn)數(shù)。其參數(shù)即為要轉(zhuǎn)換的字符串,如果字符串不以數(shù)字開始,則parseFloat()方法將返回NaN,表示所傳遞的參數(shù)不能轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)。 例如,parseFloat("12.3abc")轉(zhuǎn)化的結(jié)果為12.3。 (3) 計(jì)算表達(dá)式值的eval()方法。 eval()方法用于計(jì)算字符串表達(dá)式或語(yǔ)句的值,其語(yǔ)法格式如下: eval(codeString) 其參數(shù)是由JavaScript語(yǔ)句或表達(dá)式組成的一個(gè)字符串,eval()方法能夠計(jì)算出該字符串表達(dá)式的值。 例如,eval("2+3*5-8")可以計(jì)算表達(dá)式2+3*5-8的值,并返回計(jì)算結(jié)果9。 實(shí)例2.2 JavaScript數(shù)據(jù)類型轉(zhuǎn)換方法的使用。其代碼如下: <HTML> <HEAD> <TITLE>數(shù)據(jù)類型轉(zhuǎn)換方法的使用</TITLE> <SCRIPT Language="JavaScript"> var s1 ="100abc"; var s2="20.5"; document.write("s1=\"100abc\" s2=\"20.05\""); num1=parseInt(s1); num2=parseInt(s2); document.write("<br>將s1轉(zhuǎn)換為整型后的結(jié)果為:",num1); document.write("<br>將s2轉(zhuǎn)換為整型后的結(jié)果為:",num2); num1=parseInt(s1,8); num2=parseInt(s1,2); document.write("<br>將s1作為八進(jìn)制數(shù)轉(zhuǎn)換的結(jié)果為:",num1); document.write("<br>將s1作為二進(jìn)制數(shù)轉(zhuǎn)換的結(jié)果為:",num2); num2=parseFloat(s2); document.write("<br>將s2轉(zhuǎn)換為浮點(diǎn)型的結(jié)果為:",num2); result=eval("100"+s2); document.write("<br>eval(\"100\"+s2)的返回值為:",result); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為tranferfun.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-2所示。 圖2-2 數(shù)據(jù)類型轉(zhuǎn)換方法的使用實(shí)例的運(yùn)行效果 程序中eval("100"+s2)在執(zhí)行時(shí),是先進(jìn)行字符串“100”和字符串s2的連接運(yùn)算,然后再計(jì)算整個(gè)字符串的值,而不是分別將“100”和s2轉(zhuǎn)化為數(shù)值再進(jìn)行算術(shù)加法運(yùn)算,所以最后的結(jié)果為10020.5,而不是120.5。 2.3 變 量 與其他編程語(yǔ)言一樣,JavaScript也是采用變量存儲(chǔ)數(shù)據(jù)的。變量就是程序中一個(gè)已命名的存儲(chǔ)單元。變量的主要作用是存取數(shù)據(jù)和提供存放信息的容器。對(duì)于變量必須明確變量的名稱、類型和變量的值這3方面的特性。 2.3.1 變量的命名 JavaScript中的變量命名要遵守以下幾點(diǎn)規(guī)則。 (1) 變量名必須以大寫字母、小寫字母或下劃線(_)開頭,其他的字符可以是字母、下劃線或數(shù)字。變量名中不允許出現(xiàn)空格、“+”號(hào)、“-”號(hào)等其他符號(hào)。 (2) 不能使用JavaScript中的保留字作為變量名,如var、int、double、true等都不能作為變量的名稱。 (3)??JavaScript變量名是區(qū)分大小寫的,因此在使用時(shí)必須確保大小寫相同。變量名大小寫不同的變量,如name、Name、NAME,將被視為不同的變量。 (4)??JavaScript變量命名規(guī)范與Java類似,對(duì)于變量名為一個(gè)單詞的,則建議其為小寫字母,如area;對(duì)于變量名由兩個(gè)或兩個(gè)以上的單詞組成的,則建議第二個(gè)和第二個(gè)以后的單詞的首字母為大寫,如userName。 (5) 在對(duì)變量命名時(shí),最好把變量名與其代表的內(nèi)容含義對(duì)應(yīng)起來(lái),以便能方便地區(qū)分變量的含義,如name變量就很容易讓人明白其代表的內(nèi)容。 例如,下面的變量名是合法的: user_name $user_name _user_name my_variable_example myVariableExample 而下面的變量名是不合法的: %user_name 1user_name $user_name ~user_name +user_name 2.3.2 變量的聲明 JavaScript是弱類型語(yǔ)言,因此它不像大多數(shù)編程語(yǔ)言那樣強(qiáng)制限定每種變量的類型,即在創(chuàng)建一個(gè)變量時(shí)可以不指定該變量將要存放何種類型的信息。 JavaScript中聲明變量的方式有兩種:一種是使用關(guān)鍵字var顯式聲明變量;另一種是使用賦值語(yǔ)句隱式聲明變量。 說(shuō)明:為了提高程序的可讀性和正確性,建議對(duì)所有變量都使用顯式聲明。 1. 顯式聲明變量 格式1: var 變量名1[,變量名2,變量名3,…] 下面是使用格式1聲明變量的示例代碼: var i; var a,b,c; var name,password; 在聲明變量的同時(shí),可以為變量指定一個(gè)值,這個(gè)過(guò)程稱為變量的初始化。但該過(guò)程不是強(qiáng)制性的,可以聲明一個(gè)變量,但不初始化這個(gè)變量,此時(shí),該變量的數(shù)據(jù)類型為undefined。 格式2: var 變量名1=值1[,變量名2=值2 變量名3=值3,…] 下面是使用格式2聲明變量的示例代碼: var name='張三'; var i=0,j=1; var flag=true; 在為變量賦初值后,JavaScript會(huì)自動(dòng)根據(jù)所賦的值而確定變量的類型。例如,上面的變量name會(huì)自動(dòng)定義為字符串型,變量i和j為數(shù)值型,變量flag為布爾型。 2. 隱式聲明變量 在JavaScript中聲明變量時(shí),還可以在使用格式2聲明變量時(shí)省略關(guān)鍵字var,即直接在賦值語(yǔ)句中隱式地聲明變量。使用賦值語(yǔ)句隱式聲明變量的格式為: 格式3: 變量名=值; 例如,之前的變量聲明語(yǔ)句,也可以寫成以下格式: name='張三'; i=0;j=1; flag=true; 說(shuō)明:在一行中有多個(gè)賦值語(yǔ)句時(shí),之間要用分號(hào)分隔。 實(shí)例2.3 JavaScript中變量的聲明。其代碼如下: <HTML> <HEAD> <TITLE>變量聲明</TITLE> <SCRIPT Language="JavaScript"> var name;//顯式聲明變量但未初始化變量 var age=20;//顯式聲明變量并初始化變量 sex='男';//使用賦值語(yǔ)句隱式聲明變量 document.writeln("變量name的初始值:",name); document.writeln("<br>變量name的類型是:",typeof(name)); document.writeln("<br>變量age的初始值:",age); document.writeln("<br>變量age的類型是:",typeof(age)); document.writeln("<br>變量sex的初始值:",sex); document.writeln("<br>變量sex的類型是:",typeof(sex)); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為tranferfun.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-3所示。 圖2-3 實(shí)例2.3的運(yùn)行結(jié)果(顯式聲明的變量的值) 說(shuō)明:為了提高程序的可讀性和正確性,建議對(duì)所有的變量都使用關(guān)鍵字var顯式聲明變量,這樣可以區(qū)分變量和直接量。此外,全局變量必須使用var關(guān)鍵字。 2.3.3 變量的賦值 在程序中任何位置需要改變變量的值時(shí),都可以使用賦值語(yǔ)句來(lái)為變量賦值。賦值語(yǔ)句由變量名、等號(hào)以及確定的值組成。賦值語(yǔ)句的格式與格式3相同,即: 格式4: 變量名=值; 格式4與格式3的不同之處是,格式3中的變量名一般是在程序中第一次出現(xiàn),表示在聲明變量的同時(shí)給變量賦值,而格式4中的變量名可以是在程序中已經(jīng)出現(xiàn)過(guò)的變量,經(jīng)常是改變變量的值,甚至還能改變變量的類型。 實(shí)例2.4 JavaScript中變量的賦值。其代碼如下: <HTML> <HEAD> <TITLE>變量賦值</TITLE> <SCRIPT Language="JavaScript"> salary=1000; //在聲明變量salary的同時(shí)給變量賦值 document.writeln("變量salary的初始值:",salary); document.writeln("<br>變量salary的類型是:",typeof(salary)); salary=1500; //使用賦值語(yǔ)句改變變量salary的值 document.writeln("<br>變量salary改變后的值:",salary); document.writeln("<br>變量salary的類型是:",typeof(salary)); salary='我的工資' //使用賦值語(yǔ)句將變量salary的類型由數(shù)值型變?yōu)榱俗址?br /> document.writeln("<br>變量salary改變類型后的值:",salary); document.writeln("<br>變量salary改變類型后的類型是:",typeof(salary)); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為var2.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-4所示。 圖2-4 實(shí)例2.4的運(yùn)行結(jié)果(顯示每次賦值的變量的值) 2.4 運(yùn) 算 符 運(yùn)算符是完成操作的一系列符號(hào),運(yùn)算符用于將一個(gè)或幾個(gè)數(shù)據(jù)按照某種規(guī)則進(jìn)行運(yùn)算,并產(chǎn)生一個(gè)操作結(jié)果,它必須作用在數(shù)據(jù)上才有效,使用運(yùn)算符的數(shù)據(jù)被稱為操作數(shù)。 根據(jù)運(yùn)算類別,可以將JavaScript中的運(yùn)算符分為以下6類。 * 算術(shù)運(yùn)算符。 * 賦值運(yùn)算符。 * 關(guān)系運(yùn)算符。 * 邏輯運(yùn)算符。 * 字符串運(yùn)算符。 * 其他運(yùn)算符。 根據(jù)操作數(shù)的個(gè)數(shù),可以將JavaScript中的運(yùn)算符分為3類。 * 單目運(yùn)算符:只作用于一個(gè)數(shù)據(jù)的運(yùn)算符。 * 雙目運(yùn)算符:作用于兩個(gè)數(shù)據(jù)上的運(yùn)算符。 * 三目運(yùn)算符:作用于3個(gè)數(shù)據(jù)上的運(yùn)算符。 說(shuō)明:除了條件運(yùn)算符是三目運(yùn)算符外,JavaScript中其他的運(yùn)算符都是雙目或者單目運(yùn)算。 雙目運(yùn)算符基本語(yǔ)法格式如下: 操作數(shù)1 運(yùn)算符 操作數(shù)2 例如,100+200、“This is”+“a book.”等。 雙目運(yùn)算符包括+(加)、-(減)、*(乘)、/(除)、%(取模)、|(按位或)、&(按位與)、<<(左移)、>>(右移)、>>>(右移,零填充)等。 單目運(yùn)算符是只需要一個(gè)操作數(shù)的運(yùn)算符,此時(shí)運(yùn)算符可能在運(yùn)算符前或運(yùn)算符后。基本語(yǔ)法格式如下: 操作數(shù)1 運(yùn)算符 或 運(yùn)算符 操作數(shù)1 單目運(yùn)算符包括-(單目減)、!(邏輯非)、~(取補(bǔ))、++(遞加1)、--(遞減1)等。 2.4.1 算術(shù)運(yùn)算符 JavaScript中的算術(shù)運(yùn)算符如表2-4所示。 表2-4 JavaScript中的算術(shù)運(yùn)算符 運(yùn)算符 說(shuō) 明 + 加法運(yùn)算符 - 減法運(yùn)算符 * 乘法運(yùn)算符 / 除法運(yùn)算符 % 取模運(yùn)算符,即計(jì)算兩個(gè)數(shù)相除的余數(shù) - 取反運(yùn)算符,即將運(yùn)算數(shù)的符號(hào)變成相反的 續(xù)表 運(yùn)算符 說(shuō) 明 ++ 增量運(yùn)算符,遞加1并返回?cái)?shù)值或返回?cái)?shù)值后遞加1,取決于運(yùn)算符的位置在操作數(shù)之前還是之后 -- 減量運(yùn)算符,遞減1并返回?cái)?shù)值或返回?cái)?shù)值后遞減1,取決于運(yùn)算符的位置在操作數(shù)之前還是之后 1. 加(+)、減(-)、乘(*)、除(/)運(yùn)算符 加(+)、減(-)、乘(*)、除(/)運(yùn)算符符合日常的數(shù)學(xué)運(yùn)算規(guī)則,兩邊的運(yùn)算數(shù)的類型要求是數(shù)值型的(+也可用于字符串連接操作),如果不是數(shù)值型的,JavaScript會(huì)將它們自動(dòng)轉(zhuǎn)換為數(shù)值型。 2. 取模運(yùn)算符(%) 取模運(yùn)算符也稱為取余運(yùn)算符,其兩邊的運(yùn)算數(shù)的類型也必須是數(shù)值型的。A%B的結(jié)果是數(shù)A除以數(shù)B后得到的余數(shù),如11%2=1。 以上的運(yùn)算符都是雙目運(yùn)算符,使用這些運(yùn)算符時(shí)一定要特別小心,有可能會(huì)出現(xiàn)NaN或其他錯(cuò)誤的結(jié)果,如果除數(shù)為0就會(huì)出現(xiàn)問(wèn)題。 3. 取反運(yùn)算(-) 取反運(yùn)算的作用就是將值的符號(hào)變成相反的,即把一個(gè)正值轉(zhuǎn)換成相應(yīng)的負(fù)值;反之亦然。例如,x=5,則-x=-5。該運(yùn)算符是單目運(yùn)算符,同樣也要求操作都是數(shù)值型的,如果不是數(shù)值型的,會(huì)被自動(dòng)轉(zhuǎn)換成數(shù)值型。 4. 增量運(yùn)算符(++)和減量運(yùn)算符(--) 這兩種運(yùn)算符實(shí)際上是代替變量x進(jìn)行x=x+1和x=x-1兩種操作的簡(jiǎn)單而有效的方法,但是該運(yùn)算符是置于變量之前和置于變量之后所得到的結(jié)果是不同的。 將運(yùn)算符置于變量之前,表示先對(duì)變量進(jìn)行加1或減1操作,然后再在表達(dá)式中進(jìn)行計(jì)算。 例如,如果x=5,則++x+4=10,這是因?yàn)閤先加1得到6,然后再進(jìn)行加法運(yùn)算,所以得到結(jié)果10,這相當(dāng)于先執(zhí)行了x=x+1,然后執(zhí)行x+4。 同理,如果x=5,則--x+4=8,這是因?yàn)閤先減1得到4,然后再進(jìn)行加法運(yùn)算,所以得到結(jié)果8,這相當(dāng)于先執(zhí)行了x=x-1,然后執(zhí)行x+4。 如果將運(yùn)算符置于變量之后,表示先將變量的值在表達(dá)式中參加運(yùn)算后,再進(jìn)行加1或減1。 例如,如果x=5,則x+++4=9,這是因?yàn)閤的值先與4相加得到9,然后x才加1得到6,這相當(dāng)于先執(zhí)行了x+4,然后再執(zhí)行x=x+1。 同理,如果x=5,則x--+4=9,這是因?yàn)閤的值也是先與4相加得到9,然后x才減1得到4,這相當(dāng)于先執(zhí)行了x+4,然后再執(zhí)行x=x-1。 這兩個(gè)運(yùn)算符都是單目運(yùn)算符,同樣也要求操作數(shù)都是數(shù)值型的,如果不是數(shù)值型的,會(huì)被自動(dòng)轉(zhuǎn)換成數(shù)值型。 實(shí)例2.5 JavaScript中增量和減量運(yùn)算符的使用。其代碼如下: <HTML> <HEAD> <TITLE>增量運(yùn)算符和減量運(yùn)算符的使用</TITLE> <SCRIPT Language="JavaScript"> var a=5; var b; document.write("a=",a); b=a++; document.write("<br>執(zhí)行b=a++后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=++a; document.write("<br>執(zhí)行b=++a后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=a--; document.write("<br>執(zhí)行b=a--后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=--a; document.write("<br>執(zhí)行b=--a后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=a+++5; document.write("<br>執(zhí)行b=a+++5后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=++a+5; document.write("<br>執(zhí)行b=++a+5后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=a--+5; document.write("<br>執(zhí)行b=a--+5后,a=",a); document.write(" b=",b); a=5; document.write("<br>a=",a); b=--a+5; document.write("<br>執(zhí)行b=--a+5后,a=",a); document.write(" b=",b); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為var3.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-5所示。 圖2-5 增量和減量運(yùn)算符實(shí)例的運(yùn)行結(jié)果 2.4.2 賦值運(yùn)算符 在之前創(chuàng)建變量時(shí),實(shí)際上已經(jīng)使用了賦值運(yùn)算符(=)給變量賦初值。賦值運(yùn)算符(=)的作用是將其右邊的表達(dá)式的值給左邊的變量。 例如,a=5+1就表示把賦值號(hào)右邊的表達(dá)式5+1計(jì)算出來(lái)的結(jié)果值6給左邊的變量a,這樣變量a的值就是6。 賦值運(yùn)算符(=)還可以用來(lái)給多個(gè)變量指定同一個(gè)值,如a=b=c=1,執(zhí)行該語(yǔ)句后,變量a、b、c的值都為1。 除了直接賦值外,還可以在賦值運(yùn)算符(=)之前加上其他的運(yùn)算符,構(gòu)成復(fù)合賦值運(yùn)算符。表2-5列出了常用的復(fù)合賦值運(yùn)算符。 表2-5 JavaScript中的復(fù)合賦值運(yùn)算符 運(yùn)算符 說(shuō) 明 = 賦值運(yùn)算符,將運(yùn)算符左邊的變量設(shè)置為右邊表達(dá)式的值 += 加法賦值運(yùn)算符,將運(yùn)算符左邊的變量加上右邊表達(dá)式的值,即a+=b,等同于a=a+b -= 減法賦值運(yùn)算符,將運(yùn)算符左邊的變量減去右邊表達(dá)式的值,即a-=b,等同于a=a-b *= 乘法賦值運(yùn)算符,將運(yùn)算符左邊的變量乘以右邊表達(dá)式的值,即a*=b,等同于a=a*b /= 除法賦值運(yùn)算符,將運(yùn)算符左邊的變量除以右邊表達(dá)式的值,即a/=b,等同于a=a/b %= 取模賦值運(yùn)算符,將運(yùn)算符左邊的變量用右邊表達(dá)式的值求模,即a%=b,等同于a=a%b 實(shí)例2.6 JavaScript中賦值運(yùn)算符的使用。其代碼如下: <HTML> <HEAD> <TITLE>賦值運(yùn)算符的使用</TITLE> <SCRIPT Language="JavaScript"> var a=10; document.write("a=",a); a+=3; document.write(" 執(zhí)行a+=3后,a=",a); a=10; document.write("<br>a=",a); a-=3; document.write(" 執(zhí)行a-=3后,a=",a); a=10; document.write("<br>a=",a); a*=3; document.write(" 執(zhí)行a*=3后,a=",a); a=10; document.write("<br>a=",a); a/=3; document.write(" 執(zhí)行a/=3后,a=",a); a=10; document.write("<br>a=",a); a%=3; document.write(" 執(zhí)行a%=3后,a=",a); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為var4.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-6所示。 圖2-6 賦值運(yùn)算符實(shí)例的運(yùn)行結(jié)果 2.4.3 關(guān)系運(yùn)算符 關(guān)系運(yùn)算符又稱為比較運(yùn)算符,是一個(gè)雙目運(yùn)算符,用于比較操作數(shù)之間的大小等關(guān)系,關(guān)系運(yùn)算符的操作數(shù)可以是數(shù)值、字符串,也可以是布爾值,其運(yùn)算結(jié)果是true或false。JavaScript中的關(guān)系運(yùn)算符如表2-6所示。 表2-6 JavaScript中的關(guān)系運(yùn)算符 運(yùn)算符 說(shuō) 明 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 === 嚴(yán)格等于 != 不等于 !== 嚴(yán)格不等于 說(shuō)明:嚴(yán)格等于(===)和嚴(yán)格不等于(!==)運(yùn)算符是ECMAScript標(biāo)準(zhǔn)中的運(yùn)算符,因此只在Navigator 4.06以上和IE4以上的瀏覽器中支持。 如果比較的兩個(gè)操作數(shù)為數(shù)值型,則按數(shù)學(xué)上的比較原則來(lái)比較。如果比較的兩個(gè)操作數(shù)為布爾值,JavaScript認(rèn)為true大于false。如果比較的兩個(gè)操作數(shù)為字符串型時(shí),要按字符編碼依次自左到右進(jìn)行比較。 實(shí)例2.7 JavaScript中關(guān)系運(yùn)算符的使用。其代碼如下: <HTML> <HEAD> <TITLE>比較運(yùn)算符</TITLE> <SCRIPT Language="JavaScript"> var i=5,j=8; var b1=true,b2=false; var s1="Shanghai"; var s2="ShangHai"; var s3="I am a boy." var s4="I am a girl." var s5="北京"; var s6="天津"; document.write("數(shù)值型比較:5>8=",i>j); document.write("<br>布爾值比較:true>false=",b1>b2); document.write("<br>字符串比較:"); document.write("<br>'Shanghai'>'ShangHai'=",s1>s2); document.write("<br>'Shanghai'=='ShangHai'=",s1==s2); document.write("<br>'I am a boy.'>'I am a girl.'=",s3>s4); document.write("<br>'北京'>'天津'=",s5>s6); document.write("<br>忽略大小寫比較 'Shanghai'=='ShangHai'=",s1.toUpperCase()==s2.toUpperCase()); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 程序中使用s1.toUpperCase()和s2.toUpperCase()方法將字符串s1和s2全部轉(zhuǎn)換為大寫字母。將頁(yè)面保存為var5.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-7所示。 圖2-7 關(guān)系運(yùn)算符實(shí)例的運(yùn)行結(jié)果 JavaScript提供的運(yùn)算符==和!=分別用于完成判斷兩個(gè)操作數(shù)是否相等,其中操作數(shù)可以是各種類型。除了相等和不相等運(yùn)算符之外,JavaScript還提供了嚴(yán)格等于(===)和嚴(yán)格不等于(!==)運(yùn)算符,用于測(cè)試兩個(gè)操作數(shù)是否完全一樣,包括值是否相等以及類型是否相同。這兩個(gè)運(yùn)算符在比較之前不進(jìn)行類型轉(zhuǎn)換直接測(cè)試是否相等。只有兩個(gè)操作數(shù)的值相等并且類型也相同時(shí),一致性測(cè)試運(yùn)算===的計(jì)算結(jié)果才為true;否則其值為false。例如,表達(dá)式“58”==58的結(jié)果為true,而表達(dá)式“58”===58的結(jié)果為false,原因在于它們的數(shù)據(jù)類型不一致(一個(gè)操作數(shù)為字符串型,另一個(gè)為數(shù)值類型)。 2.4.4 邏輯運(yùn)算符 邏輯運(yùn)算符通常在條件語(yǔ)句中使用,它們與關(guān)系運(yùn)算符一起構(gòu)成復(fù)雜的判斷條件。JavaScript中提供了3種邏輯運(yùn)算符:邏輯與(&&)、邏輯或(||)、邏輯非(!),如表2-7所示。 表2-7 JavaScript中的邏輯運(yùn)算符 運(yùn)算符 說(shuō) 明 && 邏輯與,當(dāng)兩個(gè)操作數(shù)的值都為true時(shí),運(yùn)算結(jié)果為true || 邏輯或,只要兩個(gè)操作數(shù)中有一個(gè)值為true時(shí),運(yùn)算結(jié)果就為true ! 邏輯非,對(duì)操作數(shù)取反,即true值非運(yùn)算的結(jié)果為false,false值非運(yùn)算的結(jié)果為true 其中邏輯與和邏輯或運(yùn)算符是雙目運(yùn)算符,而邏輯非運(yùn)算符是單目運(yùn)算符。它們所連接的操作數(shù)都是邏輯型變量或表達(dá)式。對(duì)于連接的非邏輯型變量或表達(dá)式,在JavaScript中將非0的數(shù)值看作是true,而將0看作是false。 (1) 邏輯與(&&)。只有當(dāng)兩個(gè)操作數(shù)的值都為true時(shí),運(yùn)算結(jié)果才為true;否則為false。因此,如果邏輯與運(yùn)算符左邊的表達(dá)式的計(jì)算結(jié)果為零、null或空字符串,那么整個(gè)表達(dá)式的結(jié)果就肯定是false;如果邏輯與運(yùn)算符左邊的表達(dá)式的計(jì)算結(jié)果為true,此時(shí)計(jì)算邏輯與運(yùn)算符右側(cè)的表達(dá)式,如果這個(gè)表達(dá)式的值也是true,那么整個(gè)表達(dá)式的結(jié)果為true;否則,如果左邊值為true,右邊值為false,整個(gè)表達(dá)式的值將為false。 (2) 邏輯或(||)。只要兩個(gè)操作數(shù)中有一個(gè)值為true時(shí),運(yùn)算結(jié)果就為true,如果兩個(gè)操作數(shù)的值都為假,則運(yùn)算結(jié)果為假。如果邏輯或運(yùn)算符左邊的表達(dá)式計(jì)算結(jié)果為true,那么就不再計(jì)算或運(yùn)算符右邊的表達(dá)式的值,并且整個(gè)表達(dá)式的值為true;如果邏輯或運(yùn)算符左邊的表達(dá)式計(jì)算結(jié)果為false,那么計(jì)算或運(yùn)算符右側(cè)的表達(dá)式的值,如果這個(gè)值為true,那么整個(gè)表達(dá)式的值為true;如果右側(cè)表達(dá)式計(jì)算的結(jié)果也為false,那么整個(gè)表達(dá)式的值為false。 (3) 邏輯非(!)。用于否定一個(gè)運(yùn)算的結(jié)果!罢妗钡倪壿嫹侵禐椤凹佟,“假”的邏輯非值為“真”。邏輯非是一個(gè)單目運(yùn)算符,它只有一個(gè)操作數(shù),如!true或!(5>8) 。 實(shí)例2.8 JavaScript中邏輯運(yùn)算符的使用。其代碼如下: <HTML> <HEAD> <TITLE>邏輯運(yùn)算符</TITLE> <SCRIPT Language="JavaScript"> var a=10,b=20,c=30,d=40; document.write("a=",a," b=",b," c=",c," d=",d); document.write("<br>true&&false=",true&&false); document.write("<br>true||false=",true||false); document.write("<br>!true=",!true); document.write("<br>!false=",!false); document.write("<br>(a>b)&&(d>c)=",(a>b)&&(d>c)); document.write("<br>(a>b)||(d>c)=",(a>b)||(d>c)); document.write("<br>!(a>b)=",!(a>b)) </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為var6.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-8所示。 圖2-8 邏輯運(yùn)算符實(shí)例的運(yùn)行結(jié)果 2.4.5 字符串運(yùn)算符 在JavaScript中只有一個(gè)字符串運(yùn)算符,即連接運(yùn)算符(+),它是一個(gè)雙目運(yùn)算符,可以將兩個(gè)字符串連接起來(lái)形成一個(gè)新的字符串。例如"This"+"is"的運(yùn)算結(jié)果為"This is", "中國(guó)"+"北京"運(yùn)算結(jié)果為"中國(guó)北京"。 當(dāng)操作數(shù)中至少有一個(gè)操作數(shù)是字符串時(shí),JavaScript將自動(dòng)把另一操作數(shù)轉(zhuǎn)換為字符串。例如,"36"+2的運(yùn)算結(jié)果為"362","It is"+true的運(yùn)算結(jié)果為"It is true"。 另外,字符串連接運(yùn)算符還可以和前面的賦值運(yùn)算符聯(lián)合使用,形成"+="運(yùn)算符,它的作用是,將運(yùn)算符右側(cè)的字符串拼接到該運(yùn)算符左側(cè)字符串的后面,并將結(jié)果賦值給運(yùn)算符左側(cè)的操作數(shù)。 實(shí)例2.9 JavaScript中字符串運(yùn)算符的使用。其代碼如下: <HEAD> <TITLE>字符串運(yùn)算符</TITLE> <SCRIPT Language="JavaScript"> var a="this"; var b=" is "; var c=10; var d=true; var e; document.write("a=",a," b=",b," c=",c," d=",d); document.write("<br>a+b=",e=a+b); document.write("<br>e=",e); document.write("<br>e+c=",e+c); document.write("<br>e+d=",e+d); document.write("<br>c+c=",c+c); document.write("<br>d+d=",d+d); document.write("<br>e+e=",e+e); e+=c; document.write("<br>執(zhí)行完e+=c后,e=",e); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> 將頁(yè)面保存為var7.htm文件,在瀏覽器中執(zhí)行,結(jié)果如圖2-9所示。 圖2-9 字符串運(yùn)算符實(shí)例的運(yùn)行結(jié)果 說(shuō)明:如果字符串運(yùn)算符中兩個(gè)操作數(shù)都為數(shù)值型或布爾型,則按加法進(jìn)行運(yùn)算。布爾型中的true被轉(zhuǎn)換為數(shù)值1,false則轉(zhuǎn)換為數(shù)值0。 2.4.6 其他運(yùn)算符 除了前面介紹的各種運(yùn)算符以外,JavaScript還提供了位操作運(yùn)算符、條件運(yùn)算符等其他的運(yùn)算符。表2-8 列出的是有關(guān)位操作的運(yùn)算符。 表2-8 JavaScript中的位運(yùn)算符 運(yùn)算符 說(shuō) 明 ~ 按位取反運(yùn)算符 << 按位左移運(yùn)算符 >> 按位右移運(yùn)算符 >>> 無(wú)符號(hào)右移運(yùn)算符 & 按位與運(yùn)算符 ^ 按位異或運(yùn)算符 | 按位或運(yùn)算符 &= 按位與賦值運(yùn)算符 |= 按位或賦值運(yùn)算符 ^= 按位異或賦值運(yùn)算符 <<= 按位左移賦值運(yùn)算符 >>= 按位右移賦值運(yùn)算符 >>>= 按位無(wú)符號(hào)右移賦值運(yùn)算符 表2-9列出了JavaScript中其他的一些運(yùn)算符。 表2-9 JavaScript中的其他運(yùn)算符 運(yùn)算符 說(shuō) 明 ? : 三目條件運(yùn)算符。例如,x?a:b表示如果x為真,則整個(gè)表達(dá)式的值為a的值;否則為b的值 , 逗號(hào)運(yùn)算符,計(jì)算兩個(gè)表達(dá)式的值,并返回第二個(gè)表達(dá)式的值 delete 用于刪除對(duì)象并釋放該對(duì)象所占用的空間 typeof 用于返回操作數(shù)的數(shù)據(jù)類型 void 運(yùn)算符對(duì)表達(dá)式求值,并返回 undefined instanceof 判斷對(duì)象是否是指定的對(duì)象類型 new 用于創(chuàng)建用戶自定義對(duì)象實(shí)例 in 判斷指定屬性是否是對(duì)象的屬性。當(dāng)指定屬性是對(duì)象的屬性時(shí)返回真;否則返回假 2.4.7 運(yùn)算符的優(yōu)先級(jí) 運(yùn)算符優(yōu)先級(jí)是指在一個(gè)表達(dá)式中,運(yùn)算符的優(yōu)先順序,程序的執(zhí)行順序?qū)⒁罁?jù)運(yùn)算符的優(yōu)先級(jí)順序。例如,在進(jìn)行四則運(yùn)算時(shí),規(guī)則是先乘除、后加減,即乘法和除法的運(yùn)算優(yōu)先級(jí)高于加法和減法的優(yōu)先級(jí),同一優(yōu)先級(jí)的運(yùn)算符按從左到右方式進(jìn)行計(jì)算,這就是運(yùn)算符的結(jié)合方式。所有的算術(shù)運(yùn)算符都是從左向右執(zhí)行,所以如果有兩個(gè)或者更多的算術(shù)運(yùn)算符有相同的優(yōu)先級(jí),那么左邊的將先執(zhí)行,然后依次執(zhí)行。 如下面的表達(dá)式: x = 5 + 9 – 3 * 2 + 30/6 該例子中,乘和除將首先被運(yùn)算,接下來(lái)是加和減,運(yùn)算中還包含了乘和除兩個(gè)優(yōu)先級(jí)相同的運(yùn)算符號(hào),所以左邊的乘法將先被執(zhí)行,然后是除;3*2等于6,30/6等于5,則原式變?yōu)椋簒=5+9–6+5,接下來(lái)按從左到右的順序進(jìn)行加減運(yùn)算,最后的結(jié)果x=13。 如果想改變運(yùn)算的執(zhí)行順序,就需要使用成對(duì)的括號(hào),括號(hào)內(nèi)的運(yùn)算將比括號(hào)外的運(yùn)算先執(zhí)行。如果同樣是上面幾個(gè)運(yùn)算數(shù),寫成下面的表達(dá)式: x = (5 + 9 – 3) * 2 + 30/6 括號(hào)里的表達(dá)式將先被執(zhí)行,結(jié)果是11,原式變?yōu)閤=11*2+30/6,然后進(jìn)行乘除運(yùn)算,接下來(lái)是加減運(yùn)算,最后的結(jié)果是27,這個(gè)結(jié)果與前一個(gè)例子的結(jié)果就完全不相同了。 如果兩個(gè)或者兩個(gè)以上的運(yùn)算符有相同的優(yōu)先級(jí),JavaScript根據(jù)運(yùn)算符的執(zhí)行順序進(jìn)行排序,一般都是從左向右。但是也有一些是從右向左。表2-10中列出了JavaScript中的運(yùn)算符優(yōu)先級(jí)以及運(yùn)算符的結(jié)合方式,同一優(yōu)先級(jí)的運(yùn)算符放在同一行上,表格自上向下運(yùn)算符的優(yōu)先級(jí)逐漸降低,在“結(jié)合性”一欄中列出的運(yùn)算符的結(jié)合性是從右向左的,其余運(yùn)算符的結(jié)合性均為從左向右。 表2-10 JavaScript中運(yùn)算符優(yōu)先級(jí)和結(jié)合性 優(yōu)先級(jí) 運(yùn)算符 結(jié)合性(從右向左) 1 括號(hào)運(yùn)算, 函數(shù)調(diào)用, 數(shù)組游標(biāo) 2 !, ~, +, -, ++, --, typeof, new,void, delete +(一元加), -(一元減), ++, --, !, ~ 3 *, /, % 4 +, - 5 <<, >>, >>> 6 <, <=, >, >= 7 = =, != , = = =, != = 8 & 9 ^ 10 | 11 && 12 || 續(xù)表 優(yōu)先級(jí) 運(yùn)算符 結(jié)合性(從右向左) 13 ?: ?: 14 =, +=, -=, *=, /=, %=, <<=, >>=,>>>=, &=, ^=, != =, *=, /=, +=, -=, %=, <<=, >>=,&=, ^=,!= 15 逗號(hào) (,)操作符 課 后 小 結(jié) 本章主要介紹了JavaScript語(yǔ)言的基本語(yǔ)法規(guī)則,以及數(shù)據(jù)類型、變量和運(yùn)算符的基本使用方法,為后續(xù)JavaScript的流程控制語(yǔ)句的學(xué)習(xí)打下基礎(chǔ)。 習(xí) 題 一、填空題 1.??JavaScript里面的標(biāo)識(shí)符不能以__________開頭。 2. 根據(jù)變量的作用域,可以把變量分為_____________或者_(dá)___________。 3. 在JavaScript運(yùn)算符中,______擁有最高的優(yōu)先級(jí)。 4.??__________運(yùn)算符可以連接兩個(gè)字符串。 二、選擇題 1. 下面( )是聲明變量和賦值的正確語(yǔ)法。 A.var myVariable="Hello";B.var myVariable=Hello; C."Hello" =var myVariable;D.var "Hello"= myVariable; 2. 下面( )是合法的變量名。 A.%varoable_name B.1varoable_name C.varoable_nameD.+varoable_name 3. 下述( )不是引用數(shù)據(jù)類型。 A.函數(shù)B.?dāng)?shù)組C.布爾類型D.對(duì)象 4. 下面( )不是浮點(diǎn)數(shù)。 A.-439.35 B.3.17C.10D.-7e11 5. 下面( )轉(zhuǎn)義字符可以在字符串中加入一個(gè)換行操作。 A.\bB.\fC.\nD.\r 6. 在語(yǔ)句return Value=count++中,如果count的初始值為10,則Value的值為( )。 A.10B.11C.12D.20 7. 表達(dá)式50=="fifty"的值為( )。 A.trueB.falseC.50D.“fifty” 8. 如果x的值為1,執(zhí)行y=eval(x+"2*2");語(yǔ)句后,y的值為( )。 A.“1+2*2”B.“12*2”C.6D.24 三、上機(jī)練習(xí)題 定義3個(gè)變量,分別為整型、浮點(diǎn)型和字符串,對(duì)它們進(jìn)行算術(shù)運(yùn)算(加、減、乘、除等),將結(jié)果輸出到頁(yè)面上。
你還可能感興趣
我要評(píng)論
|