js面試,變量計算等相關問題
一、引用類型和值類型
什麼是值類型,可以這麼理解,值類型是有2塊內存分別保存變量名和內容。
什麼是引用類型,那就是有3塊內存分別保存變量,地址,和內容。對於引用類型來說變量是指向地址而非直接指向值,多了一箇中間層,所以叫引用。
用圖表示就是:
值類型
引用類型
代碼表達就是:
/*值類型,值獨立存儲,相互不影響*/
let a = 100;
let b = a;
a=200;
console.log(b)//100
/*引用類型,從上圖可以分析出來,a指向地址A,b也是指向地址A因此b.b的值一改變其實就是同一個對象的值改變,因此會影響到變量a*/
let a = {
b : 'b'
}
let b = a
b.b = "c"
console.log(a.b)
一般來說 引用類型有:數組,對象,函數
二、typeof相關
typeof主要是來區分值類型的具體類型,typeof一共6種情況
- typeof undefined //undefined
- typeof ‘abc’ //string
- typeof 122 //number
- typeof true //boolean
- typeof {} //object
- typeof [] //object
- typeof null //object
- typeof console.log //function
三、“==”和“ = = =”的區別
其實 “ = =” 只要值相等 則爲true
“= = =”要值和類型都相等才爲true
因此一個良好的編程習慣是用“= = =”來判斷,除了判斷a = = null。
a = = null相當於是
a = = = null || a = = = undefined
四、js內置函數(9種)
- object
- array
- boolean
- number
- string
- function
- date
- regexp
- error
五、json的理解
json就是一個對象型的數據格式。
JSON.stringify(對象)//對象=>字符串
JSON.parse(字符串)//字符串=>對象