版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章JavaScript基礎(chǔ)《JavaScript+jQuery交互式Web前端開發(fā)(第2版)》學(xué)習(xí)目標(biāo)/Target
了解數(shù)據(jù)類型的分類,能夠描述JavaScript中的基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型
掌握常用的基本數(shù)據(jù)類型,能夠根據(jù)實(shí)際需求定義基本數(shù)據(jù)類型的變量
掌握數(shù)據(jù)類型轉(zhuǎn)換,能夠根據(jù)實(shí)際需求將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)、數(shù)字型數(shù)據(jù)
或字符串型數(shù)據(jù)
掌握運(yùn)算符的使用,能夠靈活運(yùn)用運(yùn)算符完成運(yùn)算學(xué)習(xí)目標(biāo)/Target掌握選擇結(jié)構(gòu)語句,能夠根據(jù)實(shí)際需求選擇合適的選擇結(jié)構(gòu)語句
掌握循環(huán)結(jié)構(gòu)語句,能夠根據(jù)實(shí)際需求選擇合適的循環(huán)結(jié)構(gòu)語句
掌握跳轉(zhuǎn)語句,能夠靈活運(yùn)用continue語句或break語句完成程序中的流程跳轉(zhuǎn)章節(jié)概述/SummaryJavaScript作為一門編程語言,在Web前端開發(fā)領(lǐng)域中扮演著至關(guān)重要的角色。作為一名初學(xué)者,掌握J(rèn)avaScript基礎(chǔ)是十分必要的。只有掌握了JavaScript基礎(chǔ),才能更好地理解和編寫JavaScript程序,為后續(xù)的學(xué)習(xí)奠定堅(jiān)實(shí)的基礎(chǔ)。本章將對(duì)JavaScript基礎(chǔ)進(jìn)行講解,包括數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、運(yùn)算符和流程控制。目錄/Contents2.12.22.3數(shù)據(jù)類型數(shù)據(jù)類型轉(zhuǎn)換運(yùn)算符2.4流程控制數(shù)據(jù)類型2.1了解數(shù)據(jù)類型的分類,能夠描述JavaScript中的基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型2.1.1 數(shù)據(jù)類型分類
先定一個(gè)小目標(biāo)!2.1.1 數(shù)據(jù)類型分類在JavaScript中,數(shù)據(jù)類型可以分為基本數(shù)據(jù)類型(或稱為值類型)和復(fù)雜數(shù)據(jù)類型(或稱為引用類型)。JavaScript中的數(shù)據(jù)類型分類如下圖所示。需要說明的是,JavaScript中的數(shù)組、函數(shù)和正則表達(dá)式都屬于對(duì)象型,所以復(fù)雜數(shù)據(jù)類型中只列出了對(duì)象型。復(fù)雜數(shù)據(jù)類型的使用較難,這里大家只需了解,具體會(huì)在第5章中詳細(xì)講解。2.1.1 數(shù)據(jù)類型分類強(qiáng)類型語言和弱類型語言的區(qū)別多學(xué)一招強(qiáng)類型語言是指一種強(qiáng)制類型定義的語言,當(dāng)某個(gè)變量被定義數(shù)據(jù)類型后,如果不進(jìn)行強(qiáng)制轉(zhuǎn)換,則該變量的數(shù)據(jù)類型不會(huì)改變,常見的強(qiáng)類型語言有Java、C++等。弱類型語言是指一種弱類型定義的語言,變量可以在運(yùn)行時(shí)被賦予不同數(shù)據(jù)類型的數(shù)據(jù),變量的數(shù)據(jù)類型是由其值來確定的。常見的弱類型語言有JavaScript、PHP等。2.1.1 數(shù)據(jù)類型分類多學(xué)一招下面通過代碼比較強(qiáng)類型語言和弱類型語言。2.1.1 數(shù)據(jù)類型分類//強(qiáng)類型語言(以Java語言為例)intage=24; //變量age是整型//弱類型語言(以JavaScript語言為例)varage=24; //變量age是數(shù)字型age=‘a(chǎn)bc’; //將一個(gè)字符串賦值給變量age,此時(shí)變量age變成了字符串型由上述代碼可知,JavaScript變量的數(shù)據(jù)類型取決于被賦予的值的類型。掌握常用的基本數(shù)據(jù)類型,能夠根據(jù)實(shí)際需求定義基本數(shù)據(jù)類型的變量2.1.2 常用的基本數(shù)據(jù)類型
先定一個(gè)小目標(biāo)!在JavaScript中,常用的基本數(shù)據(jù)類型有布爾型、數(shù)字型、字符串型、空型和未定義型,而大整型和符號(hào)型不常用。2.1.2 常用的基本數(shù)據(jù)類型2.1.2 常用的基本數(shù)據(jù)類型1.布爾型布爾型數(shù)據(jù)有兩個(gè)值,分別是true(真)和false(假)。布爾型數(shù)據(jù)通常用于表示程序中的邏輯判斷結(jié)果,其中,true表示事件成功或條件成立的情況,false表示事件失敗或條件不成立的情況。例如,判斷數(shù)字3是否大于數(shù)字2,其結(jié)果用布爾型數(shù)據(jù)表示為true。注意由于在JavaScript中嚴(yán)格區(qū)分大小寫,所以只有當(dāng)true和false全部為小寫時(shí)才表示布爾型數(shù)據(jù)。2.1.2 常用的基本數(shù)據(jù)類型下面通過代碼演示布爾型的使用,首先聲明兩個(gè)變量,然后分別賦值為true和false,示例代碼如下。varresult01=true;varresult02=false;在上述示例代碼中,第1行代碼聲明變量result01并賦值為布爾型數(shù)據(jù)true;第2行代碼聲明變量result02并賦值為布爾型數(shù)據(jù)false。2.1.2 常用的基本數(shù)據(jù)類型2.數(shù)字型JavaScript中的數(shù)字型數(shù)據(jù)可以分為整數(shù)和浮點(diǎn)數(shù)(表示小數(shù)),在數(shù)字前面添加“+”表示正數(shù),添加“-”表示負(fù)數(shù),通常情況下省略“+”。2.1.2 常用的基本數(shù)據(jù)類型(1)整數(shù)在JavaScript中,通常使用十進(jìn)制表示整數(shù),此外還可以使用二進(jìn)制、八進(jìn)制或十六進(jìn)制。十進(jìn)制由數(shù)字0~9組成,使用規(guī)則是逢十進(jìn)一;二進(jìn)制數(shù)由數(shù)字0和1組成,使用規(guī)則是逢二進(jìn)一;八進(jìn)制由數(shù)字0~7組成,使用規(guī)則是逢八進(jìn)一;十六進(jìn)制數(shù)由數(shù)字0~9以及字母A~F組成,不區(qū)分大小寫,使用規(guī)則是逢十六進(jìn)一。2.1.2 常用的基本數(shù)據(jù)類型下面通過代碼演示數(shù)字型數(shù)據(jù)中整數(shù)的使用,首先聲明4個(gè)變量,然后分別給這4個(gè)變量賦值為二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制的整數(shù),示例代碼如下。varbin=0b11010; //二進(jìn)制表示的26varoct=0o32; //八進(jìn)制表示的26vardec=26; //十進(jìn)制數(shù)26varhex=0x1a; //十六進(jìn)制表示的26在上述示例代碼中,以0b開始的數(shù)字表示二進(jìn)制數(shù),以0o開始的數(shù)字表示八進(jìn)制數(shù),以0x開始的數(shù)字表示十六進(jìn)制數(shù)。其中,b、o和x不區(qū)分大小寫。另外,JavaScript還允許用以0開始的數(shù)字表示八進(jìn)制數(shù),但不推薦。2.1.2 常用的基本數(shù)據(jù)類型浮點(diǎn)數(shù)可以使用標(biāo)準(zhǔn)格式和科學(xué)記數(shù)法格式表示。標(biāo)準(zhǔn)格式是指數(shù)學(xué)中小數(shù)的寫法,如1.10;科學(xué)記數(shù)法格式是指將數(shù)字表示成一個(gè)數(shù)與10的n次冪相乘的形式,在程序中使用E或e后面跟一個(gè)數(shù)字的方式表示10的n次冪,如2.15E3表示2.15
103。(2)浮點(diǎn)數(shù)2.1.2 常用的基本數(shù)據(jù)類型下面通過代碼演示數(shù)字型數(shù)據(jù)中浮點(diǎn)數(shù)的使用,首先聲明4個(gè)變量,然后分別使用標(biāo)準(zhǔn)格式和科學(xué)記數(shù)法格式表示浮點(diǎn)數(shù),示例代碼如下。//使用標(biāo)準(zhǔn)格式表示浮點(diǎn)數(shù)varfNum01=-3.12;varfNum02=3.12;//使用科學(xué)記數(shù)法格式表示浮點(diǎn)數(shù)varfNum03=3.14E5;varfNum04=7.35E-5;數(shù)字型數(shù)據(jù)中的最大值、最小正數(shù)值和特殊值多學(xué)一招在JavaScript中,當(dāng)需要獲取數(shù)字型數(shù)據(jù)的取值范圍時(shí),可以使用MAX_VALUE和MIN_VALUE。由于MAX_VALUE和MIN_VALUE是Number對(duì)象的靜態(tài)屬性,所以需要通過Number.MAX_VALUE、Number.MIN_VALUE的方式進(jìn)行訪問。2.1.2 常用的基本數(shù)據(jù)類型多學(xué)一招通過如下代碼可以查詢JavaScript中的數(shù)字型數(shù)據(jù)的最大值和最小正數(shù)值。2.1.2 常用的基本數(shù)據(jù)類型console.log(Number.MAX_VALUE); //輸出結(jié)果為:1.7976931348623157e+308console.log(Number.MIN_VALUE); //輸出結(jié)果為:5e-324在上述代碼中,第1行代碼使用Number.MAX_VALUE獲取了JavaScript中數(shù)字型數(shù)據(jù)的最大值;第2行代碼使用Number.MIN_VALUE獲取了JavaScript中數(shù)字型數(shù)據(jù)的最小正數(shù)值。多學(xué)一招2.1.2 常用的基本數(shù)據(jù)類型在JavaScript中數(shù)字型數(shù)據(jù)有3個(gè)特殊值,分別是Infinity(無窮大)、-Infinity(無窮?。┖蚇aN(NotaNumber,非數(shù)字)。在計(jì)算中,當(dāng)計(jì)算結(jié)果超出了JavaScript最大可表示的數(shù)字時(shí),會(huì)返回Infinity;當(dāng)計(jì)算結(jié)果超出了JavaScript最小可表示的數(shù)字時(shí),會(huì)返回-Infinity;如果進(jìn)行了非法的運(yùn)算操作,JavaScript會(huì)返回NaN。多學(xué)一招下面通過代碼演示數(shù)字型數(shù)據(jù)中出現(xiàn)3個(gè)特殊值的情況。2.1.2 常用的基本數(shù)據(jù)類型console.log(Number.MAX_VALUE*2); //輸出結(jié)果為:Infinityconsole.log(-Number.MAX_VALUE*2); //輸出結(jié)果為:-Infinityconsole.log('abc'-2); //輸出結(jié)果為:NaN在上述代碼中,第1行代碼使用數(shù)字型數(shù)據(jù)的最大值乘2,輸出結(jié)果為Infinity;第2行代碼使用數(shù)字型數(shù)據(jù)的最大值的相反數(shù)乘2,輸出結(jié)果為-Infinity;第3行代碼使用字符串'abc'減2,輸出結(jié)果為NaN。2.1.2 常用的基本數(shù)據(jù)類型字符串是指計(jì)算中用于表示文本的一系列字符,在JavaScript中使用單引號(hào)(‘)、雙引號(hào)(“)和反引號(hào)(`)標(biāo)注字符串。下面通過代碼演示字符串型數(shù)據(jù)的使用。//使用單引號(hào)標(biāo)注字符串vara=''; //表示空字符串varstr1='書籍'; //表示字符串'書籍'//使用雙引號(hào)標(biāo)注字符串varb=""; //表示空字符串varstr2="書籍是人類進(jìn)步的階梯";//表示字符串"書籍是人類進(jìn)步的階梯"http://使用反引號(hào)標(biāo)注字符串varc=``; //表示空字符串varstr3=`讀萬卷書行萬里路`; //表示字符串`讀萬卷書行萬里路`3.字符串型2.1.2 常用的基本數(shù)據(jù)類型在字符串中,單引號(hào)、雙引號(hào)和反引號(hào)可以嵌套使用,示例代碼如下。//單引號(hào)中嵌套雙引號(hào)varfruit01='"apple"banana'; //字符串內(nèi)容為"apple"banana//雙引號(hào)中嵌套單引號(hào)varfruit02="'pear'blueberry"; //字符串內(nèi)容為'pear'blueberry//單引號(hào)中嵌套反引號(hào)varfood01='`noodles`rice'; //字符串內(nèi)容為`noodles`rice//雙引號(hào)中嵌套反引號(hào)varfood02="`fish`meat"; //字符串內(nèi)容為`fish`meat//反引號(hào)中嵌套單引號(hào)varcolor01=`'pink'red`; //字符串內(nèi)容為'pink'red//反引號(hào)中嵌套雙引號(hào)varcolor02=`"black"white`; //字符串內(nèi)容為"black"white2.1.2 常用的基本數(shù)據(jù)類型如果在單引號(hào)中使用單引號(hào)、在雙引號(hào)中使用雙引號(hào),或在反引號(hào)中使用反引號(hào),則需要使用“\”對(duì)單引號(hào)、雙引號(hào)或反引號(hào)進(jìn)行轉(zhuǎn)義,具體如下。\':單引號(hào)。\":雙引號(hào)。\`:反引號(hào)。2.1.2 常用的基本數(shù)據(jù)類型下面通過代碼演示字符串的單引號(hào)、雙引號(hào)和反引號(hào)嵌套使用的情況。//單引號(hào)中嵌套單引號(hào)varspeak='I\'m小明'; //字符串內(nèi)容為I'm小明//雙引號(hào)中嵌套雙引號(hào)varboyName="\"小智\""; //字符串內(nèi)容為"小智"http://反引號(hào)中嵌套反引號(hào)vargirlName=`\`小麗\``; //字符串內(nèi)容為`小麗`2.1.2 常用的基本數(shù)據(jù)類型字符串是由若干個(gè)字符組成的,字符的數(shù)量就是字符串的長度。在JavaScript中可以使用length屬性獲取整個(gè)字符串的長度,示例代碼如下。varstr='Ilikerunning';console.log(str.length); //輸出結(jié)果為:142.1.2 常用的基本數(shù)據(jù)類型空型表示聲明的變量未指向任何對(duì)象,它只有一個(gè)特殊的null值。下面通過代碼演示數(shù)據(jù)類型為空型的情況。varage=null;console.log(age); //輸出結(jié)果為:null在上述示例代碼中,第1行代碼聲明了一個(gè)變量age,并賦值為null;第2行代碼用于在控制臺(tái)中輸出變量的age的值。4.空型2.1.2 常用的基本數(shù)據(jù)類型未定義型表示聲明的變量還未被賦值,此時(shí)變量的值為undefined,表示未定義。下面通過代碼演示數(shù)據(jù)類型為未定義型的情況。varage;console.log(age); //輸出結(jié)果為:undefined在上述示例代碼中,由于沒有為聲明的變量age賦值,所以輸出結(jié)果為undefined。5.未定義型字面量多學(xué)一招字面量是指源代碼中的固定值的表示法,使用字面量可以在代碼中表示某個(gè)值。在閱讀代碼時(shí),通過觀察字面量可以快速地判斷數(shù)據(jù)的類型。JavaScript中常見的字面量如下。2.1.2 常用的基本數(shù)據(jù)類型數(shù)字字面量:1、2、3字符串字面量:'用戶名'、"密碼"布爾字面量:true、false數(shù)組字面量:[1,2,3]對(duì)象字面量:{username:'小智',password:123456}數(shù)據(jù)類型轉(zhuǎn)換2.2掌握數(shù)據(jù)類型轉(zhuǎn)換,能夠根據(jù)實(shí)際需求將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)
先定一個(gè)小目標(biāo)!2.2.1將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)在比較數(shù)據(jù)或進(jìn)行條件判斷時(shí),經(jīng)常需要將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)。在JavaScript中,使用Boolean()可以將給定的數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù),在轉(zhuǎn)換時(shí),表示空值或否定的值(包括空字符串、數(shù)字0、NaN、null和undefined)會(huì)被轉(zhuǎn)換為false,其他的值會(huì)被轉(zhuǎn)換為true。2.2.1將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)2.2.1將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)將數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)的示例代碼如下。console.log(Boolean('')); //輸出結(jié)果為:falseconsole.log(Boolean(0)); //輸出結(jié)果為:falseconsole.log(Boolean(NaN)); //輸出結(jié)果為:falseconsole.log(Boolean(null)); //輸出結(jié)果為:falseconsole.log(Boolean(undefined)); //輸出結(jié)果為:falseconsole.log(Boolean('小智')); //輸出結(jié)果為:trueconsole.log(Boolean(123456)); //輸出結(jié)果為:true掌握數(shù)據(jù)類型轉(zhuǎn)換,能夠根據(jù)實(shí)際需求將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)
先定一個(gè)小目標(biāo)!2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)在JavaScript的開發(fā)過程中,有時(shí)候需要將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)進(jìn)行計(jì)算。例如,將字符串型數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)的方式有3種,分別是parseInt()、parseFloat()和Number()。2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)在使用parseInt()將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)時(shí),會(huì)直接忽略數(shù)據(jù)的小數(shù)部分,返回?cái)?shù)據(jù)的整數(shù)部分,示例代碼如下。console.log(parseInt('100.56')); //輸出結(jié)果為:1001.parseInt()2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)需要注意的是,parseInt()可以自動(dòng)識(shí)別十進(jìn)制數(shù)和十六進(jìn)制數(shù)字符串。例如,'0xF'會(huì)被識(shí)別為15。但對(duì)于其他進(jìn)制數(shù)字符串,則需要通過parseInt()的第2個(gè)參數(shù)設(shè)置進(jìn)制才能正確識(shí)別,該參數(shù)的取值范圍為2~36,示例代碼如下。console.log(parseInt('20',8)); //輸出結(jié)果為:162.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)1.parseInt()在使用parseFloat()將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)時(shí),會(huì)將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)中的浮點(diǎn)數(shù),示例代碼如下。console.log(parseFloat('100.56')); //輸出結(jié)果為:100.56console.log(parseFloat('314e-2')); //輸出結(jié)果為:3.14在上述示例代碼中,第1行代碼將字符串'100.56'轉(zhuǎn)換為數(shù)字型數(shù)據(jù),控制臺(tái)中的輸出結(jié)果為100.56;第2行代碼將字符串'314e-2'轉(zhuǎn)換為數(shù)據(jù)3.14。2.parseFloat()2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)使用Number()將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)的示例代碼如下。console.log(Number('100.56')); //輸出結(jié)果為:100.56console.log(Number('100.abc')); //輸出結(jié)果為:NaN在上述示例代碼中,第1行代碼將字符串'100.56'轉(zhuǎn)換為數(shù)字型數(shù)據(jù),控制臺(tái)中的輸出結(jié)果為100.56;第2行代碼將字符串'100.abc'轉(zhuǎn)換為數(shù)字型數(shù)據(jù),控制臺(tái)中的輸出結(jié)果為NaN。3.Number()2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)不同類型數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)的結(jié)果如下表所示。待轉(zhuǎn)換數(shù)據(jù)parseInt()轉(zhuǎn)換結(jié)果parseFloat()轉(zhuǎn)換結(jié)果Number()轉(zhuǎn)換結(jié)果純數(shù)字字符串對(duì)應(yīng)的數(shù)字對(duì)應(yīng)的數(shù)字對(duì)應(yīng)的數(shù)字非純數(shù)字字符串NaNNaNNaN空字符串NaNNaN0nullNaNNaN0undefinedNaNNaNNaNtrueNaNNaN1falseNaNNaN02.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)在轉(zhuǎn)換純數(shù)字字符串時(shí),會(huì)忽略字符串前面的0,如字符串"0333"會(huì)被轉(zhuǎn)換為333。如果字符串前后有空格,則這些空格會(huì)被忽略。如果字符串開頭有正號(hào)“+”或負(fù)號(hào)“-”,則該字符串會(huì)被當(dāng)成正數(shù)或負(fù)數(shù),如'-333'會(huì)被轉(zhuǎn)換為-333。2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)使用isNaN()判斷一個(gè)值是否為NaN多學(xué)一招如果想要判斷一個(gè)值是否為NaN,可以使用isNaN()進(jìn)行判斷。isNaN()在接收一個(gè)值后會(huì)將該值隱式轉(zhuǎn)換為數(shù)字。如果轉(zhuǎn)換結(jié)果為NaN,那么isNaN()將返回true;否則,返回false。2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)多學(xué)一招下面通過代碼演示isNaN()的使用。2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)console.log(isNaN(3)); //輸出結(jié)果為:falseconsole.log(isNaN('abc')); //輸出結(jié)果為:true在上述代碼中,由于第1行代碼中的3是數(shù)字,所以輸出結(jié)果為false;由于第2行代碼中的'abc'是不能轉(zhuǎn)換為數(shù)字的字符串,即轉(zhuǎn)換結(jié)果為NaN,所以輸出結(jié)果為true。需要注意的是,isNaN()只能判斷一個(gè)值是否為NaN,而不能判斷一個(gè)值是否為有效的數(shù)字。如果需要判斷一個(gè)值是否為數(shù)字,可以使用typeof運(yùn)算符,詳見2.3.8小節(jié)。2.2.2將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)多學(xué)一招掌握數(shù)據(jù)類型轉(zhuǎn)換,能夠根據(jù)實(shí)際需求將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)
先定一個(gè)小目標(biāo)!2.2.3將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)在JavaScript中可以使用String()或toString()將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù),它們的區(qū)別是,String()可以將任意類型的數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù);而toString()只能將除null和undefined之外的數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)。在使用toString()對(duì)數(shù)字進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換時(shí),可以通過設(shè)置參數(shù)將數(shù)字轉(zhuǎn)換為指定進(jìn)制的字符串。2.2.3將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)2.2.3將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)下面通過代碼演示將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)。varnum01=23;varnum02=46;console.log(String(num01)); //輸出結(jié)果為:23console.log(num01.toString()); //輸出結(jié)果為:23console.log(num02.toString(2)); //輸出結(jié)果為:101110運(yùn)算符2.3掌握算術(shù)運(yùn)算符的使用,能夠靈活應(yīng)用算術(shù)運(yùn)算符完成運(yùn)算
先定一個(gè)小目標(biāo)!2.3.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于對(duì)兩個(gè)數(shù)字或變量進(jìn)行算術(shù)運(yùn)算,與數(shù)學(xué)中的加、減、乘、除運(yùn)算類似。JavaScript中常用的算術(shù)運(yùn)算符如下表所示。運(yùn)算符運(yùn)算示例結(jié)果+加3+36-減6-33*乘3*515/除8/24%取模(取余)5%75**冪運(yùn)算4**216++自增(前置)a=2;b=++a;a=3;b=3;自增(后置)a=2;b=a++;a=3;b=2;--自減(前置)a=2;b=--a;a=1;b=1;自減(后置)a=2;b=a--;a=1;b=2;2.3.1算術(shù)運(yùn)算符自增和自減運(yùn)算可以快速對(duì)變量的值進(jìn)行遞增或遞減運(yùn)算,自增和自減運(yùn)算符可以放在變量前也可以放在變量后。當(dāng)自增(或自減)運(yùn)算符放在變量前時(shí),稱為前置自增(或前置自減);當(dāng)自增(或自減)運(yùn)算符放在變量后面時(shí),稱為后置自增(或后置自減)。前置和后置的區(qū)別在于,前置返回的是計(jì)算后的結(jié)果,后置返回的是計(jì)算前的結(jié)果。2.3.1算術(shù)運(yùn)算符下面通過代碼演示自增和自減運(yùn)算,示例代碼如下。2.3.1算術(shù)運(yùn)算符vara=2,b=2,c=3,d=3;//自增console.log(++a); //輸出結(jié)果為:3console.log(a); //輸出結(jié)果為:3console.log(b++); //輸出結(jié)果為:2console.log(b); //輸出結(jié)果為:3//自減console.log(--c); //輸出結(jié)果為:2console.log(c); //輸出結(jié)果為:2console.log(d--); //輸出結(jié)果為:3console.log(d); //輸出結(jié)果為:2算術(shù)運(yùn)算符在實(shí)際應(yīng)用過程中還需要注意以下4點(diǎn)。2.3.1算術(shù)運(yùn)算符進(jìn)行四則混合運(yùn)算時(shí),運(yùn)算順序要遵循數(shù)學(xué)中“先乘除后加減”的原則。例如,運(yùn)行“varresult=2+8-3*2/2”后,result的值是7。在進(jìn)行取模運(yùn)算時(shí),運(yùn)算結(jié)果的正負(fù)取決于被模數(shù)(%左邊的數(shù))的正負(fù),與模數(shù)(%右邊的數(shù))的正負(fù)無關(guān)。例如,運(yùn)行“vara=(-8)%7,b=8%(-7)”后,a的值為-1,b的值為1。2.3.1算術(shù)運(yùn)算符在開發(fā)過程中盡量避免使用浮點(diǎn)數(shù)進(jìn)行運(yùn)算,有時(shí)JavaScript的精度可能導(dǎo)致結(jié)果產(chǎn)生偏差。例如,0.1+0.2正常的計(jì)算結(jié)果應(yīng)該是0.3,但是JavaScript的計(jì)算結(jié)果卻是0.30000000000000004。此時(shí),將參與運(yùn)算的浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù),計(jì)算后再轉(zhuǎn)換為浮點(diǎn)數(shù)即可。例如,將0.1和0.2分別乘10,相加后再除10,即可得到0.3?!?”和“-”在運(yùn)算符中還可以表示正數(shù)或負(fù)數(shù)。例如,(+2.1)+(-1.1)的計(jì)算結(jié)果為1。表達(dá)式多學(xué)一招表達(dá)式是一組代碼的集合,每個(gè)表達(dá)式的運(yùn)行結(jié)果都是一個(gè)值。變量和各種類型的數(shù)據(jù)都可以用于構(gòu)成表達(dá)式。一個(gè)簡單的表達(dá)式可以是一個(gè)變量或字面量,下面列舉一些常見的表達(dá)式。2.3.1算術(shù)運(yùn)算符varnum=3+3; //將表達(dá)式3+3的值6賦值給變量numnum=7; //將表達(dá)式7的值賦值給變量numvarage=23+num; //將表達(dá)式23+num的值30賦值給變量ageage=num=35; //將表達(dá)式num=35的值35賦值給變量ageconsole.log(age); //將表達(dá)式age的值作為參數(shù)傳給console.log()alert(prompt('a')); //將表達(dá)式prompt('a')的值作為參數(shù)傳給alert()alert(parseInt(prompt('num'))+1); //由簡單的表達(dá)式組合成的復(fù)雜表達(dá)式掌握字符串運(yùn)算符的使用,能夠靈活應(yīng)用字符串運(yùn)算符完成運(yùn)算
先定一個(gè)小目標(biāo)!2.3.2字符串運(yùn)算符在JavaScript中,當(dāng)含有“+”運(yùn)算符的表達(dá)式的操作數(shù)至少有一個(gè)為字符串時(shí),“+”表示字符串運(yùn)算符,用于實(shí)現(xiàn)字符串的拼接。2.3.2字符串運(yùn)算符下面通過代碼演示字符串運(yùn)算符的使用。定義兩個(gè)變量,第1個(gè)變量存放用戶名'小智',第2個(gè)變量存放性別'男',如果需要顯示“小智:男”,就需要將字符串'小智'、
':
'和'男'進(jìn)行拼接。2.3.2字符串運(yùn)算符varusername='小智';varsex='男';//使用“+”運(yùn)算符實(shí)現(xiàn)字符串拼接varstr=username+':'+sex;console.log(str); //輸出結(jié)果為“小智:男”值得一提的是,ECMAScript6.0中新增了使用模板字符串的方式實(shí)現(xiàn)字符串的拼接。模板字符串的寫法是以反引號(hào)(`)開頭,以反引號(hào)(`)結(jié)尾。在使用模板字符串時(shí),首先定義需要拼接的字符串變量,然后將字符串變量寫到${}的大括號(hào)中。2.3.2字符串運(yùn)算符使用模板字符串拼接字符串的示例代碼如下。2.3.2字符串運(yùn)算符varusername='小智';varsex='男';//使用模板字符串實(shí)現(xiàn)字符串拼接console.log(`${username}:${sex}`); //輸出結(jié)果為“小智:男”在上述示例代碼中,第4行代碼使用模板字符串的方式拼接變量username、
':'和變量sex。2.3.2字符串運(yùn)算符隱式轉(zhuǎn)換腳下留心在JavaScript中,當(dāng)操作的數(shù)據(jù)類型不符合預(yù)期時(shí),JavaScript會(huì)按照既定的規(guī)則進(jìn)行自動(dòng)類型轉(zhuǎn)換,這種方式稱為隱式轉(zhuǎn)換,具體轉(zhuǎn)換規(guī)則參考2.2節(jié)。例如,當(dāng)判斷某個(gè)值是否為true或false時(shí),1會(huì)被隱式轉(zhuǎn)換為true,0會(huì)被隱式轉(zhuǎn)換為false。JavaScript的隱式轉(zhuǎn)換雖然降低了程序的嚴(yán)謹(jǐn)性,但也帶來了便利,使開發(fā)人員不必處理繁瑣的類型轉(zhuǎn)換工作。在實(shí)際開發(fā)中,應(yīng)注意隱式轉(zhuǎn)換可能帶來的問題,以免程序出現(xiàn)意想不到的結(jié)果。2.3.2字符串運(yùn)算符下面通過代碼演示如何使用隱式轉(zhuǎn)換實(shí)現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,示例代碼如下。
//通過隱式轉(zhuǎn)換將數(shù)據(jù)轉(zhuǎn)換為數(shù)字型數(shù)據(jù)
console.log('13'-0);
//輸出結(jié)果為:13
console.log('13'*1);
//輸出結(jié)果為:13
console.log('13'/1);
//輸出結(jié)果為:13
//通過隱式轉(zhuǎn)換將數(shù)據(jù)轉(zhuǎn)換為字符串型數(shù)據(jù)
console.log(13+'');
//輸出結(jié)果為:13
console.log(true+'');
//輸出結(jié)果為:true
console.log(null+'');
//輸出結(jié)果為:null
console.log(undefined+'');
//輸出結(jié)果為:undefined腳下留心掌握賦值運(yùn)算符的使用,能夠靈活應(yīng)用賦值運(yùn)算符完成運(yùn)算2.3.3
賦值運(yùn)算符
先定一個(gè)小目標(biāo)!在JavaScript中,賦值運(yùn)算符用于將運(yùn)算符右邊的值賦給左邊的變量。在變量的初始化過程中,就使用了最基本的賦值運(yùn)算符“=”。JavaScript中常用的賦值運(yùn)算符如下表所示。運(yùn)算符運(yùn)算示例結(jié)果=賦值a=1,b=2;a=1,b=2;+=加并賦值a=1,b=2;a+=b;a=3,b=2;字符串拼接并賦值a='abc';a+='def';a='abcdef';-=減并賦值a=4,b=3;a-=b;a=1,b=3;*=乘并賦值a=4,b=3;a*=b;a=12,b=3;/=除并賦值a=4,b=2;a/=b;a=2,b=2;%=取模并賦值a=4,b=3;a%=b;a=1,b=3;**=冪運(yùn)算并賦值a=4;a**=2;a=16;<<=左移位并賦值a=9,b=2;a<<=b;a=36,b=2;>>=右移位并賦值a=-9,b=2;a>>=b;a=-3,b=2;>>>=無符號(hào)右移位并賦值a=-9,b=2;a>>>=b;a=1073741821,b=2;&=按位與并賦值a=3,b=9;a&=b;a=1,b=9;^=按位異或并賦值a=3,b=9;a^=b;a=10,b=9;|=按位或并賦值a=3,b=9;a|=b;a=11,b=9;2.3.3
賦值運(yùn)算符下面通過代碼演示賦值運(yùn)算符的使用,示例代碼如下。vara=5;a+=3;
//相當(dāng)于a=a+3console.log(a);
//輸出結(jié)果為:8a-=4;
//相當(dāng)于a=a-4console.log(a);
//輸出結(jié)果為:4a*=2;
//相當(dāng)于a=a*2console.log(a);
//輸出結(jié)果為:8a/=2;
//相當(dāng)于a=a/2console.log(a);
//輸出結(jié)果為:4a%=2;
//相當(dāng)于a=a%2console.log(a);
//輸出結(jié)果為:0a**=2;
//相當(dāng)于a=a**2console.log(a);
//輸出結(jié)果為:02.3.3
賦值運(yùn)算符掌握比較運(yùn)算符的使用,能夠靈活應(yīng)用比較運(yùn)算符完成運(yùn)算2.3.4
比較運(yùn)算符
先定一個(gè)小目標(biāo)!2.3.4
比較運(yùn)算符用戶在訪問電商網(wǎng)站的過程中,經(jīng)常會(huì)在首頁看到銷量高的商品。在實(shí)際開發(fā)中,開發(fā)人員可以通過比較商品的銷量,選出銷量高的產(chǎn)品放到首頁進(jìn)行展示。在JavaScript中,比較運(yùn)算符用于對(duì)兩個(gè)數(shù)據(jù)進(jìn)行比較,比較返回的結(jié)果是布爾型數(shù)據(jù),即true或false。下面列舉JavaScript中常用的比較運(yùn)算符如下表所示。運(yùn)算符運(yùn)算示例結(jié)果>大于3>2true<小于3<2false>=大于或等于3>=2true<=小于或等于3<=2false==等于3==2false!=不等于3!=2true===全等3===3true!==不全等3!==3false2.3.4
比較運(yùn)算符注意運(yùn)算符“==”和“!=”在比較不同類型的數(shù)據(jù)時(shí),首先會(huì)自動(dòng)將要進(jìn)行比較的數(shù)據(jù)類型轉(zhuǎn)換為相同的數(shù)據(jù)類型,然后進(jìn)行比較。運(yùn)算符“===”和“!==”在比較不同類型的數(shù)據(jù)時(shí),不會(huì)進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。下面通過代碼演示比較運(yùn)算符的使用。console.log(13>12); //輸出結(jié)果為:trueconsole.log(13<12); //輸出結(jié)果為:falseconsole.log(13>=12); //輸出結(jié)果為:trueconsole.log(13<=12); //輸出結(jié)果為:falseconsole.log(13=='13'); //輸出結(jié)果為:trueconsole.log(13!=12); //輸出結(jié)果為:trueconsole.log(13==='13'); //輸出結(jié)果為:false2.3.4
比較運(yùn)算符掌握邏輯運(yùn)算符的使用,能夠靈活應(yīng)用邏輯運(yùn)算符完成運(yùn)算
先定一個(gè)小目標(biāo)!2.3.5
邏輯運(yùn)算符在開發(fā)中,有時(shí)只有多個(gè)條件同時(shí)成立時(shí)才會(huì)執(zhí)行后續(xù)的代碼,例如,只有用戶輸入有效的用戶名和密碼,才能登錄成功。在程序中,如果要實(shí)現(xiàn)條件的判斷,可以使用邏輯運(yùn)算符。2.3.5
邏輯運(yùn)算符JavaScript中常用的邏輯運(yùn)算符如下表所示。運(yùn)算符運(yùn)算示例結(jié)果&&與a&&b如果a的值為true,則結(jié)果為b的值;如果a的值為false,則結(jié)果為a的值||或a||b如果a的值為true,則結(jié)果為a的值;如果a的值為false,則結(jié)果為b的值!非!a如果a為true,則結(jié)果為false;如果a為false,則結(jié)果為true2.3.5
邏輯運(yùn)算符下面通過代碼演示邏輯運(yùn)算符的使用。//邏輯“與”
console.log(100&&200);
//輸出結(jié)果為:200
console.log(0&&123);
//輸出結(jié)果為:0
console.log(3>2&&4>3);
//輸出結(jié)果為:true
console.log(2<1&&3>1);
//輸出結(jié)果為:false
//邏輯“或”
console.log(100||200);
//輸出結(jié)果為:100
console.log(0||123);
//輸出結(jié)果為:123
console.log(3>2||4<3); //輸出結(jié)果為:true
console.log(2<1||3<1);
//輸出結(jié)果為:false
//邏輯“非”
console.log(!(2>1));
//輸出結(jié)果為:false
console.log(!(2<1));
//輸出結(jié)果為:true2.3.5
邏輯運(yùn)算符需要注意的是,在使用邏輯運(yùn)算符時(shí),是按從左到右的順序進(jìn)行求值的,在運(yùn)算時(shí)可能會(huì)出現(xiàn)“短路”的情況?!岸搪贰笔侵溉绻ㄟ^邏輯運(yùn)算符左邊的表達(dá)式能夠確定最終值,則不運(yùn)算邏輯運(yùn)算符右邊的表達(dá)式,具體說明如下。2.3.5
邏輯運(yùn)算符使用“&&”連接兩個(gè)表達(dá)式,語法為“左邊表達(dá)式&&右邊表達(dá)式”。如果左邊表達(dá)式的值為true,則結(jié)果為右邊表達(dá)式的值;如果左邊表達(dá)式的值為false,則結(jié)果為左邊表達(dá)式的值。使用“||”連接兩個(gè)表達(dá)式,語法為“左邊表達(dá)式||右邊表達(dá)式”。如果左邊表達(dá)式的值為true,則結(jié)果為左邊表達(dá)式的值;如果左邊表達(dá)式的值為false,則結(jié)果為右邊表達(dá)式的值。下面通過代碼演示出現(xiàn)“短路”的情況。vara=1;false&&a++; //&&短路情況console.log(a); //輸出結(jié)果為:1true||a++; //||短路情況console.log(a); //輸出結(jié)果為:12.3.5
邏輯運(yùn)算符掌握三元運(yùn)算符的使用,能夠靈活應(yīng)用三元運(yùn)算符完成運(yùn)算
先定一個(gè)小目標(biāo)!2.3.6
三元運(yùn)算符三元運(yùn)算符包括“?”和“:”,用于組成三元表達(dá)式。三元表達(dá)式用于根據(jù)條件表達(dá)式的值來決定是“?”后面的表達(dá)式被運(yùn)行還行“:”后面的表達(dá)式被運(yùn)行。2.3.6
三元運(yùn)算符三元運(yùn)算符的語法格式如下。條件表達(dá)式?表達(dá)式1:表達(dá)式22.3.6
三元運(yùn)算符上述語法格式中,如果條件表達(dá)式的值為true,則返回表達(dá)式1的運(yùn)行結(jié)果;如果條件表達(dá)式的值為false,則返回表達(dá)式2的運(yùn)行結(jié)果。下面通過代碼演示三元運(yùn)算符的使用。varage=prompt('請(qǐng)輸入您的年齡');varstatus=age>=18?'已成年':'未成年';document.write(status);2.3.6
三元運(yùn)算符上述示例代碼用于根據(jù)用戶輸入的年齡判斷用戶是已成年還是未成年。如果用戶輸入的年齡是13,則首先運(yùn)行條件表達(dá)式“age>=18”,因?yàn)閍ge的值是13,而13小于18,所以條件表達(dá)式的值為false,此時(shí)就會(huì)將'未成年'賦值給變量status,最后在頁面中輸出的結(jié)果為“未成年”。同理,如果用戶輸入的年齡是18,則頁面中輸出的結(jié)果為“已成年”。掌握位運(yùn)算符的使用,能夠靈活應(yīng)用位運(yùn)算符完成運(yùn)算
先定一個(gè)小目標(biāo)!2.3.7
位運(yùn)算符位運(yùn)算符用于對(duì)數(shù)據(jù)進(jìn)行二進(jìn)制運(yùn)算。在運(yùn)算時(shí),位運(yùn)算符會(huì)將參與運(yùn)算的操作數(shù)視為由二進(jìn)制數(shù)(0和1)組成的32位的串。例如,十進(jìn)制數(shù)字9用二進(jìn)制表示為00000000000000000000000000001001,可以簡寫為1001。位運(yùn)算符在運(yùn)算時(shí),會(huì)將二進(jìn)制的每一位進(jìn)行運(yùn)算。2.3.7
位運(yùn)算符注意JavaScript中位運(yùn)算符僅能對(duì)數(shù)字型數(shù)據(jù)進(jìn)行運(yùn)算。在對(duì)數(shù)字型數(shù)據(jù)進(jìn)行位運(yùn)算之前,程序會(huì)將所有的操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后逐位運(yùn)算。JavaScript中常用的位運(yùn)算符如下表所示。運(yùn)算符名稱示例說明&按位“與”a&b將操作數(shù)進(jìn)行按位“與”運(yùn)算,如果兩個(gè)二進(jìn)制位都是1,則該位的運(yùn)算結(jié)果為1,否則為0|按位“或”a|b將操作數(shù)進(jìn)行按位“或”運(yùn)算,如果二進(jìn)制位上有一個(gè)值是1,則該位的運(yùn)算結(jié)果就是1,否則為0~按位“非”~a將操作數(shù)進(jìn)行按位“非”運(yùn)算,如果二進(jìn)制位為0,則按位“非”的結(jié)果為1;如果二進(jìn)制位為1,則按位“非”的結(jié)果為0^按位“異或”a^b將操作數(shù)進(jìn)行按位“異或”運(yùn)算,如果二進(jìn)制位相同,則按位“異或”的結(jié)果為0,否則為1<<
左移a<<b將操作數(shù)的二進(jìn)制位按照指定位數(shù)向左移動(dòng),運(yùn)算時(shí),右邊的空位補(bǔ)0,左邊移走的部分舍去>>
右移a>>b將操作數(shù)的二進(jìn)制位按照指定位數(shù)向右移動(dòng),運(yùn)算時(shí),左邊的空位根據(jù)原數(shù)的符號(hào)位補(bǔ)0或者1,原來是負(fù)數(shù)就補(bǔ)1,是正數(shù)就補(bǔ)0>>>
無符號(hào)右移a>>>b將操作數(shù)的二進(jìn)制位按照指定位數(shù)向右移動(dòng),不考慮原數(shù)正負(fù),運(yùn)算時(shí),左邊的空位補(bǔ)02.3.7
位運(yùn)算符下面通過代碼演示位運(yùn)算符的使用。console.log(15&9);
//輸出結(jié)果為:9(相當(dāng)于1111&1001=1001)console.log(15|9);
//輸出結(jié)果為:15(相當(dāng)于1111|1001=1111)console.log(~15);
//輸出結(jié)果為:-16(相當(dāng)于~1111=-10000)console.log(15^9);
//輸出結(jié)果為:6(相當(dāng)于1111^1001
=110)console.log(9<<2);
//輸出結(jié)果為:36(相當(dāng)于1001<<2=100100)console.log(9>>2);
//輸出結(jié)果為:2(相當(dāng)于1001>>2=10)console.log(19>>>2);
//輸出結(jié)果為:4(相當(dāng)于10011>>>2=100)2.3.7
位運(yùn)算符掌握數(shù)據(jù)類型檢測運(yùn)算符的使用,能夠應(yīng)用typeof運(yùn)算符完成數(shù)據(jù)類型檢測
先定一個(gè)小目標(biāo)!2.3.8
數(shù)據(jù)類型檢測運(yùn)算符在進(jìn)行數(shù)學(xué)計(jì)算時(shí),需要確保參與運(yùn)算的數(shù)據(jù)是數(shù)字型數(shù)據(jù),否則會(huì)產(chǎn)生錯(cuò)誤的計(jì)算結(jié)果。因此,需要在運(yùn)算前檢測數(shù)據(jù)的類型。在JavaScript中,可以使用typeof運(yùn)算符進(jìn)行數(shù)據(jù)類型的檢測。2.3.8
數(shù)據(jù)類型檢測運(yùn)算符typeof運(yùn)算符以字符串形式返回檢測結(jié)果,語法格式如下。//第1種語法格式typeof需要進(jìn)行數(shù)據(jù)類型檢測的數(shù)據(jù)//第2種語法格式typeof(需要進(jìn)行數(shù)據(jù)類型檢測的數(shù)據(jù))2.3.8
數(shù)據(jù)類型檢測運(yùn)算符在上述語法格式中,第1種語法格式只能檢測單個(gè)操作數(shù);第2種語法格式可以對(duì)表達(dá)式進(jìn)行檢測。下面通過代碼演示如何使用typeof運(yùn)算符檢測數(shù)據(jù)類型。console.log(typeof23); //輸出結(jié)果為:numberconsole.log(typeof'水果');
//輸出結(jié)果為:stringconsole.log(typeoffalse); //輸出結(jié)果為:booleanconsole.log(typeofnull); //輸出結(jié)果為:objectconsole.log(typeofundefined);
//輸出結(jié)果為:undefined2.3.8
數(shù)據(jù)類型檢測運(yùn)算符此外,使用typeof運(yùn)算符還可以很方便地檢測輸入變量的數(shù)據(jù)類型,示例代碼如下。varpassword=prompt('請(qǐng)輸入您的密碼:');console.log(password);console.log(typeofpassword);2.3.8
數(shù)據(jù)類型檢測運(yùn)算符值得一提的是,在JavaScript中,typeof是一個(gè)一元運(yùn)算符,如果typeof放在一個(gè)操作數(shù)之前,則操作數(shù)可以是任意類型的數(shù)據(jù),其返回結(jié)果是字符串。使用比較運(yùn)算符“==”可以判斷typeof返回的檢測結(jié)果是否符合預(yù)期,示例代碼如下。varpassword='123456'; console.log(typeofpassword=='string'); //輸出結(jié)果為:trueconsole.log(typeofpassword=='number'); //輸出結(jié)果為:false了解運(yùn)算符的優(yōu)先級(jí),能夠說出優(yōu)先級(jí)最高的運(yùn)算符
先定一個(gè)小目標(biāo)!2.3.9
運(yùn)算符優(yōu)先級(jí)在日常生活中,我們經(jīng)常會(huì)在車站、港口、機(jī)場等場所看到“軍人依法優(yōu)先”的標(biāo)示牌,表示軍人在出行過程中享有優(yōu)先的權(quán)利,彰顯了國家和社會(huì)對(duì)軍人職業(yè)的尊崇。在JavaScript中,運(yùn)算符也遵循先后順序,這種順序稱作運(yùn)算符優(yōu)先級(jí)。2.3.9
運(yùn)算符優(yōu)先級(jí)JavaScript中的運(yùn)算符優(yōu)先級(jí)如下表所示。結(jié)合方向運(yùn)算符無()左(new除外).、[]、new(有參數(shù),無結(jié)合性)右new(無參數(shù))無++(后置)、--(后置)右!、~、-(負(fù)數(shù))、+(正數(shù))、++(前置)、--(前置)、typeof、void、delete右**左*、/、%左+、-左<<、>>、>>>2.3.9
運(yùn)算符優(yōu)先級(jí)>>續(xù)上一頁表結(jié)合方向運(yùn)算符左<、<=、>、>=、in、instanceof左==、!=、===、!==左&左^左|左&&左||右?:右=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、^=、|=左,2.3.9
運(yùn)算符優(yōu)先級(jí)在JavaScript的運(yùn)算符中小括號(hào)“()”的優(yōu)先級(jí)最高,在進(jìn)行運(yùn)算時(shí)首先計(jì)算小括號(hào)內(nèi)的表達(dá)式。如果表達(dá)式中有多個(gè)小括號(hào),則最內(nèi)層小括號(hào)的優(yōu)先級(jí)最高。2.3.9
運(yùn)算符優(yōu)先級(jí)下面通過代碼演示未加小括號(hào)的表達(dá)式和加小括號(hào)的表達(dá)式的運(yùn)算順序。console.log(3+4*5);
//輸出結(jié)果為:23console.log((3+4)*5);
//輸出結(jié)果為:352.3.9
運(yùn)算符優(yōu)先級(jí)當(dāng)表達(dá)式中有多種運(yùn)算符時(shí),可根據(jù)需要為表達(dá)式添加小括號(hào),這樣可以使代碼更清楚,并且可以避免錯(cuò)誤的發(fā)生。掌握計(jì)算圓的周長和面積的案例,能夠編寫代碼實(shí)現(xiàn)案例2.3.10【案例】計(jì)算圓的周長和面積
先定一個(gè)小目標(biāo)!本案例要求運(yùn)用運(yùn)算符的知識(shí),實(shí)現(xiàn)計(jì)算圓的周長和面積。其中,計(jì)算圓的周長的公式為2
r,計(jì)算圓的面積的公式為
r2。公式中,
表示圓周率,在代碼中使用圓周率的近似值3.14;r表示圓的半徑。下面根據(jù)公式編寫代碼實(shí)現(xiàn)計(jì)算圓的周長和面積。2.3.10【案例】計(jì)算圓的周長和面積2.3.10【案例】計(jì)算圓的周長和面積流程控制2.4掌握選擇結(jié)構(gòu)語句,能夠根據(jù)實(shí)際需求選擇合適的選擇結(jié)構(gòu)語句2.4.1
選擇結(jié)構(gòu)
先定一個(gè)小目標(biāo)!JavaScript提供了選擇結(jié)構(gòu)語句(或稱為條件判斷語句)來實(shí)現(xiàn)程序的選擇結(jié)構(gòu)。選擇結(jié)構(gòu)語句是指根據(jù)語句中的條件進(jìn)行判斷,進(jìn)而運(yùn)行與條件相對(duì)應(yīng)的代碼。常用的選擇結(jié)構(gòu)語句有if語句、if…else語句、if…elseif…else語句和switch語句。2.4.1
選擇結(jié)構(gòu)if語句也稱為單分支語句、條件語句,具體語法格式如下。2.4.1
選擇結(jié)構(gòu)1.if語句if(條件表達(dá)式){
代碼段}上述語法格式中,條件表達(dá)式的值是一個(gè)布爾值,當(dāng)該值為true時(shí),運(yùn)行大括號(hào)“{}”中的代碼段,否則不進(jìn)行任何處理。如果代碼段中只有一條語句,則可以省略大括號(hào)“{}”。if語句的運(yùn)行流程如下圖所示。2.4.1
選擇結(jié)構(gòu)下面通過代碼演示if語句的使用,實(shí)現(xiàn)只有當(dāng)年齡大于或等于18周歲時(shí),才輸出“已成年”,否則不輸出任何信息。2.4.1
選擇結(jié)構(gòu)varage=23;
//聲明變量age并賦值為23if(age>=18){
console.log('已成年');
//在控制臺(tái)輸出“已成年”}if…else語句也稱為雙分支語句,具體語法格式如下。2.4.1
選擇結(jié)構(gòu)2.if…else語句if(條件表達(dá)式){
代碼段1}else{
代碼段2}上述語法格式中,當(dāng)條件表達(dá)式的值為true時(shí),運(yùn)行代碼段1;當(dāng)條件表達(dá)式的值為false時(shí),運(yùn)行代碼段2。if…else語句的運(yùn)行流程如下圖所示。2.4.1
選擇結(jié)構(gòu)下面演示if…else語句的使用,實(shí)現(xiàn)當(dāng)年齡大于等于18周歲時(shí),輸出“已成年”,否則輸出“未成年”,示例代碼如下。2.4.1
選擇結(jié)構(gòu)varage=17; //聲明變量age并賦值為17if(age>=18){
console.log('已成年'); //當(dāng)age>=18時(shí)在控制臺(tái)輸出“已成年”}else{console.log('未成年'); //當(dāng)age<18時(shí)在控制臺(tái)輸出“未成年”}if…elseif…else語句也稱為多分支語句,是指有多個(gè)條件的語句,可針對(duì)不同情況進(jìn)行不同的處理,具體語法格式如下。2.4.1
選擇結(jié)構(gòu)3.if…elseif…else語句if(條件表達(dá)式1){
代碼段1}elseif(條件表達(dá)式2){
代碼段2}…elseif(條件表達(dá)式n){
代碼段n}else{
代碼段n+1}在if…elseif…else語句語法格式中,當(dāng)條件表達(dá)式1的值為true時(shí),運(yùn)行代碼段1;當(dāng)條件表達(dá)式1的值為false時(shí),繼續(xù)判斷條件表達(dá)式2的值,當(dāng)條件表達(dá)式2的值為true時(shí),運(yùn)行代碼段2,以此類推。如果所有表達(dá)式的值都為false,則運(yùn)行最后else中的代碼段n+1,如果最后沒有else,則直接結(jié)束。2.4.1
選擇結(jié)構(gòu)if…elseif…else語句的運(yùn)行流程如下圖所示。2.4.1
選擇結(jié)構(gòu)下面通過代碼演示if…elseif…else語句的使用,實(shí)現(xiàn)對(duì)學(xué)生考試成績按分?jǐn)?shù)進(jìn)行等級(jí)的劃分:90~100分為優(yōu)秀;80~90分為良好;70~80分為中等;60~70分為及格;小于60分為不及格。2.4.1
選擇結(jié)構(gòu)varscore=78; //聲明變量score并賦值為78if(score>=90){console.log('優(yōu)秀'); //當(dāng)score>=90時(shí)在控制臺(tái)輸出“優(yōu)秀”}elseif(score>=80){console.log('良好'); //當(dāng)score>=80時(shí)在控制臺(tái)輸出“良好”}elseif(score>=70){console.log('中等'); //當(dāng)score>=70時(shí)在控制臺(tái)輸出“中等”}elseif(score>=60){console.log('及格'); //當(dāng)score>=60時(shí)在控制臺(tái)輸出“及格”}else{console.log('不及格'); //當(dāng)score<60時(shí)在控制臺(tái)輸出“不及格”}switch語句也稱為多分支語句,該語句與if…elseif…else語句類似,區(qū)別是switch語句只能針對(duì)某個(gè)表達(dá)式的值做出判斷,從而決定運(yùn)行哪一段代碼。與if…elseif…else語句相比,switch語句可以使代碼更加清晰簡潔,便于閱讀。2.4.1
選擇結(jié)構(gòu)4.switch語句switch語句的具體語法格式如下。2.4.1
選擇結(jié)構(gòu)switch(表達(dá)式){case值1
代碼段1;break;case值2
代碼段2;break;…default:
代碼段n;}在switch語句的語法格式中,首先計(jì)算表達(dá)式的值,然后將表達(dá)式的值和每個(gè)case的值進(jìn)行比較,當(dāng)數(shù)據(jù)類型不同時(shí)會(huì)自動(dòng)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,如果表達(dá)式的值和case的值相等,則運(yùn)行case后對(duì)應(yīng)的代碼段。當(dāng)遇到break語句時(shí)跳出switch語句,如果省略break語句,則將繼續(xù)運(yùn)行下一個(gè)case后面的代碼段。如果所有case的值與表達(dá)式的值都不相等,則運(yùn)行default后面的代碼段。需要說明的是,default是可選的,可以根據(jù)實(shí)際需要進(jìn)行設(shè)置。2.4.1
選擇結(jié)構(gòu)switch語句的運(yùn)行流程如下圖所示。2.4.1
選擇結(jié)構(gòu)下面演示switch語句的使用,實(shí)現(xiàn)判斷變量week的值,當(dāng)week變量的值為1~6時(shí),輸出星期一~星期六,當(dāng)變量week的值為0時(shí),輸出星期日。如果沒有與變量week的值相等的case值,則輸出“輸入錯(cuò)誤,請(qǐng)重新輸入”。2.4.1
選擇結(jié)構(gòu)掌握查詢蔬菜的價(jià)格的案例,能夠編寫代碼實(shí)現(xiàn)案例2.4.2
【案例】查詢蔬菜的價(jià)格
先定一個(gè)小目標(biāo)!在日常生活中,我們?nèi)コ匈徺I蔬菜,結(jié)賬時(shí)售貨員會(huì)通過查詢蔬菜的價(jià)格來計(jì)算總價(jià)。例如,在對(duì)蔬菜稱重時(shí),當(dāng)售貨員輸入“芹菜”時(shí),查詢芹菜的價(jià)格;輸入“黃瓜”時(shí),查詢黃瓜的價(jià)格。下面將通過一個(gè)案例演示使用switch語句實(shí)現(xiàn)查詢蔬菜的價(jià)格。2.4.2
【案例】查詢蔬菜的價(jià)格本案例要求定義一個(gè)用于保存售貨員輸入的蔬菜名稱的變量vegetable,然后使用switch語句實(shí)現(xiàn)查詢對(duì)應(yīng)蔬菜的價(jià)格。當(dāng)售貨員輸入需要查詢的蔬菜名稱后,控制臺(tái)會(huì)輸出對(duì)應(yīng)的蔬菜價(jià)格,其中,芹菜的價(jià)格是3.2元/kg;黃瓜的價(jià)格是2.5元/kg;蓮藕的價(jià)格是9.0元/kg;土豆的價(jià)格是1.2元/kg。如果輸入的蔬菜名稱不存在,則輸出“沒有此蔬菜”。2.4.2
【案例】查詢蔬菜的價(jià)格2.4.2
【案例】查詢蔬菜的價(jià)格掌握循環(huán)結(jié)構(gòu)語句,能夠根據(jù)實(shí)際需求選擇合適的循環(huán)結(jié)構(gòu)語句2.4.3
循環(huán)結(jié)構(gòu)
先定一個(gè)小目標(biāo)!循環(huán)結(jié)構(gòu)是為了在程序中反復(fù)運(yùn)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu),它用于實(shí)現(xiàn)一段代碼的重復(fù)運(yùn)行。例如,連續(xù)輸出1~100的整數(shù),如果不使用循環(huán)結(jié)構(gòu),則需要編寫100次輸出代碼才能實(shí)現(xiàn),而使用循環(huán)結(jié)構(gòu),僅使用幾行代碼就能讓程序自動(dòng)輸出。2.4.3
循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,由循環(huán)體和循環(huán)的終止條件組成的語句稱為循環(huán)語句,一組被重復(fù)運(yùn)行的語句稱為循環(huán)體,循環(huán)結(jié)束的條件稱為終止條件。循環(huán)體能否重復(fù)運(yùn)行,取決于循環(huán)的終止條件。在JavaScript中,提供了3種循環(huán)語句,分別是for語句、while語句、do…while語句。2.4.3
循環(huán)結(jié)構(gòu)在程序開發(fā)中,for語句通常用于循環(huán)次數(shù)已知的情況,其語法格式如下。1.for語句2.4.3
循環(huán)結(jié)構(gòu)for(初始化變量;條件表達(dá)式;操作表達(dá)式){
循環(huán)體}初始化變量:初始化一個(gè)用于作為計(jì)數(shù)器的變量,通常使用var關(guān)鍵字聲明一個(gè)變量并賦初始值。條件表達(dá)式:決定循環(huán)是否繼續(xù),即循環(huán)的終止條件。操作表達(dá)式:通常用于對(duì)計(jì)數(shù)器變量進(jìn)行更新,是每次循環(huán)中最后運(yùn)行的代碼。for語句的運(yùn)行流程如下圖所示。2.4.3
循環(huán)結(jié)構(gòu)下面演示for語句的使用。使用for語句實(shí)現(xiàn)在控制臺(tái)中輸出1~100的整數(shù),示例代碼如下。2.4.3
循環(huán)結(jié)構(gòu)for(vari=1;i<=100;i++){console.log(i);
//輸出12
3
4
5
6,…,100}for語句示例代碼中的運(yùn)行流程如下。2.4.3
循環(huán)結(jié)構(gòu)運(yùn)行“vari=1”以初始化變量。判斷“i<=100”的值是否為true,如果為true,則進(jìn)入第③步,否則結(jié)束循環(huán)。運(yùn)行循環(huán)體,通過“console.log(i)”輸出變量i的值。運(yùn)行“i++”,將i的值加1。判斷“i<=100”的值是否為true,和第②步相同。只要滿足“i<=100”這個(gè)條件,就會(huì)一直循環(huán)。當(dāng)i的值加到101時(shí),判斷結(jié)果為false,循環(huán)結(jié)束。while語句和for語句可以相互轉(zhuǎn)換,都能夠?qū)崿F(xiàn)循環(huán)。在無法確定循環(huán)次數(shù)的情況下,while語句更適合用于實(shí)現(xiàn)循環(huán)。while語句的語法格式如下。2.while語句2.4.3
循環(huán)結(jié)構(gòu)while(條件表達(dá)式){
循環(huán)體}上述語法格式中,如果條件表達(dá)式的值為true,則循環(huán)運(yùn)行循環(huán)體,直到條件表達(dá)式的值為false才結(jié)束循環(huán)。while語句的運(yùn)行流程如下圖所示。2.4.3
循環(huán)結(jié)構(gòu)下面使用while語句實(shí)現(xiàn)在控制臺(tái)中輸出1~100的整數(shù),示例代碼如下。2.4.3
循環(huán)結(jié)構(gòu)vari=1;while(i<=100){console.log(i);i++;}使用while語句實(shí)現(xiàn)在控制臺(tái)中輸出1~100的整數(shù)的運(yùn)行流程如下。2.4.3
循環(huán)結(jié)構(gòu)運(yùn)行“vari=1”以初始化變量。判斷“i<=100”的值是否為true,如果為true,則進(jìn)入第③步,否則結(jié)束循環(huán)。運(yùn)行循環(huán)體,通過“console.log(i)”輸出變量i的值。運(yùn)行“i++”,將i的值加1。判斷“i<=100”的值是否為true,和第②步相同。只要滿足“i<=100”這個(gè)條件,就會(huì)一直循環(huán)。當(dāng)i的值加到101時(shí),判斷結(jié)果為false,循環(huán)結(jié)束。do…while語句和while語句類似,其區(qū)別在于while語句是先判斷條件表達(dá)式的值,再根據(jù)條件表達(dá)式的值決定是否運(yùn)行循環(huán)體,而do…while語句會(huì)無條件地運(yùn)行一次循環(huán)體,然后判斷條件表達(dá)式的值,根據(jù)條件表達(dá)式的值決定是否
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年徐州從業(yè)資格證貨運(yùn)考試答案
- 2025年婁底貨運(yùn)從業(yè)資格證考試內(nèi)容
- 2025年貨運(yùn)從業(yè)資格證模擬考試0題
- 2025年吉安運(yùn)輸從業(yè)資格證考試試題庫
- 第二章運(yùn)動(dòng)與能量練習(xí)2023-2024學(xué)年教科版物理八年級(jí)上冊(cè)
- 軟件公司員工手冊(cè)
- 智能控制規(guī)劃服務(wù)承諾書
- 實(shí)驗(yàn)室安全防護(hù)設(shè)施配置與維護(hù)
- 商業(yè)活動(dòng)臨時(shí)化妝師聘用書
- 商標(biāo)使用許可合同范本
- 國際疾病分類手術(shù)碼(ICD-9-CM-3)使用手冊(cè)
- 物資部對(duì)標(biāo)管理實(shí)施方案
- 上海工程技術(shù)大學(xué)《管理信息系統(tǒng)》 ~學(xué)年 第 一 學(xué)期 實(shí)驗(yàn)報(bào)告
- 職工醫(yī)?;鶖?shù)調(diào)整對(duì)比明細(xì)表Excel模板
- 送你一個(gè)字評(píng)語2022
- 放射科優(yōu)質(zhì)護(hù)理服務(wù)PPT學(xué)習(xí)教案
- GB_T 22627-2022水處理劑 聚氯化鋁_(高清-最新版)
- 教學(xué)團(tuán)隊(duì)建設(shè)總結(jié)報(bào)告
- 破產(chǎn)法PPT課件
- 看守所釋放證明書
- 魚骨圖-PPT模板
評(píng)論
0/150
提交評(píng)論