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(字符串)//字符串=>对象