1.JS中使用typeof能得到哪些類型
2.何時(shí)使用'===',何時(shí)使用'=='
3.JS有哪些內(nèi)置函數(shù)
4.JS變量按照存儲(chǔ)方式分為哪些類型,并描述其特點(diǎn)
5.如何理解JSON
知識(shí)點(diǎn)#####
- 值類型vs引用類型
//值類型
var a=100
var b=a
a=200
console.log(b) //100
//引用類型
var a={age:20}
var b=a
b.age=21
console.log(a.age) //21
引用類型:對(duì)象怜俐、數(shù)組改橘、函數(shù),由于引用類型占用內(nèi)存空間較大拧揽,所以會(huì)出現(xiàn)公用內(nèi)存空間的情況慰照,變量a,b是指向某個(gè)內(nèi)存空間的指針灶挟。而var b=a時(shí),其實(shí)是b又指向了與a相同的內(nèi)存空間毒租,{age:20}僅存在一份稚铣。
- typerof運(yùn)算符詳解
typeof undefined//undefined
typeof 'abc' //string
typeof '123' //number
typeof NaN //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object
typeof console.log //function
typeof不能詳細(xì)區(qū)分引用類型(對(duì)象、數(shù)組)的詳細(xì)類型蝌衔,但是可以詳細(xì)區(qū)分function以及所有值類型榛泛。
- 字符串拼接
var a=100+10 //110
var b=100+'10' //10010
100='100' //true
0=='' //true
null==undefined //true
'=='需要慎用,會(huì)試圖進(jìn)行類型轉(zhuǎn)換使前后相等
- if語(yǔ)句
var a=true
if(a){
//....執(zhí)行
}
var b=100
if(b){
//....執(zhí)行
}
var c=''
if(c){
//....不執(zhí)行
}
- 邏輯運(yùn)算符
console.log(10 & 0) //0 轉(zhuǎn)換為true&&0
console.log(''||'abc') //abc 轉(zhuǎn)換為false||'abc'
console.log(!window.abc) //true !undefined為true
解題#####
1.JS中使用typeof能得到哪些類型
undefined,string,number,boolean,object,function,null,symbol
2.何時(shí)使用'==='噩斟,何時(shí)使用'=='
//僅有這種情況使用'=='
if(obj.a==null){
//此時(shí)條件相當(dāng)于obj.a===null||obj.a===undefined,簡(jiǎn)寫形式
//這是jQuery源碼中推薦的寫法
}
除此之外,其它情況均建議使用'==='
3.JS有哪些內(nèi)置函數(shù)
Object,Array,Boolean,Number,String,Function,Date,RegExp,Error
4.JS變量按照存儲(chǔ)方式分為哪些類型孤个,并描述其特點(diǎn)
分為值類型和引用類型剃允,值類型可以將數(shù)據(jù)分塊存儲(chǔ)在內(nèi)存中,但是引用類型是多個(gè)變量共用一個(gè)內(nèi)存塊齐鲤,引用類型的賦值是指定了一個(gè)指針斥废,并不是真正的值的拷貝,它們之間是會(huì)相互干預(yù)的给郊。
5.如何理解JSON
JSON是JS中的一個(gè)內(nèi)置對(duì)象
JSON.stringify({a:10,b:20}) //將對(duì)象轉(zhuǎn)換為字符串
JSON.parse('{"a":10,"b":20}') //把字符串轉(zhuǎn)換為對(duì)象