js数据类型

161 阅读1分钟

简单数据类型(存在栈里)

number

string

boolean

null

undefined

symbol  : 唯一值,匿名

复杂/引用数据类型(存在堆里)

object : array,json,element(标签,元素,dom节点),elements(多个标签),function

typeof  类型检测

typeof   a      


传值 :简单数据类型, 

传址 : 复杂数据类型  (始终是一个对象,只不过多了一个变量名,传的是堆内的存储地址),对象和对象不相等,即便是及其一致(因为地址不同)

强制数据类型转换

为什么要转换数据类型: 

var a = 12

var b = '11'

var c = parseInt(b)  // 把b转换为number

string  转换为 number

parseInt :转整数(数字取整)parseInt(123.4)  // 123

parseInt(123a11) // 123

parseInt : 从左往右依次转换,当遇到非数字字符时停止转换,只保留前面,当首位字符非数字,结果为NaN

parseInt(a123) // NaN    转换失败

parseFloat : 保留小数,规则与parseInt一致

Number(12q.33) // NaN

Number 只要字符串内含有非数字字符,结果就为NaN,只能转纯数字型

var  bool  = false

Number(bool)  // 1

var  arr = [1,2,3]

Number(arr)  // NaN     因为有逗号

var arr1 = [10]

Number(arr1)   //10

var arr2 = []

Number(arr2)  // 0

Number(null)  //0

 NaN  和 isNaN

NaN       not  a number    一个不是数字的数字,但不是一个具体数字,不等于任何值,包括自己

isNaN(NaN)  // true

isNaN用来判断数字是不是NaN

当不确定数字是否转换成功时,用isNaN来判断,它只会返回两个值,true,false

infinity:正无穷

-infinity:负无穷