- JS中使用typeof能得到哪些类型?
- 何时使用===何时使用==?
- JS中有哪些内置函数?
- JS变量按照存储方式区分为哪些类型,并描述其特点
- 如何理解JSON
变量
变量类型
值类型和引用类型的区别
//值类型
var a = 100
var b = a
a = 200
console.log(b) // 100
由于值类型之间是赋值关系不是引用关系,以此,b = a仅仅是a把值赋值给了b,a = 200仅仅是改变了自己,而b不受影响
//引用类型
var a = {age:20}
var b = a
b.age = 21
console.log(a.age) // 21
在引用类型中,a作为一个对象,这个a的指针指向了{age:20},a代表着一个内存地址,b = a就相当于a把这个内存地址赋值给了b,那么b也指向了{age:20},也就是说,a,b它们都指向了同一个对象,那么这个对象发生改变,a和b之间自然是相互影响的.
typeof
typeof undefined // undefined
typeof 'greentea' // string
typeof 100 // number
typeof true // boolean
typeof {} // object
typeof [] // object
typeof null // object
typeof console.log // function
typeof运算符:
1.null的类型是object,代表空指针
2.typeof只能区分值类型,不能区分引用类型
3.但是typeof能够在引用类型中特殊的区分出函数,这个是个特例
强制类型转换
可能发生强制类型转换的情况:
- 字符串拼接
- == 运算符
- 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){
// ...
}
//逻辑运算符
console.log(10 && 0) //0
console.log('' || 'abc') //'abc'
console.log(!window.abc) //true
//判断一个变量被当做true 还是 false?
var a = 100
console.log(!!a)
在if中被认定是false的有: 0 NaN '' null undefined false
JS中有哪些内置函数
Object
Array
Boolean
Number
String
Function
Date
RegExp
Error
JOSN
是一个JS对象,也是一种数据格式
JSON.stringify({a:10,b20})
JSON.parse('{"a":10,"b":20}')