版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《JavaScript與jQuery網(wǎng)頁前端開發(fā)與設(shè)計(jì)-第2版》教案第1章緒論一、教學(xué)目標(biāo):了解JavaScript的概念與特點(diǎn);了解jQuery的概念與特點(diǎn);掌握任意一款Web開發(fā)工具。二、教學(xué)重點(diǎn)和難點(diǎn):重點(diǎn):了解JavaScript的概念與特點(diǎn);難點(diǎn):了解jQuery的概念與特點(diǎn)。三、教學(xué)方法與手段:采取互動(dòng)式教學(xué)方法,理論教學(xué)使用多媒體投影教室。四、課程簡(jiǎn)介:本章是全書的緒論部分,主要介紹JavaScript、jQuery概述以及Web開發(fā)工具的選擇。JavaScript和HTML、CSS一起被稱為是Web開發(fā)的三大核心技術(shù),當(dāng)今所有瀏覽器都支持JavaScript,無需額外安裝第三方插件。而jQuery是一個(gè)輕量級(jí)的跨平臺(tái)JavaScript函數(shù)庫(kù),它化簡(jiǎn)了JavaScript代碼復(fù)雜度,其語法能用讓用戶更方便地選取和操作HTML元素、處理各類事件、實(shí)現(xiàn)JavaScript特效與動(dòng)畫,并且能為不同類型的瀏覽器提供更便捷的API用于AJAX交互。五、教學(xué)基本內(nèi)容:JavaScript概述JavaScript簡(jiǎn)介JavaScript是一種輕量級(jí)的直譯式編程語言,基于ECMAScript標(biāo)準(zhǔn)(注:一種由ECMA國(guó)際組織通過ECMA-262標(biāo)準(zhǔn)化的腳本程序語言)。通常在HTML網(wǎng)頁中使用JavaScript為頁面增加動(dòng)態(tài)效果和功能。JavaScript和HTML、CSS一起被稱為是Web開發(fā)的三大核心技術(shù),目前JavaScript已經(jīng)廣泛應(yīng)用于Web開發(fā),市面上絕大多數(shù)網(wǎng)頁都使用了JavaScript代碼??梢哉f當(dāng)今所有瀏覽器都支持JavaScript,無需額外安裝第三方插件。JavaScript起源JavaScript最早是在1995年的時(shí)候由網(wǎng)景(Netscape)公司的BrendanEich用了十天時(shí)間開發(fā)出來的,用于當(dāng)時(shí)的網(wǎng)景導(dǎo)航者(NetscapeNavigator)瀏覽器2.0版。最初這種腳本語言的官方名稱為L(zhǎng)iveScript,后來應(yīng)用于網(wǎng)景導(dǎo)航者瀏覽器2.0B3版的時(shí)候正式更名為JavaScript。更名的原因是因?yàn)楫?dāng)時(shí)網(wǎng)景公司與Sun公司開展了合作,網(wǎng)景公司的管理層希望在他們的瀏覽器中增加對(duì)于Java技術(shù)的支持。該名稱容易讓人誤以為該腳本語言是和Java語言有關(guān),但實(shí)際上該語言的語法風(fēng)格與Scheme更為接近。JavaScriptvsJava因?yàn)槊Q的相近,JavaScript常被誤以為和Java有關(guān),但事實(shí)上它們是無論從概念還是設(shè)計(jì)上都毫無關(guān)聯(lián)的兩種語言。JavaScript是Netscape公司的BrendanEich發(fā)明的一種輕量級(jí)語言,主要應(yīng)用于網(wǎng)頁開發(fā),無需事先編譯;而Java是由Sun公司的JamesGosling發(fā)明的一種面向?qū)ο蟪绦蛘Z言,根據(jù)應(yīng)用方向又可分為J2SE(Java2標(biāo)準(zhǔn)版)、J2ME(Java2微型版)和J2EE(Java2企業(yè)版)三個(gè)版本,需要先編譯再執(zhí)行。JavaScript的主旨是為非程序開發(fā)者快速上手使用的,而Java是更高級(jí)更復(fù)雜的一種面向?qū)I(yè)程序開發(fā)者的語言,比JavaScript難度大、應(yīng)用范圍更廣。JavaScript的特點(diǎn)1. 腳本語言JavaScript是一種直譯式的腳本語言,無需事先編譯,可以在程序運(yùn)行的過程中逐行進(jìn)行解釋使用。該語言適合非程序開發(fā)人員使用。2. 簡(jiǎn)單性JavaScript具有非常簡(jiǎn)單的語法,其腳本程序面向非程序開發(fā)人員。HTML前端開發(fā)者都有能力為網(wǎng)頁添加JavaScript片段。3. 弱類型JavaScript無需定義變量的類型,所有變量的聲明都可以用統(tǒng)一的類型關(guān)鍵詞表示。在運(yùn)行過程中,JavaScript會(huì)根據(jù)變量的值判斷其實(shí)際類型。4. 跨平臺(tái)性JavaScript語言是一種Web程序開發(fā)語言,它只與瀏覽器支持情況有關(guān),與操作系統(tǒng)的平臺(tái)類型無關(guān)。目前JavaScript可以在無需安裝第三方插件的情況下被大多數(shù)主流瀏覽器完全支持,因此JavaScript程序在編寫后可以在不同類型的操作系統(tǒng)中運(yùn)行,適用于PC、筆記本電腦、平板電腦和手機(jī)等各類包含瀏覽器的設(shè)備。5. 大小寫敏感JavaScript語言是一種大小寫敏感的語言,例如字母a和A會(huì)被認(rèn)為是不同的內(nèi)容。同樣在使用函數(shù)時(shí)也必須嚴(yán)格遵守大小寫的要求使用正確的方法名稱。jQuery概述jQuery簡(jiǎn)介jQuery這個(gè)名稱來源于JavaScript和Query(查詢)的組合,是一個(gè)輕量級(jí)的跨平臺(tái)JavaScript函數(shù)庫(kù),擁有MIT軟件許可協(xié)議。目前主流瀏覽器基本上都支持jQuery。jQuery秉承“writeless,domore(寫的更少,做的更多)”的核心理念,其語法能用讓用戶更方便地選取和操作HTML元素、處理各類事件、實(shí)現(xiàn)JavaScript特效與動(dòng)畫,并且能為不同類型的瀏覽器提供更便捷的API用于AJAX交互。jQuery也能讓開發(fā)者基于JavaScript函數(shù)庫(kù)開發(fā)新的插件。jQuery通用性和可擴(kuò)展性相結(jié)合,它的出現(xiàn)將改變?nèi)藗儗?duì)JavaScript的使用方式。jQuery發(fā)展史jQuery最早是在2006年1月由一位美國(guó)的軟件工程師JohnResing在紐約BarCamp(注:一種國(guó)際研討會(huì)網(wǎng)絡(luò),由參與者互相分享Web技術(shù))上發(fā)布的,JohnResing既是jQuery的創(chuàng)造者,也是jQueryJavaScript函數(shù)庫(kù)的核心開發(fā)者。最初的jQuery1.0版正式發(fā)布于2006年4月26日,經(jīng)歷多次升級(jí),直至2022年12月發(fā)布的jQuery3.6.3版為本書修訂時(shí)的最新版本。目前jQuery是由TimmyWillison所領(lǐng)導(dǎo)的開發(fā)團(tuán)隊(duì)負(fù)責(zé)進(jìn)行維護(hù)。目前jQuery仍然是網(wǎng)絡(luò)上使用范圍最廣泛的JavaScript函數(shù)庫(kù)。根據(jù)Builtwith(注:一款用于統(tǒng)計(jì)流行網(wǎng)站使用的構(gòu)建技術(shù)和編程語言的工具)的最新統(tǒng)計(jì)數(shù)據(jù)得出結(jié)論,目前流量排名最高的百萬個(gè)網(wǎng)頁中超過70%都在使用jQuery,其中國(guó)內(nèi)比較著名的網(wǎng)站有:CCTV、新浪、搜狗、愛奇藝、豆瓣、CSDN、bilibili、支付寶等。jQuery的特點(diǎn)1. 輕量級(jí)封裝網(wǎng)頁使用jQuery所需要引用的JS文件只有32kb左右,幾乎不會(huì)影響頁面的加載速度。2. 化簡(jiǎn)JavaScriptjQuery的選擇器化簡(jiǎn)了JavaScript查找DOM對(duì)象的代碼復(fù)雜度,基本只需要一行代碼就可以查找各種HTML元素或更改指定元素CSS樣式。3. 兼容CSS3兼容CSS3的選擇器語法規(guī)則,可以根據(jù)元素的樣式來快速查找HTML元素。4. 跨瀏覽器支持jQuery支持目前所有主瀏覽器,例如IE、Firefox、Safari、Opera、Chrome等。因此開發(fā)者不用擔(dān)心瀏覽器的兼容性問題。jQuery的版本比較目前jQuery共有三種版本,解釋如下:jQuery1.x版本:該版本是使用最為廣泛的jQuery版本,適用于絕大多數(shù)Web前端項(xiàng)目開發(fā),兼容性較高。該版本未來不會(huì)再增加新的功能,官網(wǎng)只做BUG維護(hù)。其最終版為2016年5月發(fā)布的jQuery1.12.4版。jQuery2.x版本:jQuery2.x版本相對(duì)1.x而言實(shí)際上沒有新增功能,僅僅是在1.x的基礎(chǔ)上去除了對(duì)IE6-8的支持,降低了文件大小且提升了性能,因此使用人數(shù)相對(duì)較少。該版本未來同樣不會(huì)再增加新的功能,官網(wǎng)只做BUG維護(hù)。其最終版為2016年5月發(fā)布的jQuery2.2.4版。jQuery3.x版本:該版本是目前最新的jQuery版本,最近一次是2022年12月發(fā)布的jQuery3.6.3版。該版本支持IE9+、Opera最新版、以及其他主流瀏覽器的最新版及前一版。需要注意的是,如果需要兼容IE6-8、Opera12.1x或者Safari5.1等舊版本的瀏覽器,官方建議使用jQuery1.12.x。Web開發(fā)工具JavaScript和jQuery源代碼文件均為純文本內(nèi)容,電腦操作系統(tǒng)中自帶的寫字板或記事本工具就可以打開和編輯源代碼內(nèi)容。因此本書不對(duì)開發(fā)工具作特定要求,使用任意一款純文本編輯器均可以進(jìn)行網(wǎng)頁內(nèi)容的編寫。這里介紹幾款常用的網(wǎng)頁開發(fā)工具軟件:AdobeDreamweaver、SublimeText、NodePad++、EditPlus、VSCode以及WebStorm。AdobeDreamweaverAdobeDreamweaver是一款所見即所得的網(wǎng)頁編輯器,中文名稱為“夢(mèng)想編織者”或“織夢(mèng)”。該軟件最初的1.0版是1997年由美國(guó)Macromedia公司發(fā)布的,后來該公司于2005年被Adobe公司收購(gòu)。Dreamweaver也是當(dāng)時(shí)第一套針對(duì)專業(yè)Web前端工程師所設(shè)計(jì)的可視化網(wǎng)頁開發(fā)工具,整合了網(wǎng)頁開發(fā)與網(wǎng)站管理的功能。Dreamweaver支持HTML5/CSS3源代碼的編輯和預(yù)覽功能,最大的優(yōu)點(diǎn)是可視化性能帶來的直觀效果,開發(fā)界面可以分屏為代碼部分與預(yù)覽視圖,開發(fā)者修改代碼部分時(shí)預(yù)覽視圖會(huì)隨著修改內(nèi)容實(shí)時(shí)變化。Dreamweaver也有它的弱點(diǎn),由于不同瀏覽器存在兼容性問題,Dreamweaver的預(yù)覽視圖難以達(dá)到與所有瀏覽器完全一致的效果。如需考慮跨瀏覽器兼容問題,預(yù)覽畫面僅能作為輔助參考。SublimeTextSublimeText的界面布局非常有特色,它支持文件夾導(dǎo)航圖和代碼縮略圖效果。該軟件支持多種編程語言的語法高亮,也具有代碼自動(dòng)完成提示功能。該軟件還具有自動(dòng)恢復(fù)功能,如果在編程過程中意外退出,在下次啟動(dòng)該軟件時(shí)文件會(huì)自動(dòng)恢復(fù)關(guān)閉之前的編輯狀態(tài)。NodePad++NodePad++的名稱來源于Windows系列操作系統(tǒng)自帶的記事本NotePad,在此基礎(chǔ)上多了兩個(gè)加號(hào),立刻帶了質(zhì)的飛越。這是一款免費(fèi)開源的純文本編輯器,具有完整中文化接口并支持UTF-8技術(shù)。由于它具有語法高亮顯示、代碼折疊等功能,因此也非常適合作為計(jì)算機(jī)程序的編輯器。EditPlusEditPlus是由韓國(guó)SangilKim(ES-Computing)公司發(fā)布的一款文字編輯器,支持HTML、CSS、JavaScript、PHP、Java等多種計(jì)算機(jī)程序的語法高亮顯示與代碼折疊功能。其中最具特色的是EditPlus具有自動(dòng)完成功能,例如在CSS源文件中輸入字母b加上空格,就會(huì)自動(dòng)生成border:1pxsolidred語句。開發(fā)者可以自行編輯快捷鍵所代表的代碼塊,然后在開發(fā)過程中使用快捷方式讓EditPlus自動(dòng)完成指定代碼內(nèi)容。VisualStudioCodeVisualStudioCode常被簡(jiǎn)稱為VSCode,是微軟公司出品的一款免費(fèi)開源的開發(fā)工具,支持Windows、MacOS以及Linux操作系統(tǒng)。該軟件具有語法高亮、代碼自動(dòng)補(bǔ)全、查看定義等功能,也內(nèi)置了Git版本控制系統(tǒng)和命令行工具。該軟件安裝后可以在其內(nèi)置的擴(kuò)展程序商店安裝擴(kuò)展包來拓展軟件功能,例如Chinese漢化包插件、Beautify代碼格式化插件、AutoRenameTag自動(dòng)補(bǔ)全HTML/XML頭尾標(biāo)簽插件等,適合喜歡自己DIY配置工具的開發(fā)者。該軟件支持多種編程語言,例如JavaScript、TypeScript、HTML、CSS,也可以通過下載擴(kuò)展包來支持Java、Python、Go等其他編程語言。WebStormWebStorm是JetBrains公司旗下的一款JavaScript開發(fā)工具,適合進(jìn)行Web前端開發(fā)以及與JavaScript相關(guān)的程序編寫。該軟件直接支持代碼高亮、代碼折疊、代碼補(bǔ)全以及格式化等功能,無需安裝額外的插件。正常版本是付費(fèi)軟件,但是該軟件對(duì)于教育教學(xué)行業(yè)非常友好,學(xué)生和教師均可使用學(xué)校郵箱去申請(qǐng)免費(fèi)教育版許可證,該許可證有效期為每次1年,到期時(shí)如果用戶還在學(xué)校仍可免費(fèi)續(xù)約。本章小結(jié)本章首先介紹了JavaScript基礎(chǔ)知識(shí),包括JavaScript簡(jiǎn)介、起源、JavaScript與Java的不同之處以及JavaScript的特點(diǎn)。其次,詳細(xì)介紹了jQuery背景知識(shí),包括jQuery簡(jiǎn)介、發(fā)展史和特點(diǎn)。最后,介紹了6款Web開發(fā)工具,分別是AdobeDreamwaver、SublimeText、NodePad++、EditPlus、VisualStudioCode以及WebStorm。六、課后習(xí)題1.什么是JavaScript?它有哪些特點(diǎn)?答:JavaScript是一種輕量級(jí)的直譯式編程語言,基于ECMAScript標(biāo)準(zhǔn)(注:一種由ECMA國(guó)際組織通過ECMA-262標(biāo)準(zhǔn)化的腳本程序語言)。通常在HTML網(wǎng)頁中使用JavaScript為頁面增加動(dòng)態(tài)效果和功能。其特點(diǎn)是腳本語言、簡(jiǎn)單性、弱類型、跨平臺(tái)性、大小寫敏感。2.JavaScript與另外哪兩個(gè)技術(shù)并稱為Web前端的三大核心技術(shù)?答:HTML和CSS。3.什么是jQuery?它有哪些特點(diǎn)?答:jQuery這個(gè)名稱來源于JavaScript和Query(查詢)的組合,是一個(gè)輕量級(jí)的跨平臺(tái)JavaScript函數(shù)庫(kù),擁有MIT軟件許可協(xié)議。jQuery的語法能用讓用戶更方便地選取和操作HTML元素、處理各類事件、實(shí)現(xiàn)JavaScript特效與動(dòng)畫,并且能為不同類型的瀏覽器提供更便捷的API用于AJAX交互。jQuery也能讓開發(fā)者基于JavaScript函數(shù)庫(kù)開發(fā)新的插件。其特點(diǎn)是輕量級(jí)封裝、化簡(jiǎn)JavaScript、兼容CSS3、跨瀏覽器支持。4.jQuery有哪幾類版本?如果需要兼容舊版本瀏覽器(例如IE6-8)選擇哪個(gè)版本更好?答:分別是jQuery1.x、2.x和3.x版本。如果需要兼容舊版瀏覽器,官方建議選擇jQuery1.12.x版本?!禞avaScript與jQuery網(wǎng)頁前端開發(fā)與設(shè)計(jì)-第2版》教案第2章JavaScript入門一、教學(xué)目標(biāo):了解JavaScript的使用方式;了解JavaScript的基本語法規(guī)則;熟悉JavaScript的變量聲明與命名規(guī)范。二、教學(xué)重點(diǎn)和難點(diǎn):重點(diǎn):了解JavaScript的基本語法規(guī)則;難點(diǎn):JavaScript的使用方式(內(nèi)部和外部的用法)。三、教學(xué)方法與手段:采取互動(dòng)式教學(xué)方法,理論教學(xué)使用多媒體投影教室。四、課程簡(jiǎn)介:本章主要內(nèi)容是JavaScript基礎(chǔ)知識(shí),包括JavaScript的使用方式、語法規(guī)則、變量聲明與明明規(guī)范等內(nèi)容。五、教學(xué)基本內(nèi)容:2.1JavaScript的實(shí)現(xiàn)完整JavaScript的實(shí)現(xiàn)是由以下三個(gè)部分組成:ECMAScript:核心標(biāo)準(zhǔn)。DOM:文檔對(duì)象模型。BOM:瀏覽器對(duì)象模型。2.1.1ECMAScriptECMAScript是JavaScript的核心標(biāo)準(zhǔn),它描述了該語言的語法和基本對(duì)象。2.1.2DOMDOM指的是DocumentObjectModel(文檔對(duì)象模型),它是HTML的應(yīng)用程序接口。DOM將整個(gè)HTML頁面看作是由各種節(jié)點(diǎn)層級(jí)構(gòu)成的結(jié)構(gòu)文檔。2.1.3BOMBOM指的是BrowserObjectModel(瀏覽器對(duì)象模型),可以對(duì)瀏覽器窗口進(jìn)行訪問和操作處理。該模型最早是由IE3.0與NetscapeNavigator3.0提供的,目前所有的主流瀏覽器都支持BOM,但是會(huì)有各自獨(dú)立的實(shí)現(xiàn)內(nèi)容。2.2JavaScript的使用JavaScript有兩種使用方式:一是在HTML文檔中直接添加代碼;二是將JavaScript腳本代碼寫到外部的JavaScript文件中,再在HTML文檔中引用該文件的路徑地址。這兩種使用方式的效果完全相同,可以根據(jù)使用率和代碼量選擇相應(yīng)的開發(fā)方式。例如有多個(gè)網(wǎng)頁文件需要引用同一段JavaScript代碼時(shí),則可以寫在外部文件中進(jìn)行引用,以減少代碼冗余。2.2.1內(nèi)部JavaScriptJavaScript代碼可以直接寫在HTML頁面中,只需使用<script>首尾標(biāo)簽嵌套即可。相關(guān)HTML代碼語法格式如下:<script>//JavaScript代碼...</script>使用JavaScript代碼中的alert()方法制作一段簡(jiǎn)單的示例:<script>alert("HelloJavaScript!");</script>該語句表示打開網(wǎng)頁后彈出警告對(duì)話框,顯示的文字內(nèi)容為"HelloJavaScript!"?!纠?-1】?jī)?nèi)部JavaScript的簡(jiǎn)單應(yīng)用在HTML5頁面使用內(nèi)部JavaScript代碼彈出對(duì)話框。【代碼說明】本示例在<body>首尾標(biāo)簽之間使用<script>標(biāo)簽插入了一行簡(jiǎn)單的JavaScript代碼,用于彈出對(duì)話框并顯示提示語句。當(dāng)前為Chrome瀏覽器的運(yùn)行效果,不同瀏覽器的對(duì)話框樣式稍有不同。內(nèi)部JavaScript代碼可位于HTML網(wǎng)頁的任何位置,例如放入<head>或者<body>首尾標(biāo)簽中均可。同一個(gè)HTML網(wǎng)頁也允許在不同位置放入多段JavaScript代碼。為了頁面代碼的可讀性,通常把JavaScript代碼統(tǒng)一放在同一個(gè)位置,例如頁面的底部或者<head>首尾標(biāo)簽中。2.2.2外部JavaScript如果選擇將JavaScript代碼保存到外部文件中,則只需要在HTML頁面的<script>標(biāo)簽中聲明src屬性即可。此時(shí)外部文件的類型必須是JavaScript類型文件(簡(jiǎn)稱為JS文件),即文件后綴名為.js。相關(guān)HTML代碼語法格式如下:<scriptsrc="JavaScript文件URL"></script>以在本地js文件夾中的myFirstScript.js文件為例,在HTML頁面中的引用方法如下:<scriptsrc="js/myFirstScript.js"></script>引用語句放在<head>或<body>首尾標(biāo)簽中均可,與在<script>標(biāo)簽中直接寫腳本代碼的運(yùn)行效果完全一樣?!纠?-2】外部JavaScript的簡(jiǎn)單應(yīng)用在HTML5頁面引用外部JS文件彈出對(duì)話框?!敬a說明】本示例在<head>首尾標(biāo)簽之間對(duì)外部JS文件myFirstScript.js進(jìn)行了引用,該方法的運(yùn)行效果與內(nèi)部JS代碼完全一樣。不同之處在于,外部JS文件中直接寫JavaScript相關(guān)代碼即可,無需使用<script>首尾標(biāo)簽。2.3JavaScript語法2.3.1JavaScript大小寫在JavaScript中大小寫是嚴(yán)格區(qū)分的,無論是變量、函數(shù)名稱、運(yùn)算符和其他語法都必須嚴(yán)格按照要求的大小寫進(jìn)行聲明和使用。例如變量hello與變量HELLO會(huì)被認(rèn)為是完全不同的內(nèi)容。2.3.2JavaScript分號(hào)很多編程語言(例如C、Java和Perl等)都要求每句代碼結(jié)尾要使用分號(hào)(;)表示結(jié)束。而JavaScript的語法規(guī)則對(duì)此比較寬松,如果一行代碼結(jié)尾沒有分號(hào)也是可以被正確執(zhí)行的。例如:varx=99;或varx=99以上均為正確的語法格式,在沒有分號(hào)結(jié)束的時(shí)候JavaScript會(huì)把該行代碼的折行看作結(jié)束標(biāo)志。但是為考慮到瀏覽器的兼容性,建議不要省略代碼結(jié)尾的分號(hào),以免部分瀏覽器不能正常顯示。2.3.3JavaScript注釋為了提高程序代碼的可讀性,JavaScript允許在代碼中添加注釋。注釋僅用于對(duì)代碼進(jìn)行輔助提示,不會(huì)被瀏覽器執(zhí)行。JavaScript有兩種注釋方式:?jiǎn)涡凶⑨尯投嘈凶⑨?。單行注釋用雙斜杠(//)開頭,可以自成一行也可以寫在JavaScript代碼的后面。例如://該提示語句自成一行alert("HelloJavaScript!");或alert("HelloJavaScript!");//該提示語句寫在JavaScript代碼后面多行注釋使用/*開頭,以*/結(jié)尾,在這兩個(gè)符號(hào)之間的所有內(nèi)容都會(huì)被認(rèn)為是注釋內(nèi)容,均不會(huì)被瀏覽器所執(zhí)行。例如:/*這是一個(gè)多行注釋在首尾符號(hào)之間的所有內(nèi)容都被認(rèn)為是注釋均不會(huì)被瀏覽器執(zhí)行*/alert("HelloJavaScript!");注:這兩種注釋符號(hào)僅可在JavaScript代碼中使用,其使用范圍是所有外部的JS文件以及<script>和</script>標(biāo)簽之間。利用注釋內(nèi)容不會(huì)被執(zhí)行的特點(diǎn),在調(diào)試JavaScript代碼時(shí)如果希望暫停某一句或幾句代碼的執(zhí)行,可使用單行或多行注釋符號(hào)將需要禁用的代碼做成注釋。例如://alert("HelloJavaScript1");//alert("HelloJavaScript2");alert("HelloJavaScript3");此時(shí)第一、二行的JavaScript代碼由于最前面添加了單行注釋符號(hào),因此不會(huì)被執(zhí)行。當(dāng)調(diào)試完成后去掉注釋符號(hào),代碼即可恢復(fù)運(yùn)行。2.3.4JavaScript代碼塊和Java語言類似,JavaScript語言也使用一對(duì)大括號(hào)標(biāo)識(shí)需要被執(zhí)行的多行代碼。例如:varx=9;if(x<10){x=10;alert(x);}上述代碼在if條件成立時(shí),會(huì)執(zhí)行大括號(hào)里面的所有代碼。2.4JavaScript變量2.4.1變量的聲明JavaScript是一種弱類型的腳本語言,無論是數(shù)字、文本還是其他內(nèi)容,統(tǒng)一使用關(guān)鍵詞var加上變量名稱進(jìn)行聲明,其中關(guān)鍵詞var來源于英文單詞variable(變量)的前三個(gè)字母??梢栽诼暶髯兞康耐瑫r(shí)對(duì)其指定初始值;也可以先聲明變量,再另行賦值。例如:varx=2;varmsg="HelloJavaScript!";varname;常見變量的賦值為數(shù)字或文本形式。當(dāng)變量的賦值內(nèi)容為文本時(shí),需要使用引號(hào)(單引號(hào)、雙引號(hào)均可)括住內(nèi)容;當(dāng)為變量賦值為數(shù)字的時(shí)候,內(nèi)容不要加引號(hào),否則會(huì)被當(dāng)作字符串處理。JavaScript也允許使用一個(gè)關(guān)鍵詞var同時(shí)定義多個(gè)變量。例如:varx1,x2,x3;//一次定義了三個(gè)變量名稱同時(shí)定義的變量類型可以不一樣,并且可為其中部分或全部變量進(jìn)行初始化。例如:varx1=2,x2="Hello",x3;由于JavaScript變量是弱類型的,因此同一個(gè)變量可以用于存放不同類型的值。例如可以聲明一個(gè)變量初始化時(shí)用于存放數(shù)值,然后將其更改為存放字符串。代碼如下:varx=99;//初始化時(shí)變量x存放的是數(shù)值99x="Hello";//將變量x更改為存放字符串"Hello"這段代碼從語法上來說沒有任何問題,但是為了良好的編程習(xí)慣不建議此種做法。應(yīng)該將變量用于保存相同類型的值。變量的聲明不是必須的,可以不使用關(guān)鍵詞var聲明直接使用。例如:msg1="Hello"msg2="JavaScript";msg=msg1+""+msg2;alert(msg);//運(yùn)行結(jié)果為顯示HelloJavaScript上述代碼中的msg1、msg2和msg均沒有使用關(guān)鍵詞var事先聲明就直接使用了,這種寫法也是有效的。當(dāng)程序遇到未聲明過的名稱時(shí),會(huì)自動(dòng)使用該名稱創(chuàng)建一個(gè)變量并繼續(xù)使用。【例2-3】JavaScript變量的簡(jiǎn)單應(yīng)用在JavaScript中使用關(guān)鍵詞聲明變量并使用?!敬a說明】本示例在JavaScript代碼部分使用關(guān)鍵詞var聲明了變量msg,并將其應(yīng)用于alert()方法中。瀏覽器會(huì)根據(jù)變量名稱找到其所對(duì)應(yīng)的值并顯示出來。需要注意的是,如果聲明的變量沒有賦值,則本示例中alert(msg)的顯示內(nèi)容會(huì)變成undefined(未定義)。2.4.2變量的命名規(guī)范一個(gè)有效的變量命名需要遵守以下兩條規(guī)則:首位字符必須是字母(A-Za-z)、下劃線(_)或者美元符號(hào)($);其他位置上的字符可以是下劃線(_)、美元符號(hào)($)、數(shù)字(0-9)或字母(A-Za-z)。例如:varhello;//正確var_hello;//正確var$hello;//正確var$x_$y;//正確var123;//不正確,首位字符必須是字母、下劃線或者美元符號(hào)var%x;//不正確,首位字符必須是字母、下劃線或者美元符號(hào)varx%x;//不正確,中間的字符不能使用下劃線、美元符號(hào)、數(shù)字或字母以外的內(nèi)容常用的變量命名方式有Camel標(biāo)記法、Pascal標(biāo)記法和匈牙利類型標(biāo)記法等。Camel標(biāo)記法:又稱為駝峰標(biāo)記法,該規(guī)則聲明的變量首字母為小寫,其他單詞以大寫字母開頭。例如:varmyFirstScript、varmyTest等。Pascal標(biāo)記法:該規(guī)則聲明的變量所有單詞首字母均大寫。例如:varMyFirstScript、varMyTest等。匈牙利類型標(biāo)記法:該規(guī)則是在Pascal標(biāo)記法的基礎(chǔ)上為變量加一個(gè)小寫字母的前綴,用于提示該變量的類型,如i表示整數(shù)、s表示字符串等。例如:varsMyFirstScript、variMyTest等。事實(shí)上只要符合變量命名規(guī)范的寫法均可以被正確執(zhí)行,以上標(biāo)記法僅為開發(fā)者提供參考從而形成良好的編程風(fēng)格。2.4.3JavaScript關(guān)鍵字和保留字JavaScript遵循ECMA-262標(biāo)準(zhǔn)中規(guī)定的一系列關(guān)鍵字規(guī)則,這些關(guān)鍵字不能作為變量或者函數(shù)名稱。全部關(guān)鍵字共計(jì)25個(gè)。表2-1JavaScript關(guān)鍵字一覽表break case catch continue defaultdelete do else finally forfunction if in instanceof newreturn switch this throw trytypeof var void while with如果使用了上述關(guān)鍵詞作為變量或者函數(shù)名稱會(huì)引起報(bào)錯(cuò)。在ECMA-262中還規(guī)定了一系列保留字,這些字是為將來的關(guān)鍵字而保留的單詞,同樣也不可以作為變量或者函數(shù)的名稱。全部保留字共計(jì)31個(gè)。表2-2JavaScript保留字一覽表abstract boolean byte char classconst debugger double enum exportextends final float goto implementsimport int interface long nativepackage private protected public shortstatic super synchronized throws transientvolatile如果使用了上述保留字作為變量或者函數(shù)名稱會(huì)被認(rèn)為是使用了關(guān)鍵字,從而一樣引起報(bào)錯(cuò)。2.5JavaScript彈窗JavaScript可以為網(wǎng)頁創(chuàng)建彈窗式的消息對(duì)話框,例如之前例2-1中使用的alert()就是彈出一個(gè)帶有確認(rèn)按鈕的警告對(duì)話框。當(dāng)彈窗對(duì)話框出現(xiàn)后,用戶必須關(guān)閉后才可以繼續(xù)瀏覽或操作網(wǎng)頁上的其他內(nèi)容。JavaScript彈窗共有三種形式:警告對(duì)話框、提示對(duì)話框、確認(rèn)對(duì)話框。2.5.1警告對(duì)話框alert警告對(duì)話框是最常用的對(duì)話框,可以用來顯示一段文本給用戶查看,只包含一個(gè)“確定”按鈕,用戶必須點(diǎn)擊按鈕后對(duì)話框方可消失。其語法結(jié)構(gòu)如下:window.alert("文本內(nèi)容");或alert("文本內(nèi)容");//window前綴可以省略不寫,簡(jiǎn)寫為alert()即可例如:alert("你好!");上述代碼表示打開網(wǎng)頁后彈出警告對(duì)話框,顯示的文字內(nèi)容為"你好!"。2.5.2提示對(duì)話框prompt提示對(duì)話框自帶一個(gè)文本輸入?yún)^(qū)域,可以用于收集用戶輸入的內(nèi)容。當(dāng)用戶輸入某個(gè)值并點(diǎn)擊“確定”按鈕后就可以獲取到該值。需要注意的是,如果用戶點(diǎn)擊了“取消”按鈕,即使輸入了值也不會(huì)獲取,返回值為null空值。其語法結(jié)構(gòu)如下:mpt("提示內(nèi)容","默認(rèn)值");或prompt("提示內(nèi)容","默認(rèn)值");//window前綴可以省略不寫,簡(jiǎn)寫為prompt()即可其中默認(rèn)值為選填內(nèi)容,如果未填寫具體的值只留下一對(duì)引號(hào)則用戶會(huì)看到一個(gè)空白輸入框,否則會(huì)先顯示默認(rèn)值,再由用戶刪除自己重新填寫。例如:varx=mpt("請(qǐng)輸入一個(gè)數(shù)字","");//這里默認(rèn)值未填寫內(nèi)容//用戶點(diǎn)了取消按鈕if(x==null){alert("您點(diǎn)了取消按鈕,因此未能獲取到填寫內(nèi)容");}//用戶點(diǎn)了確定按鈕else{alert("您填寫的數(shù)字是"+x);}上述代碼表示打開網(wǎng)頁后彈出提示對(duì)話框,嘗試獲取用戶填寫的值并賦值給x。2.5.3確認(rèn)對(duì)話框confirm確認(rèn)對(duì)話框有“確定”和“取消”2個(gè)按鈕,用于確認(rèn)用戶的行為,例如用戶點(diǎn)擊按鈕希望刪除某些數(shù)據(jù)時(shí),可以使用確認(rèn)對(duì)話框進(jìn)行二次確認(rèn)以免操作。其語法結(jié)構(gòu)如下:window.confirm("提示內(nèi)容");或confirm("提示內(nèi)容");//window前綴可以省略不寫,簡(jiǎn)寫為confirm()即可當(dāng)用戶點(diǎn)擊“確認(rèn)”按鈕后會(huì)返回布爾值true,當(dāng)點(diǎn)擊“取消”按鈕時(shí)會(huì)返回布爾值false,可以以此判斷用戶的意愿進(jìn)行下一步操作。例如:varresult=window.confirm("您確認(rèn)刪除數(shù)據(jù)嗎?");//用戶點(diǎn)了確認(rèn)按鈕if(result==true){alert("數(shù)據(jù)已刪除");}//用戶點(diǎn)了取消按鈕else{alert("您點(diǎn)了取消按鈕,數(shù)據(jù)未刪除");}上述代碼表示打開網(wǎng)頁后彈出確認(rèn)對(duì)話框,當(dāng)用戶點(diǎn)擊了“確認(rèn)”按鈕后才進(jìn)一步操作。注:以上三種彈窗均可以使用反斜杠+n(\n)的模式表示文本換行,例如:alert("第一行\(zhòng)n第二行");【例2-4】JavaScript彈窗的簡(jiǎn)單應(yīng)用在HTML5頁面依次試用三種彈窗對(duì)話框。【代碼說明】本示例使用內(nèi)部JavaScript來依次演繹三種不同的彈窗。圖2-4a)是警告對(duì)話框alert的彈窗效果,用于顯示一段文字,用戶點(diǎn)擊“確定”按鈕即可關(guān)閉。圖2-4b)是提示對(duì)話框prompt的彈窗效果,用于顯示一個(gè)問題并等待用戶輸入,用戶輸入后點(diǎn)擊“確定”按鈕就可以被瀏覽器獲得輸入值。圖2-4c)是確認(rèn)對(duì)話框confirm的彈窗效果,用于顯示一段提醒文字,用戶點(diǎn)擊“確定”按鈕后執(zhí)行window.close()方法可以關(guān)閉當(dāng)前頁面。為了方便在同一個(gè)例題依次查看三種彈窗效果,本例題把三段彈窗代碼按順序?qū)懙搅艘黄?,需要用戶點(diǎn)擊了按鈕才會(huì)顯示下一個(gè)彈窗。如果希望單獨(dú)看其中一個(gè)對(duì)話框,可以使用雙斜杠臨時(shí)注釋掉其他對(duì)話框代碼,只保留需要展示的內(nèi)容。2.6本章小結(jié)本章為JavaScript的基礎(chǔ)知識(shí)入門,首先介紹了JavaScript的實(shí)現(xiàn)原理,包括ECMAScript、DOM和BOM的概念;其次介紹了JavaScript的使用方法,分為內(nèi)部和外部?jī)煞N模式;然后介紹了JavaScript的語法規(guī)則,包括大小寫、分號(hào)、注釋和代碼塊;接著介紹了JavaScript變量的概念,包括變量的聲明、命名規(guī)范以及關(guān)鍵字和保留字;最后介紹了JavaScript的三種彈窗,分別是警告對(duì)話框alert、提示對(duì)話框prompt以及確認(rèn)對(duì)話框confirm。六、課后習(xí)題1.在HTML頁面中直接插入JavaScript代碼的正確做法是使用何種標(biāo)簽?答:<script></script>標(biāo)簽。2.引用JavaScript外部腳本的正確寫法是?答:<scriptsrc="JavaScript文件URL"></script>3.以下哪個(gè)屬于JavaScript注釋的正確寫法?(1)<!--被注釋掉的內(nèi)容-->(2)//被注釋掉的內(nèi)容(3)“被注釋掉的內(nèi)容”答:是(2)正確。4.以下哪些變量的聲明是不正確的?(1)vartest;(2)var123test;(3)var$test;(4)var_test;(5)vardouble;答:(2)不正確,不可以用數(shù)字開頭;(5)不正確,不可以使用關(guān)鍵字double作為變量名。5. 如何使用提示對(duì)話框獲取用戶輸入的數(shù)字?答:varx=prompt("請(qǐng)輸入一個(gè)數(shù)字","");if(num!=null)alert("您輸入的數(shù)字是"+x);《JavaScript與jQuery網(wǎng)頁前端開發(fā)與設(shè)計(jì)-第2版》教案第3章JavaScript數(shù)據(jù)類型與運(yùn)算符一、教學(xué)目標(biāo):掌握J(rèn)avaScript的基本數(shù)據(jù)類型與對(duì)象類型;掌握J(rèn)avaScript類型轉(zhuǎn)換方法;掌握J(rèn)avaScript運(yùn)算符的使用。二、教學(xué)重點(diǎn)和難點(diǎn):重點(diǎn):JavaScript的基本數(shù)據(jù)類型與對(duì)象類型;難點(diǎn):JavaScript類型轉(zhuǎn)換方法。三、教學(xué)方法與手段:采取互動(dòng)式教學(xué)方法,理論教學(xué)使用多媒體投影教室。四、課程簡(jiǎn)介:本章主要內(nèi)容是JavaScript基礎(chǔ)知識(shí),包括JavaScript的使用、語法、變量等內(nèi)容。基本數(shù)據(jù)類型、對(duì)象、類型轉(zhuǎn)換、運(yùn)算符、條件和循環(huán)語句、函數(shù)、DOM與BOM的用法。五、教學(xué)基本內(nèi)容:3.1JavaScript基本數(shù)據(jù)類型JavaScript有五種原始類型分別是:Number(數(shù)字)、Boolean(布爾值)、String(字符串)、Null(空值)和Undefined(未定義)。JavaScript提供了typeof方法用于檢測(cè)變量的數(shù)據(jù)類型,該方法會(huì)根據(jù)變量本身的數(shù)據(jù)類型給出對(duì)應(yīng)名稱的返回值。語法格式如下:typeof變量名稱對(duì)于指定的變量使用typeof方法,其返回值是提示數(shù)據(jù)類型的文本內(nèi)容。常見有5種情況如表3-1所示。表3-SEQ表4-\*ARABIC1typeof方法的常見返回值一覽表返回值示例解釋undefinedvarx;alert(x);該變量未賦值。booleanvarx=true;alert(x);該變量為布爾值。stringvarx="Hello";alert(x);該變量為字符串。numbervarx=3.14;alert(x);該變量為數(shù)值。objectvarx=null;alert(x);該變量為空值null或?qū)ο蟆?.1.1Undefined類型所有Undefined類型的輸出值都是undefined。當(dāng)需要輸出的變量從未聲明過,或者使用關(guān)鍵詞var聲明過但是從未進(jìn)行賦值時(shí)會(huì)顯示undefined字樣。例如:alert(y);//返回值為undefined,因?yàn)樽兞縴之前從未使用關(guān)鍵詞var進(jìn)行聲明或varx;alert(x);//返回值也是undefined,因?yàn)槲唇o變量x進(jìn)行賦值【例3-1】JavaScript基礎(chǔ)數(shù)據(jù)類型Undefined的簡(jiǎn)單應(yīng)用【代碼說明】本示例使用關(guān)鍵詞var聲明了變量msg,但未對(duì)其進(jìn)行初始賦值就直接使用alert(msg)方法要求在對(duì)話框中顯示該變量?jī)?nèi)容。由圖可見,此時(shí)顯示出來的結(jié)果為undefined。3.1.2Null類型null值表示變量的內(nèi)容為空,可用于初始化變量,或者清空已經(jīng)賦值的變量。例如:varx=99;x=null;alert(x);//此時(shí)返回值是null而不是99【例3-2】JavaScript基礎(chǔ)數(shù)據(jù)類型Null的簡(jiǎn)單應(yīng)用【代碼說明】本示例使用關(guān)鍵詞var聲明了變量msg并對(duì)其賦值為null,然后使用alert(msg)方法要求在對(duì)話框中顯示該變量?jī)?nèi)容。由圖可見,此時(shí)顯示出來的結(jié)果為null。3.1.3String類型在JavaScript中String類型用于存儲(chǔ)文本內(nèi)容,又稱為字符串類型。為變量進(jìn)行字符串賦值時(shí)需要使用引號(hào)(單引號(hào)或雙引號(hào)均可)括住文本內(nèi)容。例如:varcountry='China';或varcountry="China";與JavaScript不同的是,在Java中使用單引號(hào)聲明單個(gè)字符,使用雙引號(hào)聲明字符串。而在JavaScript中沒有區(qū)分單個(gè)字符和字符串,因此兩種聲明方式任選一種都是有效的。如果字符串內(nèi)容本身也需要帶上引號(hào),則用于包圍字符串的引號(hào)不可以和文本內(nèi)容中的引號(hào)相同。例如字符串本身如果帶有雙引號(hào),則使用單引號(hào)包圍字符串;反之亦然。例如:vardialog='Todayisagift,thatiswhyitiscalled"Present".';或vardialog="Todayisagift,thatiswhyitiscalled'Present'.";此時(shí)字符串內(nèi)部的引號(hào)會(huì)默認(rèn)保留字面的樣式。String對(duì)象中包含了一系列方法,常用方法如表3-2所示。表3-SEQ表4-\*ARABIC2JavaScriptString對(duì)象常見方法一覽方法名解釋charAt()返回指定位置上的字符。charCodeAt()返回指定位置上的字符Unicode編碼。concat()連接字符串。indexOf()正序檢索字符串中指定內(nèi)容的位置。lastIndexOf()倒序檢索字符串中指定內(nèi)容的位置。match()返回匹配正則表達(dá)式的所有字符串。replace()替換字符串中匹配正則表達(dá)式的指定內(nèi)容。search()返回匹配正則表達(dá)式的索引值。slice()根據(jù)指定位置節(jié)選字符串片段。split()把字符串分割成字符串?dāng)?shù)組。substring()根據(jù)指定位置節(jié)選字符串片段toLowerCase()將字符串中所有字母都轉(zhuǎn)換為小寫。toUpperCase()將字符串中所有字母都轉(zhuǎn)換為大寫。1. 字符串長(zhǎng)度在字符串中,每一個(gè)字符都有固定的位置,其位置從左往右進(jìn)行分配。以單詞hello為例,首字符H從位置0開始,第二個(gè)字符L是位置1,以此類推,直到最后一個(gè)字符O的位置是字符串的總長(zhǎng)度少1??梢允褂肧tring對(duì)象的屬性length獲取字符串的長(zhǎng)度。例如:vars="Hello";varslen=s.length;//返回值是變量s的字符串長(zhǎng)度,即5?!纠?-3】JavaScript獲取字符串長(zhǎng)度的簡(jiǎn)單應(yīng)用【代碼說明】本示例使用關(guān)鍵詞var聲明了變量msg并對(duì)其賦值為"HelloJavaScript!",然后使用字符串類型的length屬性獲取其字符長(zhǎng)度并使用alert()方法顯示出來。由圖可見,此時(shí)顯示出來的結(jié)果為17,因?yàn)榭崭窈透袊@號(hào)也各算1個(gè)字符位置,因此總長(zhǎng)度為5+1+10+1=17。2. 獲取字符串中的單個(gè)字符在JavaScript中可以使用charAt()方法獲取字符串指定位置上的單個(gè)字符。其語法結(jié)構(gòu)如下:charAt(index)其中index參數(shù)值填寫需要獲取的字符所在位置。例如:varmsg="HelloJavaScript";varx=msg.charAt(0);//表示獲取msg中的第一個(gè)字符,返回值為H如果需要獲取指定位置上單個(gè)字符的字符代碼,可以使用charCodeAt()方法。其語法結(jié)構(gòu)如下:charCodeAt(index)其中index參數(shù)值填寫需要獲取的字符所在位置。例如:varmsg="HelloJavaScript";varx=msg.charCodeAt(0);//表示獲取msg中的第一個(gè)字符的字符代碼,返回值為72【例3-4】JavaScript獲取字符串中單個(gè)字符的應(yīng)用【代碼說明】本示例使用關(guān)鍵詞var聲明了變量msg并對(duì)其賦值為"HelloJavaScript",然后使用字符串類型的charAt()方法獲取其中第10位上的字符,并且用charCodeAt()方法獲取該字符的代碼,最后用alert()方法將結(jié)果顯示出來。由圖可見,此時(shí)顯示出來的結(jié)果為S,其對(duì)應(yīng)的字符代碼為83。alert()方法中的\n為轉(zhuǎn)義字符,表示換行。3. 連接字符串在JavaScript中可以使用concat()方法將新的字符串內(nèi)容連接到原始字符串上。其語法結(jié)構(gòu)如下:concat(string1,string2...,stringN);該方法允許帶有一個(gè)或多個(gè)參數(shù),表示按照從左往右的依次連接這些字符串。例如:varmsg="Hello";varnewMsg=msg.concat("JavaScript");alert(newMsg);//返回值為"HelloJavaScript"也可以直接使用加號(hào)(+)進(jìn)行字符串的連接,其效果相同。因此上述示例代碼可改為:varmsg="Hello";varnewMsg=msg+"JavaScript";alert(newMsg);//返回值為"HelloJavaScript"【例3-5】JavaScript連接字符串的簡(jiǎn)單應(yīng)用【代碼說明】本示例在JavaScript中首先聲明了三個(gè)字符串變量s1、s2和s3,然后對(duì)s1使用contact()方法連接s2和s3形成新的變量msg,最后使用alert()語句測(cè)試輸出變量msg的效果。由圖可見,變量msg為變量s1、s2和s3連接的完整版。本示例也可以直接使用加號(hào)(+)連接這三個(gè)變量實(shí)現(xiàn)同樣的效果,寫成varmsg=s1+s2+s3。需要注意的是使用contact()方法只會(huì)連接形成新的返回值,不會(huì)影響變量s1的初始內(nèi)容。4. 查找字符串是否存在使用indexOf()和lastIndexOf()方法可以查找原始字符串中是否包含指定的字符串內(nèi)容。其語法格式如下:indexOf(searchString,startIndex)或lastIndexOf(searchString,startIndex)其中searchString參數(shù)位置填入需要用于對(duì)比查找的字符串片段,startIndex參數(shù)用于指定搜索的起始字符,該參數(shù)內(nèi)容如果省略則按照默認(rèn)順序搜索全文。indexOf()和lastIndexOf()方法都可以用于查找指定內(nèi)容是否存在,如果存在,其返回值為指定內(nèi)容在原始字符串中的位置序號(hào);如果不存在,則直接返回-1。區(qū)別在于,indexOf()是從序號(hào)0的位置開始正序檢索字符串內(nèi)容的,而lastIndexOf()是從序號(hào)最大值的位置開始倒序檢索字符串內(nèi)容。【例3-6】JavaScript檢查字符串是否存在的簡(jiǎn)單應(yīng)用分別使用indexOf()與lastIndexOf()方法查找字符串中是否包含指定的字母。【代碼說明】本示例在JavaScript中聲明了變量msg作為測(cè)試樣例,并檢測(cè)其中字母“y”存在的位置。分別使用indexOf()和lastIndexOf()方法進(jìn)行正序和倒序檢測(cè)并獲取返回值,最后使用alert()方法輸出返回結(jié)果。由圖可見,對(duì)于同一個(gè)字母“y”使用indexOf()和lastIndexOf()方法獲取位置的結(jié)果不相同,正序查找的結(jié)果為4,倒序查找的結(jié)果為13。原因是原字符串msg中包含了不止一個(gè)字母“y”,而這兩個(gè)方法會(huì)返回在字符串中查到到的第一個(gè)符合條件的字符位置,因此結(jié)果不相同。需要注意的是,JavaScript是大小寫敏感的腳本語言,因此如果本示例查找大寫字母“Y”會(huì)獲取返回值-1表示該字符不存在。5. 查找與替換字符串在JavaScript中使用match()或search()方法可以查找匹配正則表達(dá)式的字符串內(nèi)容。match()方法的語法格式如下:match(regExp)參數(shù)regExp的位置需要填入一個(gè)正則表達(dá)式,例如match(/a/g)表示全局查找字母a,后面的小寫字母g是英文單詞gobal的首字母簡(jiǎn)寫,表示全局查找。其返回值為符合條件的所有字符串片段。關(guān)于正則表達(dá)式的更多用法可查閱本章4.6.1JavaScript對(duì)象類型中的3.RegExp對(duì)象的相關(guān)內(nèi)容,這里僅作為簡(jiǎn)單使用。search()方法的語法格式如下:search(regExp)參數(shù)regExp的位置同樣需要填入一個(gè)正則表達(dá)式。不同之處在于,search()方法的返回值是符合匹配條件的字符串索引值。在JavaScript中使用replace()方法可以替換匹配正則表達(dá)式的字符串內(nèi)容。replace()方法的語法格式如下:replace(regExp,replaceText)參數(shù)regExp的位置需要填入一個(gè)正則表達(dá)式,參數(shù)replaceText的位置填入需要替換的新的文本內(nèi)容。例如replace(/a/g,"A")表示的是把所有的小寫字母a都替換為大寫形式。該方法的返回值是已經(jīng)替換完畢的新字符串內(nèi)容。【例3-7】JavaScript查找和替換字符串分別使用match()、search()與replace()方法查找和替換字符串?!敬a說明】本示例在JavaScript中聲明了變量msg作為測(cè)試樣例,分別使用match()、search()與replace()方法查找和替換字符串,最后使用alert()方法輸出全部的返回結(jié)果。由圖可見,search()方法可獲取指定內(nèi)容的所在索引位置,而match()方法是把符合條件的所有字符串以逗號(hào)隔開的形式全部展現(xiàn)出來。其中\(zhòng)d表示數(shù)字0-9之間任意一個(gè)字符,/g表示全局查找。replace()方法將原字符串中所有小寫字母a均替換成了大寫字母的形式。如果沒有加全局字符g,則只會(huì)替換其中第一個(gè)小寫字母a。6. 獲取字符串片段在JavaScript中可以對(duì)字符串類型的變量使用slice()和substrig()方法截取其中的字符串片段。其中slice()方法用于去掉指定片段,substring()方法用于節(jié)選指定片段。slice()方法語法格式如下:slice(start,end)其中start參數(shù)位置填寫需要?jiǎng)h除的字符串的第一個(gè)字符位置,end參數(shù)位置填寫需要?jiǎng)h除字符串的結(jié)束位置(不包括該位置上的字符),如果end參數(shù)省略則默認(rèn)填入字符串長(zhǎng)度。如果填入的屬性值為負(fù)數(shù),表示從字符串的最后一個(gè)位置開始計(jì)算,例如-1表示倒數(shù)第一個(gè)字符。substring()方法語法格式如下:substring(start,end)與slice()方法的語法結(jié)構(gòu)類似,其中start參數(shù)位置填寫需要節(jié)選的字符串的第一個(gè)字符位置,end參數(shù)位置填寫需要節(jié)選字符串的結(jié)束位置(不包括該位置上的字符),同樣如果end參數(shù)省略則默認(rèn)填入字符串長(zhǎng)度。。當(dāng)參數(shù)均為非負(fù)數(shù)時(shí),substring()與slice()方法獲取的結(jié)果完全一樣。只有參數(shù)值存在負(fù)數(shù)情況時(shí),這兩個(gè)方法才會(huì)有所不同:substring()方法會(huì)忽略負(fù)數(shù),直接將其當(dāng)作0來處理;而slice()方法會(huì)用字符串長(zhǎng)度加上該負(fù)數(shù)數(shù)值,計(jì)算出對(duì)應(yīng)的位置。例如:varmsg="happy";//該字符串長(zhǎng)度為5位varresult1=msg.substring(1,-1);//返回值為hvarresult2=slice(1,-1);//返回值為app其中substring(1,-1)會(huì)忽略負(fù)數(shù)當(dāng)作0對(duì)待,因此實(shí)際運(yùn)行的是substring(1,0)方法。由于此時(shí)結(jié)束位置比開始位置靠前,JavaScript會(huì)自動(dòng)對(duì)調(diào)位置轉(zhuǎn)換成substring(0,1)方法,最終獲得返回值h。而slice(1,-1)會(huì)將負(fù)數(shù)加上字符串長(zhǎng)度換算成slice(1,4)方法,因此最終獲得返回值app。【例3-8】JavaScript獲取字符串片段的簡(jiǎn)單應(yīng)用【代碼說明】本示例在JavaScript中聲明了變量msg作為字符串測(cè)試樣例,其中字符串內(nèi)容為"HappyBirthday"共計(jì)14個(gè)字符位置。分別使用substring(0,5)和slice(0,-9)方法進(jìn)行字符串節(jié)選,最后使用alert()方法輸出返回結(jié)果。由圖可見,substring(0,5)方法獲取了從第0位開始到第5位結(jié)束(不包括第5位本身)的所有字符。slice(0,-9)方法因?yàn)閹в胸?fù)數(shù)-9表示倒數(shù)第9位字符,將其加上字符串長(zhǎng)度換算后得到slice(0,5),在沒有負(fù)數(shù)的情況下與substring(0,5)效果完全相同,因此得到同樣的結(jié)果。7. 字符串大小寫轉(zhuǎn)換在JavaScript中可以對(duì)字符串類型的變量使用toLowerCase()和toUpperCase()方法轉(zhuǎn)換其中存在的大小寫字母。其中toLowerCase()表示將所有字母轉(zhuǎn)換為小寫,toUpperCase()表示將所有字母轉(zhuǎn)換位大寫?!纠?-9】JavaScript字符串大小寫轉(zhuǎn)換8. 轉(zhuǎn)義字符在前幾節(jié)的例題中都看到了alert()方法中帶有\(zhòng)n符號(hào)表示換行,這種符號(hào)稱為轉(zhuǎn)義字符。與C語言、Java語言相似,在JavaScript中String類型也包含了一系列轉(zhuǎn)義字符。\n 換行\(zhòng)t 空一個(gè)tab格,相當(dāng)于4個(gè)空格\b 空格符\r 回車符\f 換頁符\\ 反斜杠\' 單引號(hào)\" 雙引號(hào)\0nnn 八進(jìn)制代碼nnn表示的字符,n是0-7中的一個(gè)八進(jìn)制數(shù)字,范圍是000-377。\xnn 十進(jìn)制代碼nn表示的字符,n是0-F中的一個(gè)十六進(jìn)制數(shù)字,范圍是00-FF。\unnn 十六進(jìn)制代碼nnn表示的字符,n是0-F中的一個(gè)十六進(jìn)制數(shù)字【例3-10】JavaScript轉(zhuǎn)義字符的簡(jiǎn)單應(yīng)用3.1.4Number類型在JavaScript中使用Number類型表示數(shù)字,其數(shù)字可以是32位以內(nèi)的整數(shù)或64位以內(nèi)的浮點(diǎn)數(shù)。例如:varx=9;vary=3.14;Number類型還支持使用科學(xué)計(jì)數(shù)法、八進(jìn)制和十六進(jìn)制的表示方式。1. 科學(xué)計(jì)數(shù)法對(duì)于極大或極小的數(shù)字也可以使用科學(xué)記數(shù)法表示,寫法格式如下:數(shù)值e倍數(shù)上述格式表示數(shù)字后面跟指數(shù)e再緊跟乘以的倍數(shù),其中數(shù)值可以是整數(shù)或浮點(diǎn)數(shù),倍數(shù)可以允許為負(fù)數(shù)。例如:varx1=3.14e8;varx2=3.14e-8;變量x1表示的數(shù)是3.14乘以10的8次方,即314000000;變量x2表示的數(shù)是3.14乘以10的-8次方,即0.0000000314?!纠?-11】JavaScript科學(xué)計(jì)數(shù)法的簡(jiǎn)單應(yīng)用2. 八進(jìn)制與十六進(jìn)制數(shù)在JavaScript中,Number類型也可以用于表示八進(jìn)制或十六進(jìn)制的數(shù)。八進(jìn)制的數(shù)需要用數(shù)字0開頭,后面跟的數(shù)字只能是0-7(八進(jìn)制字符)之間的一個(gè)。例如:varx=010;//這里相當(dāng)于十進(jìn)制的8十六進(jìn)制的數(shù)需要用數(shù)字0和字母x開頭,后面跟字符只能是0-9或A-F(十六進(jìn)制字符)之間的一個(gè),大小寫不限。例如:varx=0xA;//這里相當(dāng)于十進(jìn)制的10或varx=0xa;//等同于0xA雖然Number類型可以使用八進(jìn)制或十六進(jìn)制的賦值方式,但是執(zhí)行代碼時(shí)仍然會(huì)將其轉(zhuǎn)換為十進(jìn)制結(jié)果?!纠?-12】八進(jìn)制與十六進(jìn)制的表達(dá)方式【代碼說明】本示例為變量x1賦值了0開頭的數(shù)字代表八進(jìn)制數(shù),為變量x2賦值了0x開頭的數(shù)字代表十六進(jìn)制數(shù),并使用alert()語句將其顯示在消息提示對(duì)話框中。由圖可見,最終顯示結(jié)果會(huì)自動(dòng)轉(zhuǎn)換為十進(jìn)制數(shù)。需要注意的是,如果需要正常表示十進(jìn)制整數(shù)則不要使用數(shù)字0開頭,以免被誤認(rèn)為是八進(jìn)制數(shù)。3. 浮點(diǎn)數(shù)要定義浮點(diǎn)數(shù),必須使用小數(shù)點(diǎn)以及小數(shù)點(diǎn)后面至少跟一位數(shù)字。例如:varx=3.14;vary=5.0;即使小數(shù)點(diǎn)后面的數(shù)字為0也被認(rèn)為是浮點(diǎn)數(shù)類型。如果浮點(diǎn)數(shù)類型的小數(shù)點(diǎn)前面整數(shù)位為0可以省略。例如:varx=.15;//等同于0.15浮點(diǎn)數(shù)可以使用toFixed()方法規(guī)定小數(shù)點(diǎn)后保留幾位數(shù)。其語法格式如下:toFixed(digital)其中參數(shù)digital換成小數(shù)點(diǎn)后需要保留的位數(shù)即可。例如:varx=3.1415926;varresult=x.toFixed(2);//返回值為3.14該方法遵照四舍五入的規(guī)律,即使進(jìn)位后小數(shù)點(diǎn)后面只有0也會(huì)保留指定的位數(shù)。例如:varx=0.9999;varresult=x.toFixed(2);//返回值為1.00需要注意的是,在JavaScript中使用浮點(diǎn)數(shù)進(jìn)行計(jì)算,有時(shí)會(huì)產(chǎn)生誤差。例如:varx=0.7+0.1;alert(x);//返回值會(huì)變成0.7999999999999999,而不是0.8這是由于表達(dá)式使用的是十進(jìn)制數(shù),但是實(shí)際的計(jì)算是轉(zhuǎn)換成二進(jìn)制數(shù)計(jì)算再轉(zhuǎn)回十進(jìn)制結(jié)果的,在此過程中有時(shí)會(huì)損失精度。此時(shí)使用自定義函數(shù)將兩個(gè)加數(shù)都乘以10進(jìn)行計(jì)算后再除以10還原?!纠?-13】JavaScript浮點(diǎn)數(shù)的簡(jiǎn)單應(yīng)用【代碼說明】本示例用于測(cè)試兩個(gè)浮點(diǎn)數(shù)在進(jìn)行算術(shù)運(yùn)行時(shí)導(dǎo)致的誤差,并給出了解決辦法。事實(shí)上,目前JavaScript尚不能解決該問題,必須手動(dòng)將浮點(diǎn)數(shù)放大10的倍數(shù)成為整數(shù)再進(jìn)行計(jì)算方能避免誤差。未來也可以使用自定義函數(shù)處理此類問題。4. 特殊Number值在JavaScript中,Number類型還有一些特殊值如下。Infinity:正無窮大,在JavaScript使用Numer.POSITIVE_INFINITY表示。-Infinity:負(fù)無窮大,在JavaScript使用Numer.NEGATIVE_INFINITY表示。NaN :非數(shù)字,在JavaScript使用Numer.NaN表示。Number.MAX_VALUE:數(shù)值范圍允許的最大值,大約等于1.8e308Number.MIN_VALUE:數(shù)值范圍允許的最小值,大約等于5e-324(1) InfinityInfinity表示無窮大的含義,有正負(fù)之分。當(dāng)數(shù)值超過了JavaScript允許的范圍就會(huì)顯示為Infinity(超過上限)或-Infinity(超過下限)。例如:varx=9e30000;alert(x);//因?yàn)樵摂?shù)字已經(jīng)超出上限,返回值為Infinity在數(shù)字比較大小時(shí),無論原數(shù)據(jù)值為多少,結(jié)果為Infinity的兩個(gè)數(shù)認(rèn)為相等,而同樣兩個(gè)-Infinity也是相等的。例如:varx1=3e9000;varx2=9e3000;alert(x1==x2);//判斷變量x1與x2是否相等,返回值為true上述代碼中變量x1與x2的實(shí)際數(shù)據(jù)值并不相等,但是由于它們均超出了JavaScript可以接受的數(shù)據(jù)范圍,因此返回值均為Infinity,從而判斷是否相等時(shí)會(huì)返回true(真)。在JavaScript中使用數(shù)字0作為除數(shù)不會(huì)報(bào)錯(cuò),如果正數(shù)除以0返回值就是Infinity,負(fù)數(shù)除以0返回值為-Infinity,特殊情況0除以0的返回值為NaN(非數(shù)字)。例如:varx1=5/0;//返回值是Infinityvarx2=-5/0;//返回值是-Infinityvarx3=0/0;//返回值是NaNInfinity不可以與其他正常顯示的數(shù)字進(jìn)行數(shù)學(xué)計(jì)算,返回結(jié)果均會(huì)是NaN。例如:varx=Numer.POSITIVE_INFINITY;varresult=x+99;alert(result);//返回值為NaN【例3-14】JavaScript特殊Number值Infinity的應(yīng)用(2) NaNNaN表示的是非數(shù)字(NotaNumber),該數(shù)值用于表示數(shù)據(jù)轉(zhuǎn)換成Number類型失敗的情況,從而無需拋出異常錯(cuò)誤。例如將String類型轉(zhuǎn)換為Number類型。NaN因?yàn)椴皇钦嬲臄?shù)字,不能用于進(jìn)行數(shù)學(xué)計(jì)算。并且即使兩個(gè)數(shù)值均為NaN,它們也并不相等。例如將英文單詞轉(zhuǎn)換為Number類型,就會(huì)導(dǎo)致轉(zhuǎn)換結(jié)果為NaN,具體代碼如下:varx="red";varresult=Number(x);//返回值為NaN,因?yàn)闆]有對(duì)應(yīng)的數(shù)值可以轉(zhuǎn)換JavaScript還提供了用于判斷數(shù)據(jù)類型是否為數(shù)值的方法isNaN(),其返回值是布爾值。當(dāng)檢測(cè)的數(shù)據(jù)可以正確轉(zhuǎn)換為Number類型時(shí)返回真(true),其他情況返回假(false)。其語法規(guī)則如下:isNaN(變量名稱)例如:varx1="red";varresult1=isNaN(x1);//返回值是假(false)varx2="999";varresult2=isNaN(x2);//返回值是真(true)【例3-15】JavaScript特殊Number值NaN的應(yīng)用3.1.5Boolean類型布爾值(boolean)在很多程序語言中都被用于進(jìn)行條件判斷,其值只有兩種:true(真)或者false(假)。布爾類型的值可以直接使用單詞true或false,也可以使用表達(dá)式。例如:varanswer=true;varanswer=false;varanswer=(1>2);其中1>2的表達(dá)式不成立,因此返回結(jié)果為false(假)?!纠?-16】JavaScriptBoolean類型的簡(jiǎn)單應(yīng)用3.2JavaScript對(duì)象類型在JavaScript中,對(duì)象類型分為三種:本地對(duì)象、內(nèi)置對(duì)象和宿主對(duì)象。本地對(duì)象(nativeobject)是ECMAScript定義的引用類型;內(nèi)置對(duì)象(built-inobject)指的是無需實(shí)例化可直接使用的對(duì)象,其實(shí)也是特殊的本地對(duì)象;宿主對(duì)象(hostobject)指的是用戶的機(jī)器環(huán)境,包括DOM和BOM。3.2.1本地對(duì)象1. 數(shù)組Array在JavaScript中可以使用數(shù)組(Array)類型在單個(gè)變量中存儲(chǔ)一系列的值。例如:varmobile=newArray();varmobile[0]="蘋果";varmobile[1]="三星";varmobile[2]="華為";數(shù)組是從0開始計(jì)數(shù)的,因此第一個(gè)元素的下標(biāo)是[0],后面每新增一個(gè)元素下標(biāo)+1。使用Array類型存儲(chǔ)數(shù)組的特點(diǎn)是無需在一開始聲明數(shù)組的具體元素?cái)?shù)量,可以在后續(xù)代碼中陸續(xù)新增數(shù)組元素。如果一開始就可以確定數(shù)組的長(zhǎng)度,即其中的元素不需要后續(xù)動(dòng)態(tài)加入,可直接寫成:varmobile=newArray("蘋果","三星","華為");或varmobile=["蘋果","三星","華為"];此時(shí)數(shù)組元素之間使用逗號(hào)隔開。Array對(duì)象還包含了length屬性,可以用于獲取當(dāng)前數(shù)組的長(zhǎng)度,即數(shù)組中的元素個(gè)數(shù)。如果當(dāng)前數(shù)組中沒有包含元素,則length值為0。例如:varmobile=["蘋果","三星","華為"];varx=mobile.length;//這里x值為3Array對(duì)象還包含了一系列方法用于操作數(shù)組,常用方法如下。concat(array1,array2,…arrayN):用于在數(shù)組末尾處連接一個(gè)或多個(gè)新的數(shù)組或數(shù)組元素。其中參數(shù)一為必填內(nèi)容,后面的參數(shù)個(gè)數(shù)不限,均為可選內(nèi)容。參數(shù)內(nèi)容可以是數(shù)組或數(shù)組元素的值。join(separator):把數(shù)組中的所有元素用指定的分隔符進(jìn)行分割,并在同一個(gè)字符串中顯示出來。其中separator參數(shù)表示指定的自定義分隔符。該參數(shù)為可選內(nèi)容,不填寫的情況下默認(rèn)用逗號(hào)分隔。pop():刪除數(shù)組中的最后一個(gè)元素,并返回該元素的值。如果數(shù)組內(nèi)容是空的,則該方法返回undefined,并且不進(jìn)行操作。push(element1,element2,…elementN):在數(shù)組的結(jié)尾處插入一個(gè)或多個(gè)元素,并返回最新數(shù)組長(zhǎng)度。其中參數(shù)一為必填,表示至少添加一個(gè)元素,后面的參數(shù)個(gè)數(shù)不限,均為可選內(nèi)容。reverse() :用于將數(shù)組中的所有元素倒序重組。該方法會(huì)直接更改原始數(shù)組,而不是生成一個(gè)新的數(shù)組。shift():刪除數(shù)組中的第一個(gè)元素,并返回該元素的值。如果數(shù)組內(nèi)容是空的,則該方法返回undefined,并且不進(jìn)行操作。slice(start,end):用于返回?cái)?shù)組中指定了開始與結(jié)束范圍的一系列元素。其中參數(shù)start為必填內(nèi)容,表示從第幾個(gè)元素開始選取。參數(shù)end為可選內(nèi)容,表示選取到第幾個(gè)元素結(jié)束,并且不包括該元素本身。如果沒有指定end參數(shù),則一直選取到數(shù)組的最后一個(gè)元素結(jié)束。這兩個(gè)參數(shù)如果填寫了負(fù)數(shù),則表示從數(shù)組末尾開始計(jì)算個(gè)數(shù)。例如-1表示最后一個(gè)元素,-2表示倒數(shù)第二個(gè)元素,依次類推。toString():用于把數(shù)組元素顯示在同一個(gè)的字符串中,并且用逗號(hào)分隔。相當(dāng)于沒有指定分隔符的join()方法的用法。unshift(element1,…elementN):在數(shù)組的開頭插入一個(gè)或多個(gè)元素,并返回最新數(shù)組長(zhǎng)度。其中參數(shù)一為必填,表示至少添加一個(gè)元素,后面的參數(shù)個(gè)數(shù)不限,均為可選內(nèi)容?!纠?-17】JavaScriptArray對(duì)象的簡(jiǎn)單應(yīng)用【代碼說明】本示例分別使用了兩種不同的聲明方式創(chuàng)建數(shù)組,并在最后使用alert()語句在彈出提示框中顯示這兩個(gè)數(shù)組的內(nèi)容。由圖可見,兩種聲明方式均可成功使用Array對(duì)象創(chuàng)建數(shù)組,并對(duì)數(shù)組元素進(jìn)行賦值。2. 日期Date在JavaScript中使用Date對(duì)象處理時(shí)間日期有關(guān)內(nèi)容。有四種初始化方式,列舉如下://表示獲取當(dāng)前的日期與時(shí)間newDate();//使用表示日期時(shí)間的字符串定義時(shí)間,例如填入May10,200012:12:00newDate(dateString);//使用從1970年1月1日到指定日期的毫秒數(shù)定義時(shí)間,例如填入1232345newDate(milliseconds);//自定義年、月、日、時(shí)、分、秒和毫秒,時(shí)分秒和毫秒?yún)?shù)缺省情況默認(rèn)為0newDate(year,month,day,hours,minutes,seconds,milliseconds);可以用Date對(duì)象一系列方法分別獲取指定的內(nèi)容,Date對(duì)象的常見方法如下。Date() 獲取當(dāng)前的日期和時(shí)間。getDate() 獲取Date對(duì)象處于一個(gè)月里面的哪一日(1-31)。getDay() 獲取Date對(duì)象處于星期幾(0-6),其中0表示星期日。getMonth() 獲取Date對(duì)象處于幾月份(0-11),從0開始計(jì)算表示一月份。getFullYear() 獲取Date對(duì)象的完整年份(4位數(shù))。getHours() 獲取Date對(duì)象的小時(shí)(0-23)。getMinutes() 獲取Date對(duì)象的分鐘(0-59)。getSeconds() 獲取Date對(duì)象的秒(0-59)。getTime() 返回1970年1月1日至今經(jīng)歷的毫秒數(shù)。setDate() 重新設(shè)置Date對(duì)象中的日期,精確到天。setFullYear() 重新設(shè)置Date對(duì)象中的年份,年份必須為4位數(shù)完整表達(dá)。setHours() 重新設(shè)置Date對(duì)象中的小時(shí)(0-23)。setMinutes() 重新設(shè)置Date對(duì)象中的分鐘(0-59)。setMonth() 重新設(shè)置Date對(duì)象中的月份(0-11)。setSeconds() 重新設(shè)置Date對(duì)象中的秒(0-59)。setTime() 重新以1970年1月1日至今經(jīng)歷的毫秒數(shù)設(shè)置Date對(duì)象。toDateString() 將Date對(duì)象的日期部分轉(zhuǎn)換為字符串。toLocaleDateString() 根據(jù)本地時(shí)間格式將Date對(duì)象的日期部分轉(zhuǎn)換為字符串。toLocaleTimeString() 根據(jù)本地時(shí)間格式將Date對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。toLocaleString() 根據(jù)本地時(shí)間格式將Date對(duì)象的日期和時(shí)間轉(zhuǎn)換為字符串。toUTCString() 根據(jù)世界時(shí)間格式將Date對(duì)象的日期和時(shí)間轉(zhuǎn)換為字符串?!纠?-18】JavaScriptDate對(duì)象的簡(jiǎn)單應(yīng)用【代碼說明】本示例聲明了當(dāng)前的時(shí)間日期對(duì)象date,然后分別獲取其中的年、月、日與星期,并使用alert()語句在彈出的提示框中顯示組合內(nèi)容。由于月份的取值范圍是0-11,因此如果需要顯示實(shí)際月份,需要將獲取到的月份值再進(jìn)行加1處理。3. 正則表達(dá)式RegExpRegExp對(duì)象表示正則表達(dá)式(RegularExpression),通常用于檢索文本中是否包含指定的字符串。其語法格式如下:newRegExp(pattern[,attributes])參數(shù)解釋如下:pattern:該參數(shù)為字符串形式,用于規(guī)定正則表達(dá)式的匹配規(guī)則或填入其他正則表達(dá)式。attributes:該參數(shù)為可選參數(shù),可包含屬性值g、i或者m,分別表示全局匹配、區(qū)分大小寫匹配與多行匹配。例如:varpattern=newRegExp([0-9],g);上述代碼表示聲明了一個(gè)用于全局檢索文本中是否包含數(shù)字0-9之間任意字符的正則表達(dá)式。還有一種簡(jiǎn)寫形式,格式如下:/pattern/[attribute]因此前面用于全局檢索數(shù)字0-9的正則表達(dá)式聲明可修改為如下內(nèi)容:varpattern=/[0-9]/g;兩種寫法效果完全相同。需要注意的是,這兩種情況下的參數(shù)attributes均僅適用于參數(shù)pattern為匹配規(guī)則字符串的情況。如果參數(shù)pattern填寫的是其他正則表達(dá)式,則參數(shù)attributes必須省略不寫。JavaScript中常用的正則表達(dá)式如表3-7所示。表3-7JavaScript常用正則表達(dá)式一覽括號(hào)表達(dá)式解釋[0-9]查找0-9之間的數(shù)字。[a-z]查找從小寫字母a到小寫字母z之間的字符。[A-Z]查找從大寫字母A到大寫字母Z之間的字符。[A-z]查找從大寫字母A到小寫字母z之間的字符。[abc]查找括號(hào)之間的任意一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園文化墻課程設(shè)計(jì)
- 系統(tǒng)工程課程設(shè)計(jì)ISM
- 研學(xué)旅行課程設(shè)計(jì)閬中
- 2024年度敬老院五保戶入住養(yǎng)老社區(qū)綜合管理合同3篇
- 直埋 課程設(shè)計(jì)
- 2024年股權(quán)投資安全擔(dān)保合同指導(dǎo)文本版
- 2024事業(yè)單位職員任期制聘用合同參考文本3篇
- 2024-2025學(xué)年人教新版九年級(jí)(上)化學(xué)寒假作業(yè)(八)
- 2024年版權(quán)轉(zhuǎn)讓合同的版權(quán)信息
- 2024年度家居用品銷售合同擔(dān)保協(xié)議范本3篇
- 《膽堿能受體作用藥》課件
- 肥胖危害及相關(guān)疾病
- 浙江省杭州市余杭區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末英語試卷
- 語音通知營(yíng)銷方案
- 中國(guó)結(jié)直腸癌診療規(guī)范(2023版)解讀
- 《汽車維修常用工具與儀器設(shè)備的使用》 課件 15.9 輪胎氣壓表的使用
- 降低針刺傷發(fā)生率品管圈課件
- JJF(新) 106-2023 微波消解儀溫度、壓力參數(shù)校準(zhǔn)規(guī)范
- 小學(xué)期末復(fù)習(xí)班會(huì)課課件
- 新建子公司規(guī)劃方案
- 文創(chuàng)店室內(nèi)設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論