JavaScript中的變量類型
一、數(shù)
二搔体、字符串
三鞠柄、布爾值
四、函數(shù)
五嫉柴、對(duì)象
六、undefined
七奉呛、null
八计螺、數(shù)組
九、日期
十瞧壮、正則表達(dá)式
其中對(duì)于undefined和null的區(qū)別
undefined
是變量已經(jīng)被聲明登馒,但是未獲得初始化值,如:
const val
console.log(val) => undefined
null
表示 該變量指向一個(gè)不存在的對(duì)象或地址咆槽,null
類型為一個(gè)全局對(duì)象
此外陈轿,在基礎(chǔ)數(shù)學(xué)運(yùn)算中,null
值將被轉(zhuǎn)換為0
關(guān)于undefined和null的共同點(diǎn)
undefined
和null
取反之后均為true
console.log(!undefined) => true
console.log(!null) => true
變量作用域
變量可以分為全局變量和局部變量
全局變量在全局都有效
局部變量?jī)H在該變量所在代碼塊及其子代碼塊有效
var variable = 'global'
myVariable = 'global'
function var_fun(){
var variable = 'local'
return variable
}
function my_var_fun(){
myVariable = 'local'
return myVariable
}
console.log(variable) (1)
console.log(var_fun()) (2)
console.log(variable) (3)
console.log(myVariable) (4)
console.log(my_var_fun()) (5)
console.log(myVariable) (6)
分析
(1)因?yàn)?code>variable是一個(gè)全局變量秦忿,所以輸出global
(2)myVariable
是在var_fun
聲明的局部變量麦射,所以作用域僅在var_fun
內(nèi),輸出local
(3)仍然輸出global
灯谣,var_fun
中的myVariable
為局部變量潜秋,僅在var_fun
代碼塊生效,所以這里輸出的是全局的myVariable
(4)myVariable
沒有使用變量關(guān)鍵字修飾胎许,默認(rèn)為全局變量峻呛,輸出global
(5)在my_var_fun
內(nèi)罗售,因?yàn)闆]有使用變量關(guān)鍵字修飾,所以這里引用的是全局定義的myVariable
钩述,輸出global
(6)在(5)中寨躁,myVariable
被引用并修改,所以輸出local