javascript数据类型判断及数据隐式和显示转换
Posted 杰哥之家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript数据类型判断及数据隐式和显示转换相关的知识,希望对你有一定的参考价值。
数据类型判断
数据类型有 number string boolean null undefined function object 这些,那如何去判断数据对应的是哪种类型呢
typeof可以判断对应数据类型 写法: typeof data 或者 typeof(data) , 一般习惯写后面这种
返回值有 number string boolean object undefined function 这些
代码如下:
console.log(typeof(123)) //number console.log(typeof(‘true‘)) //string console.log(typeof(true)) //boolean console.log(typeof(null)) //object console.log(typeof(undefined)) //undefined console.log(typeof({})) //object console.log(typeof([])) //object console.log(typeof(NaN)) //number console.log(typeof(function(){})) //function console.log(typeof(a)) //undefined a未定义也不会报错
其中对于数组和对象无法区分,可以用 instanceof 去判断
console.log([] instanceof Array) // true console.log({} instanceof Array) // false
如果只用其中一种方法就可以判断,则需要通过 toString() 方法,对 对象原型调用 toString()方法,通过改变this指向来获得对应的类型,如下
console.log(Object.prototype.toString.call(‘123‘)) //[object String] console.log(Object.prototype.toString.call({})) //[object Object] console.log(Object.prototype.toString.call([])) //[object Array] console.log(Object.prototype.toString.call(123)) //[object Number] console.log(Object.prototype.toString.call(true)) //[object Boolean] console.log(Object.prototype.toString.call(null)) //[object Null]
但是对undefined类型会报错,所以undefined类型只有在typeof方法中才不会报错
数据显示转换
显示转换number, number转换有Number() parseInt() parseFloat() 方法
console.log(Number(‘123‘)); //123 console.log(Number(true)); //1 console.log(Number(false)); //0 console.log(Number(NaN)); //NaN console.log(Number(‘abc‘)); //NaN console.log(Number(undefined)); //NaN console.log(parseInt(‘123abc‘)) //123 只为变成整形,只看数字位,直到非数字位就截断 console.log(parseInt(‘abc‘)) //NaN console.log(parseInt(true)) //NaN console.log(parseInt(10, 16)) //16 表示10为基底,这是16进制,转为10进制 console.log(parseFloat(‘100.2‘)) //100.2 只为转换为浮点型 console.log(parseFloat(‘100.2abc‘)) //100.2 console.log(parseFloat(‘100.2.3‘)) //100.2
其它
String() 显示转换字符串
Boolean() 显示转换布尔值
toSting() 转换字符串 undefined和null不能用toString()
var a = 10 console.log(a.toString()) //123 console.log(a.toString(2)) //1010 表示以a为基底,转为2进制 console.log(a.toString(16)) //a 表示以a为基底,转为16进制
数据隐式转换
// isNaN() console.log(isNaN(123)) //false console.log(isNaN(‘123‘)) //false console.log(isNaN(‘abc‘)) //true 先隐式转换成Number类型 // + - / % * console.log(+‘123‘) //123 number类型 console.log(false < 1) //true console.log(2 < 1 < 3) //true 2 < 1为false flase < 3为true console.log(2 < 3 < 1) //false 2 < 3为true true < 1为false console.log(undefined < 0) //false console.log(undefined > 0) //false console.log(undefined == 0) //false console.log(null < 0) //false console.log(null > 0) //false console.log(null == 0) //false console.log(undefined == null) //true
不发生隐式转换
// === 全等 !== 全不等 console.log(‘123‘ === 123) //false
end !!!
以上是关于javascript数据类型判断及数据隐式和显示转换的主要内容,如果未能解决你的问题,请参考以下文章