更新時(shí)間:2023-04-14 來(lái)源:黑馬程序員 瀏覽量:
數(shù)據(jù)類型:
雖然js是弱數(shù)據(jù)類型的語(yǔ)言,但是js中也存在數(shù)據(jù)類型,js中的數(shù)據(jù)類型分為 :原始類型 和 引用類型,具體有如下類型。
| 數(shù)據(jù)類型 | 描述 | | --------- | -------------------------------------------------- | | number | 數(shù)字(整數(shù)、小數(shù)、NaN(Not a Number)) | | string | 字符串,單雙引皆可 | | boolean | 布爾。true,false | | null | 對(duì)象為空 | | undefined | 當(dāng)聲明的變量未初始化時(shí),該變量的默認(rèn)值是 undefined |
使用typeof函數(shù)可以返回變量的數(shù)據(jù)類型,接下來(lái)我們需要通過(guò)書(shū)寫(xiě)代碼來(lái)演示js中的數(shù)據(jù)類型
第一步:在VS Code中創(chuàng)建名為13. JS-基礎(chǔ)語(yǔ)法-數(shù)據(jù)類型.html的文件
第二步:編寫(xiě)如下代碼,然后直接挨個(gè)觀察數(shù)據(jù)類型:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS-數(shù)據(jù)類型</title> </head> <body> </body> <script> //原始數(shù)據(jù)類型 alert(typeof 3); //number alert(typeof 3.14); //number alert(typeof "A"); //string alert(typeof 'Hello');//string alert(typeof true); //boolean alert(typeof false);//boolean alert(typeof null); //object var a ; alert(typeof a); //undefined </script> </html>
js的運(yùn)算符
js中的運(yùn)算符,js中的運(yùn)算規(guī)則絕大多數(shù)還是和java中一致的,具體運(yùn)算符如下:
| 運(yùn)算規(guī)則 | 運(yùn)算符 | | ---------- | ------------------------------------------------------------ | | 算術(shù)運(yùn)算符 | + , - , * , / , % , ++ , -- | | 賦值運(yùn)算符 | = , += , -= , *= , /= , %= | | 比較運(yùn)算符 | > , < , >= , <= , != , == , === 注意 == 會(huì)進(jìn)行類型轉(zhuǎn)換,=== 不會(huì)進(jìn)行類型轉(zhuǎn)換 | | 邏輯運(yùn)算符 | && , \|\| , ! | | 三元運(yùn)算符 | 條件表達(dá)式 ? true_value: false_value |
接下來(lái)我們通過(guò)代碼來(lái)演示js中的運(yùn)算法,主要記憶js中和java中不一致的地方
第一步:在VS Code中創(chuàng)建名為14. JS-基礎(chǔ)語(yǔ)法-運(yùn)算符.html的文件
第二步:編寫(xiě)代碼
在js中,絕大多數(shù)的運(yùn)算規(guī)則和java中是保持一致的,但是js中的\==和===是有區(qū)別的。
- \==:只比較值是否相等,不區(qū)分?jǐn)?shù)據(jù)類型,哪怕類型不一致,==也會(huì)自動(dòng)轉(zhuǎn)換類型進(jìn)行值得比較
- ===:不光比較值,還要比較類型,如果類型不一致,直接返回false
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS-運(yùn)算符</title> </head> <body> </body> <script> var age = 20; var _age = "20"; var $age = 20; alert(age == _age);//true ,只比較值 alert(age === _age);//false ,類型不一樣 alert(age === $age);//true ,類型一樣,值一樣 </script> </html>
在js中,雖然不區(qū)分?jǐn)?shù)據(jù)類型,但是有時(shí)候涉及到數(shù)值計(jì)算,還是需要進(jìn)行類型轉(zhuǎn)換的,js中可以通過(guò)parseInt()函數(shù)來(lái)進(jìn)行將其他類型轉(zhuǎn)換成數(shù)值類型。注釋之前的代碼,添加代碼如下:
// 類型轉(zhuǎn)換 - 其他類型轉(zhuǎn)為數(shù)字 alert(parseInt("12")); //12 alert(parseInt("12A45")); //12 alert(parseInt("A45"));//NaN (not a number)
除此之外,在js中,還有非常重要的一點(diǎn)是:0,null,undefined,"",NaN理解成false,反之理解成true。注釋掉之前的代碼,添加如下代碼:
if(0){ //false alert("0 轉(zhuǎn)換為false"); }
瀏覽器刷新頁(yè)面,發(fā)現(xiàn)沒(méi)有任何彈框,因?yàn)?理解成false,所以條件不成立。注釋掉上述代碼,添加如下代碼:
if(1){ //true alert("除0和NaN其他數(shù)字都轉(zhuǎn)為 true"); }
瀏覽器刷新,因?yàn)?理解成true,條件成立,所以瀏覽器效果如下;