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