一癞谒、JS中的數(shù)據(jù)類型有7種
1.數(shù)字 number
2.字符串 string
3.布爾 bool
4.符號(hào) symbol
5.空 undefined
6.空 null
7.對(duì)象 object
1.數(shù)字 number?
寫(xiě)法
整數(shù)寫(xiě)法:1
小數(shù)寫(xiě)法:0.1
科學(xué)計(jì)數(shù)法:1.23e4
八進(jìn)制寫(xiě)法(用得少):0123或00123或0o123
十六進(jìn)制寫(xiě)法:0x3F或0X3F
二進(jìn)制寫(xiě)法:0b11或0B11?
特殊值
正0和負(fù)0:都等于0,要嚴(yán)謹(jǐn)
無(wú)窮大:Infinity蠢络、+Infinity、-Infinity
無(wú)法表示的數(shù)字:NaN(Not a Number)迟蜜,但它是一個(gè)數(shù)字:isNaN()可以判斷一個(gè)數(shù)是否為NaN刹孔,是返回false,不是返回true
2.字符串 string? 每個(gè)字符兩個(gè)字節(jié)(閹割版的utf-8)
寫(xiě)法
單引號(hào):'你好'
雙引號(hào):'你好'
反引號(hào):`你好`?
注意:引號(hào)不屬于字符串的一部分小泉,就像書(shū)名號(hào)不屬于書(shū)名的一部分一樣
這里我們來(lái)看下轉(zhuǎn)義芦疏,也就是用另一種方法表達(dá)你想要寫(xiě)的東西
\ '表示'
\ "表示"
\n 表示換行
\r 表示回車
\t 表示tab制表符
\\ 表示 \
\uFFFF 表示對(duì)應(yīng)的Unicode字符
\xFF 表示前256個(gè)Unicode字符
錯(cuò)誤寫(xiě)法
'it's ok'
JS引擎會(huì)認(rèn)為'it'就結(jié)束了冕杠,后面的看不懂
正確寫(xiě)法
'it\'s' ok'? // 這就是轉(zhuǎn)義
"it's ok"
`it's ok`
多行字符串(如果想在字符串里回車,用反引號(hào)很容易做到)
let s = `這里是
可以的
用反引號(hào)很容易做到`
字符串的長(zhǎng)度
String.length
'123'.length // 3
'\n\r\t'.length // 3
''.length // 0
' '.length // 1
通過(guò)下標(biāo)讀取字符
String[index]
let s = 'hello',
s[0] // 'h'
注意index從0開(kāi)始
s[0] 是第一個(gè)字符
注意index到length
let s = 'hello'
s[5] // undefined, 居然不報(bào)錯(cuò)
s[4] // '0'
base64轉(zhuǎn)碼(一般用來(lái)隱藏招聘啟事里的簡(jiǎn)歷)
windows.btoa
正常字符串轉(zhuǎn)為Base64編碼的字符串
windows.atob
Base64編碼的字符串 轉(zhuǎn)為原來(lái)的字符串
3.布爾 bool
只有兩個(gè)值 true或false酸茴,注意大小寫(xiě),
下列運(yùn)算符會(huì)得到bool值
否定運(yùn)算:
!value
相等運(yùn)算:
1===2分预、1!=2、3===4薪捍、3!=4
比較運(yùn)算:
1>2笼痹、1>=2、3<4酪穿、3<=4
if 配bool
if語(yǔ)句常常需要判斷真假
if(value){...}else{...}
五個(gè)falsy值
falsy就是相當(dāng)于false但又不是false的值
分別是:undefined凳干、null、0被济、NaN救赐、''
4.符號(hào) symbol
不怎么常用的數(shù)據(jù)類型
5.空 undefined &?6.空 null
區(qū)別
-沒(méi)有本質(zhì)區(qū)別
-細(xì)節(jié)一:如果一個(gè)變量聲明了,但是沒(méi)有賦值只磷,那么默認(rèn)值就是undefined经磅,而不是null
-細(xì)節(jié)二:如果一個(gè)函數(shù),沒(méi)有寫(xiě)return钮追,那么默認(rèn)return undefined预厌,而不是null
-細(xì)節(jié)三:前端程序員習(xí)慣上,把非對(duì)象的空值寫(xiě)成undefined元媚,把對(duì)象的空值寫(xiě)成null轧叽,但這僅僅是習(xí)慣上的
--------------------------------------------------------------------------------------------
判斷數(shù)據(jù)的類型 typeof
var num = 10; console.log(typeof num); // number
var str = 'william'; console.log(typeof str); // string
var william = true; console.log(typeof william); // boolean
var a = undefined; console.log(typeof a); // undefined
var b = null; console.log(typeof b); // object
--------------------------------------------------------------------------------------------
7.對(duì)象 object
見(jiàn)JS對(duì)象博客
http://www.reibang.com/p/aff130d82bb0
二、類型轉(zhuǎn)換
number=>string
String(n)
n+'' (更簡(jiǎn)單)
string=>number
Number(s)
parseInt(s) // 取整數(shù)
parseFloat(s) // 可以是小數(shù)
s-0?
+s?
x=>bool // 把任何一個(gè)東西變?yōu)椴紶?/b>
Boolean(x)
!!x (更簡(jiǎn)單)
x=>string
String(x)
x.toString()
如:(1).toString
三刊棕、變量聲明
三種聲明方式
var a = 1
let a = 1
const a = 1
a = 1
區(qū)別
var是過(guò)時(shí)的炭晒,不好用的方式
let是新的,更合理的方式
const是聲明書(shū)必須賦值鞠绰,且不能再改的方式
最后這種方式是錯(cuò)的腰埂,不準(zhǔn)這樣聲明
var聲明
直接跳過(guò),寫(xiě)代碼不用
let聲明
規(guī)則
遵循塊作用域蜈膨,即使用范圍不能超出{}
不能重復(fù)聲明
可以賦值屿笼,也可以不賦值
必須先聲明再使用,否則報(bào)錯(cuò)
全局聲明的let變量翁巍,不會(huì)變成windows屬性
for循環(huán)配合let有奇效
const聲明
規(guī)則
跟let幾乎一樣
只有一條不一樣:聲明時(shí)就要賦值驴一,賦值后不能改
變量聲明
指定值:var a = 1
同時(shí)也指定了類型:var a = 1
但是值和類型都可以隨意變化:a = 2? /? a = '字符串'
name和'name'的區(qū)別
name是變量,值可以變灶壶,可以是'name'肝断,也可以是'hello'
'name'是字符串常量,常量就是不變量,'name'只能是'name'胸懈,不能是其他值