JavaScript-总结篇之变量类型

  • 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}')

你可能感兴趣的:(JavaScript-总结篇之变量类型)