個(gè)人證書查詢網(wǎng)全國聯(lián)網(wǎng)南寧seo優(yōu)化公司排名
數(shù)據(jù)類型
計(jì)算機(jī)世界中的萬事萬物都是數(shù)據(jù)。
計(jì)算機(jī)程序可以處理大量的數(shù)據(jù),為什么要給數(shù)據(jù)分類?
- 更加充分和高效的利用內(nèi)存
- 也更加方便程序員的使用數(shù)據(jù)
基本數(shù)據(jù)類型
number 數(shù)字型
- JavaScript中正數(shù)、負(fù)數(shù)、小數(shù)等統(tǒng)一稱為number
- JS是弱數(shù)據(jù)類型,變量到底屬于哪種類型,只有賦值之后,才能確定
- Java是強(qiáng)數(shù)據(jù)類型,例如: int a = 3,必須是整數(shù)
- 可以進(jìn)行+、-、*、/、%的運(yùn)算
- *、/、%的優(yōu)先級相同
NaN
代表一個(gè)計(jì)算錯(cuò)誤。它是一個(gè)不正確的或者一個(gè)未定義的數(shù)字操作所得到的結(jié)果
console.log("good" - 2) //輸出:NaN
NaN是粘性的。任何對NaN的操作都會返回NaN
console.log(NaN+2) // 輸出:NaN
甚至兩個(gè)NaN都不相等
console.log(NaN === NaN) // 輸出:false
string 字符串型
通過單引號(")、雙引號("")或反引號(`)包裹的數(shù)據(jù)都叫字符串,單引號和雙引號沒有本質(zhì)上的區(qū)別,推薦使用單引號。
string 字符串型
通過單引號(")、雙引號("")或反引號(`)包裹的數(shù)據(jù)都叫字符串,單引號和雙引號沒有本質(zhì)上的區(qū)別,推薦使用單引號。
模板字符串
使用場景
- 拼接字符串和變量
- 在沒有它之前,要拼接變量比較麻煩
語法
- ··(反引號)
- 內(nèi)容拼接變量時(shí),用${}包住變量
boolean 布爾型
只有兩個(gè)值:true和false
undefined 未定義型
未定義是比較特殊的類型,只有一個(gè)值undefined。
什么情況出現(xiàn)未定義類型?
只聲明變量,不賦值的情況下,變量的默認(rèn)值為undefined,一般很少【直接】為某個(gè)變量賦值為undefined。
let num
console.log(num)
開發(fā)場景
我們開發(fā)中經(jīng)常聲明一個(gè)變量,等待傳送過來的數(shù)據(jù)。
如果我們不知道這個(gè)數(shù)據(jù)是否傳遞過來,此時(shí)我們可以通過檢測這個(gè)變量是不是undefined,就判斷用戶是否有數(shù)據(jù)傳遞過來。
null 空類型
let obj = nullconfirm.log(obj)
引用數(shù)字類型
object 對象
檢測數(shù)據(jù)類型
通過typeof關(guān)鍵字檢測數(shù)據(jù)類型
typeof運(yùn)算符可以返回被檢測的數(shù)據(jù)類型。它支持兩種語法形式:
1.作為運(yùn)算符: typeof x(常用的寫法)
2.函數(shù)形式: typeof(x)
換言之,有括號和沒有括號,得到的結(jié)果是一樣的,所以我們直接使用運(yùn)算符的寫法。
let obj = null
console.log(typeof obj) // object
// 這是一個(gè)比較特殊的結(jié)果
類型轉(zhuǎn)換
隱式轉(zhuǎn)換
某些運(yùn)算符被執(zhí)行時(shí),系統(tǒng)內(nèi)部自動(dòng)將數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換稱為隱式轉(zhuǎn)換。
規(guī)則:
- +號兩邊只要有一個(gè)是字符串,都會把另外一個(gè)轉(zhuǎn)成字符串
- 除了+以外的算術(shù)運(yùn)算符,比如–、*、/等都會把數(shù)據(jù)轉(zhuǎn)成數(shù)字類型
缺點(diǎn):
- 轉(zhuǎn)換類型不明確,靠經(jīng)驗(yàn)才能總結(jié)
小技巧:
- +號作為正號解析可以轉(zhuǎn)換成數(shù)字型
- 任何數(shù)據(jù)和字符串相加結(jié)果都是字符串
console.log(2 + '2') // 22 stringconsole.log(2 - '2') // 0 numberconsole.log(+ '2') // 把字符串類型轉(zhuǎn)化為了數(shù)字型console.log(typeof + '2') // 類型為數(shù)字型
顯示轉(zhuǎn)換
- Number()
- 把對象的值轉(zhuǎn)換為數(shù)字,如果無法轉(zhuǎn)換為數(shù)字,那么Number()函數(shù)返回NaN
- parseInt()
- 分析一個(gè)字符串,并且返回一個(gè)整數(shù)
- parseFloat
- 分析一個(gè)字符串,并且返回一個(gè)浮點(diǎn)數(shù)
console.log(Number(str))// 1 顯示轉(zhuǎn)化// let age = Number(prompt('請輸入你的年齡')) // 轉(zhuǎn)化為數(shù)字型// 2 隱式轉(zhuǎn)換let age = + prompt('請輸入你的年齡')console.log(typeof age)console.log(parseInt('12ps')) // 只能取數(shù)字開頭的字符串中的整數(shù) 12console.log(parseInt('13.12ps')) // 只能取數(shù)字開頭的字符串中的整數(shù) 13console.log(parseInt('asd123dfa')) // 結(jié)果為NaN//................. console.log(parseFloat('12ps')) // 12console.log(parseFloat('13.12ps')) // 13.12console.log(parseFloat('asd123dfa')) // 結(jié)果為NaN
操作實(shí)例
let num1 = +prompt('請輸入第一個(gè)數(shù)字:')let num2 = +prompt('請輸入第二個(gè)數(shù)字:')alert(`兩個(gè)數(shù)之和為:${num1 + num2}`)
綜合案例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>h2 {text-align: center;/*給字體為h2的設(shè)為中心對齊*/}table {/*合并邊框*/border-collapse: collapse;/* 設(shè)置每個(gè)表格的高度為80px */height: 80px;/* 設(shè)置表格中的數(shù)據(jù)都居中對齊 */text-align: center;/* 讓塊元素水平劇中 */margin: 0 auto;}th {/* 設(shè)置表頭單元格的左右邊寬距 */padding: 5px 30px;/* padding: 10px 5px 15px 20px;上填充是 10px 右填充是 5px 下填充是 15px 左填充是 20px 順時(shí)針的 padding: 10px 5px 15px;上填充是 10px 右填充和左填充是 5px 下填充是 15px padding: 10px 5px;上填充和下填充是 10px 右填充和左填充是 5px padding: 10px;所有四個(gè)填充都是 10px */}table,th,td {border: 1px solid #000/*solid定義實(shí)現(xiàn)邊框*/}</style>
</head><body><h2>訂單付款確認(rèn)</h2><!-- 下面這個(gè)表達(dá)式的快捷鍵為:table>tr>th*5 --><!--tr table row 表示表格的一行td table data 表示表格的數(shù)據(jù)單元格th table header 表示表格的表頭單元格--><script>// 1 用戶輸入let price = +prompt('請輸入商品價(jià)格:')let num = +prompt('請輸入商品數(shù)量:')let address = prompt('請輸入收貨地址:')// 2 計(jì)算總額let total = price * num// 3 頁面打印document.write(`<table><tr><th>商品名稱</th><th>商品價(jià)格</th><th>商品數(shù)量</th><th>總價(jià)</th><th>收貨地址</th></tr><tr><td>HUAWEI Mate 60 Pro</td><td>${price}元</td><td>${num}</td><td>${total}元</td><td>${address}</td></tr></table>`)</script>
</body></html>