run in this way,   no why,   only for you heart
CSDN博客(点击进入) CSDN
51CTO(点击进入) 51CTO

JS 常用的数据类型(一)

JS常用的数据类型

基本数据类型

引用数据类型

  • 对象数据类型 object
        普通对象:用{ } 存放数据
        数组对象:用[ ] 存放数据
        正则对象
  • 函数数据类型 function

1. 数字类型Number
包含: 常规数字 和 NaN
1.1  NaN:not a number
       NaN和任何值都不相等包括它自己(六亲不认)。

console.log(NaN==NaN)  //false
console.log(12==NaN)   //false
console.log('A'==NaN)  //false

       所以当我们要判断一个数字是不是有效数字,千万别用NaN来验证。检测数字是否为有效数字可以使用 isNaN (is not a number),如果不是数字返回true,是数字返回false。

console.log(isNaN('A'))  //true
console.log(isNaN(3))    //false
console.log(isNaN('3'))  //false

       isNaN的机制是如果判断对象不 是数字类型,会先对对象进行Number转化成数字类型,然后再判断。

1.2  把其他类型转换数字类型
       转换方法:Number([val])
       a. 把字符串转为数字,只要字符串包含任意一个非有数字字符,结果都是NaN,第一个字符为小数点除外。

console.log(Number('12.5'))   //12.5
console.log(Number('12.5px')) //NaN
console.log(Number('.125'))   //0.125
console.log(Number('a12.5x')) //NaN
console.log(Number('')) 	  //0

       b. 布尔转换为数字

console.log(Number(true))    //1
console.log(Number(false))   //0

       c. null 和 undefined

console.log(Number(null))		//0
console.log(Number(undefined))  //NaN

       e. 对象转数字
引用类型数据类型转换为数字,是先把他基于toString方法转换为字符串,然后在转换为数字,当字符串转换数字时,就是上面说的方法了(只要字符串包含任意一个非有数字字符,结果都是NaN,第一个字符为小数点除外。)

console.log(Number({}))  			//NaN
console.log(Number({name:'10'}))    //NaN
console.log(Number([])				//0
console.log(Number([12]))  			//12
console.log(Number([12,16])) 		//NaN

1.3. parseInt,parseFloat
       对于字符串来说,从左到右依次查找有效数字,直到遇到非有效数字字符停止,不管后面还有没有有效数字,把找到的数字转换为数字类型。

console.log(parseInt('12.5px'))    // 12
console.log(parseInt('1A2.5px'))   // 1
console.log(parseInt('A12.5px'))   // NaN
console.log(parseInt('true'))      // NaN

console.log(parseFloat('12.5px'))  // 12.5
console.log(parseFloat('1A2.5px')) // 1
console.log(parseFloat('A12.5px')) // NaN
console.log(parseFloat('false'))   // NaN

2.字符串String
定义:所有用单引号、双引号包起来的都是字符串
2.1 把其他类型值转换为字符串
       转换方法:[value].toString()
       基本上所有值转换为字符串都是在外边加上双引号即可,除null,undefined,对象等除外。

console.log('A12.5px'.toString())   // A12.5px
console.log((NaN).toString())       // NaN
console.log((true).toString())      //true
console.log((false).toString())     //false
console.log((null).toString())		//error
console.log((undefined).toString()) //error
console.log(({name:'zs'}).toString()) //[object Object]

2.2 字符串拼接
       四则运算法则中,除加法外,其余都是数学运算,加法可做为字符串拼接符。

console.log('12'+6)   // 126
console.log('12'-6)   // 6
console.log('12px'-6) //NaN
posted @ 2020-01-08 22:43  _小龙人  阅读(438)  评论(0编辑  收藏  举报