变量类型
- 1.值类型 (赋值之间不会相互影响)
var a = 100
var b = a
a = 200
console.log(b) //100
- 2.引用类型 :对象,数组,函数 (赋值是变量指针,不是真正的拷贝,指向同一个内存块节省空间。赋值之间会相互影响)
特点:无限扩大属性。
var a = {age:20}
var b = a
b.age = 21
console.log(a.age) //21
- typeof运算符
typeof undefined // undefined
typeof 'abc' // string
typeof 123 // number
typeof true // boolean 以上是值类型
typeof {} // object (对象)
typeof [] // object (数组)
typeof null // object (空,但他是object类型)
typeof console.log // function (函数) 以上是引用类型
typeof只能区分值类型,区分不了引用类型,function是JS中特殊的级别最高的,可以区分。
变量计算 - 强制类型转换 (值类型)
- 1.字符串拼接
var a= 100 +10 // 110
var b =100 +'10' // '10010'
- 2.==运算符
100 == '100' // true 将100转成'100'字符串,相等了。
0 == ' ' // true 0是false, ' '是false,相等了。
null == undefined // true 同上,都相等了。
== 要慎用,如果是===就不一样了。
- 3.if语句 (会执行boolean类型)
var a = true
if (a) {
// ...true
}
var b = 100
if (b) {
// ...true
}
var c = ' '
if (c) {
// ...false
}
- 4.逻辑运算符
console.log(10 && 0) // 0 10=true,0=false.返false,0.
console.log(' ' || 'abc') // 'abc' ' '=false,'abc'=true,返true,'abc'
console.log( !window.abc) // true window.abc=undefined,undefined转true.
//判断一个变量被当做true 还是false
var a = 100
console.log(!!a)