Web前端面试准备(二)变量类型和计算
题目
搭眼一看能答上来几个
看能延伸出哪些知识,哪些其他的题目
变量类型
- 值类型 vs 引用类型
- typeof运算符详解
值类型
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
为什么会有这个区别呢?
引用类型是把a赋值成一个对象,对象存在另一个地方,a内存的位置是通过指针指向这个地方,当把b赋值上a时,时把b也指向到这个地方,这时a和b都同时指向到这个地方。
所以叫引用类型,修改的是存储的地方的值。
引用类型:对象、数组、函数
特点:可以无限制扩展属性
typeof运算符
6种
typeof undefined //undefined
typeof 'abc' //string
typeof 123 //number
typeof true //boolean
typeof {} //object
typeof [] //object
typeof null //object
typeof console.log //function
变量计算
-----------强制类型转换
- 字符串拼接
- ==运算符
- if语句
- 逻辑运算
字符串拼接
var a = 100 + 10 //110
var b = 100 + '10' //'10010'
==运算符
100 = '100' //true
0 == '' //true
null == undefined //true
if语句
var a = true
if(a){
//...
}
var b = 100
if(b){//b=>bool=>true
//...
}
var c = ''
if(c){//false
//...
}
逻辑运算符
console.log(10 && 0) //0
// 10=>true true&&0=>0
console.log('' || 'abc') //'abc'
console.log(!window.abc) //true
// 判断一个变量会被当做true 还是 false
var a = 100
console.log(!!a)
将变量变为true或者false
好!