Failure is part of learning. we should never give up the struggle in life

js检测数据类型及数据类型转换

检测数据类型

typeof 要检测的变量
返回值以字符串的形式给你变量的数据类型
两种写法

//第一种
var a1 = 100
var res = typeof a1
console.log(res)
//第二种
var a2 = '100'
var res2 = typeof(a2)
console.log(res2)

//区别如下
var s1 = 100
var s2 = 200

//得到的结果是个缝合怪  这样写只会检测紧跟的第一个变量而不会检测第二个
var rng1 = typeof s1 + s2
console.log(rng1)

//得到的结果是Number 这样写会进行运算后再检测
var rng2 = typeof(s1+s2)
console.log(rng2)

//当连用两个及以上的typeof时一定得到的是string 
var rng3 = typeof typeof s1 
//从右向左检测先检测是s1得到number 然后检测了number 得到string
console.log(rng3)

!!!只能检测基本数据类型
数值: number
字符串: string
布尔: boolean
undefined: undefined
null: object

console.log(typeof 100)
console.log(typeof '100')
console.log(typeof true)
console.log(typeof undefined)
console.log(typeof null)

数据类型转换

转数值

1.Number(你要转换的数据)
//返回值为转换好的数据

var q1 = '100'
console.log(q1)
var res = Number(q1)
console.log(res)

var q2 = 'aaa'
console.log(q2)
var res2 = Number(q2)
console.log(res2)
//'aaa'无法转换为数字结果得到的就是NaN

2.parseInt(要准转换的数据)
//返回值为转换好的数据

//parseInt会一位一位的进行转换
var w1 = '100'
var w2 = 'a100' //当第一个就无法转换时就会得到NaN
var w3 = '10.0' //只会检测到小数点的前一位
var res1 = parseInt(w1)
var res2 = parseInt(w2)
var res3 = parseInt(w3) 
console.log(res1,res2)
//parseInt当要转换的数据为true或者false时会得到NaN
//而用number转换会得到1和0

3.parseFloat(要转换的数据)
与parseInt的规则一样但可以识别小数点
//就不举例子了=.=(偷懒.jpg)

4.取正负

var s1 = '100'
var res1 = +s1
var res2 = -s1 
//取负值时会改变大小 !休想想负负得正 
//-(-s1)也只是取负 --s1会变成自减
console.log(res1,res2)

5.非加法的数学运算

var s1 = '100'
var res1 = s1 * 2
var res2 = s1 / 2
var res3 = s1 - 2
//+ 起到连接的作用
var res4 = s1 + 2
console.log(res1,res2,res3,res4)
//将变量换为true或false也可以

转字符串
//将其他数据类型转为字符串类型 任何数据类型都能转换
1.String(你要转换的数据)
//返回值为转换好的数据

var s1 = 100
var s2 = true
var s3
var s4 = null
// var res1 = String(s1)
// var res2 = String(s2)
// var res3 = String(s3)
// var res4 = String(s4)
// console.log(res1,res2,res3,res4)
console.log(String(s1))
console.log(String(s2))
console.log(String(s3))
console.log(String(s4))

2.toString()
你要转换的数据.toString()
//返回值为转换好的数据
//!!!undefined 和 null 不能转换

var s1 = 100
var s2 = true
//var s3
//var s4 = null
console.log(s1.toString())
console.log(s2.toString())
//以下报错
//console.log(s3.toString())
//console.log(s4.toString())

3.利用 + 号

var s1 = 100
//空的 '' 空格会占一位所以不加空格
var res = s1 + ''
console.log(res)
//console.log(s1)

转布尔
1.Boolean(你要转换的数据)
//返回值为转好的数据
在js终只有五个内容转换成false
0
空字符串('')
NaN
undefined
null
其他内容转换完毕都是 true

var s1 = Boolean(0)
var s2 = Boolean('')
var s3 = Boolean(NaN)
var s4 = Boolean(undefined)
var s5 = Boolean(null)
console.log(s1)
console.log(s2)
console.log(s3)
console.log(s4)
console.log(s5)
//下面都是true
//console.log([] == '')
//console.log(Boolean([]))

溜了溜了

发表评论

电子邮件地址不会被公开。 必填项已用*标注