JavaScript 数据类型

基本数据类型:字符串类型(string)、数值类型(number)(非数值NaN)、布尔类型(boolean)、未定义类型(undefined)、空类型(null)、symbol类型(ES6)。

引用数据类型:对象类型(object)。

1、获取数据类型

(1)typeof

console.log(typeof "hu");//打印结果:string
console.log(typeof 20);//打印结果:number
console.log(typeof true);//打印结果:boolean
console.log(typeof undefined);//打印结果:undefined
console.log(typeof null);//打印结果:object
console.log(typeof { age: 20 });//打印结果:object
console.log(typeof function(){});//打印结果:function

(2)instanceof 需要指定要判断的数据类型,反回布尔值(true or false),用来判断对象(object)是否为一个类。

let arr = [1,2,3];
let obj = { age:20 };
console.log(arr instanceof Array);//打印结果:true
console.log(arr instanceof Object);//打印结果:true,因为数组属于 object 类型派生出来的一种特殊类型。
console.log(obj instanceof Array);//打印结果:false
console.log(obj instanceof Object);//打印结果:true

(3)Object.prototype.toString.call() 原型方法。

console.log(Object.prototype.toString.call(null));//打印结果:[object Null]
console.log(Object.prototype.toString.call(undefined)); //打印结果:[object Undefined]
console.log(Object.prototype.toString.call(true)); //打印结果:[object Boolean]
console.log(Object.prototype.toString.call('hu'));//打印结果:[object String]
console.log(Object.prototype.toString.call(20));//打印结果:[object Number]
console.log(Object.prototype.toString.call(function(){}));//打印结果:[object Function]
console.log(Object.prototype.toString.call([1,2,3]));//打印结果:[object Array]
console.log(Object.prototype.toString.call({age:20}));//打印结果:[object Object]
console.log(Object.prototype.toString.call(new Date));//打印结果:[object Date]

2、类型转换

(1)字符串类型转换,除空类型(null)和未定义类型(undefined)外每种数据类型都具有一个toString()对象方法;使用 String() 函数做强制类型转换时,对于 Number 和 Boolean 实际上就是调用 toString() 方法,但是对于 null 和 undefined,就不会调用 toString() 方法,它会将 null 直接转换为 "null",undefined 直接转换为 "undefined"。

let num = 20;
let bool = true;
consolse.log(typeof num.toString());//打印结果:string
consolse.log(typeof bool.toString());//打印结果:string

(2)数值类型转换,Number()、parseInt()、parseFloat()。

// Number() 函数
//当字符串里只有数字时
var a = "123";
a = Number(a);
console.log(typeof a);//打印结果:number
console.log(a);//打印结果:123
//当字符串里包含非数字时
var b = "abc";
b = Number(b);
console.log(typeof b);//打印结果:number
console.log(b);//打印结果:NaN
//当字符串是一个空字符串或者是一个全是空格的字符串时,则转换为0
//布尔转数字,true 转换为 1,false 转换为 0
//null 转数值,转换结果为 0
//undefined 转数值,转换结果为 NaN
// parseInt() 常用来字符串转数值
// 它会将一个字符串中的有效整数内容取出来,从左往右查。
var a = "315.22px";
a = parseInt(a);
console.log(typeof a);//打印结果:number
console.log(a);//打印结果:315
// parseFloat() 作用与 parseInt() 类似,不同的是它可以获取有效的小数。
var b = "315.22px";
b = parseFloat(b);
console.log(typeof b);//打印结果:number
console.log(b);//打印结果:315.22
//如果对非 String 使用 parseInt() 或 parseFloat(),它会先将其转换为 String 然后再进行操作
参数类型参  数  值转     换
booleantrue|false1|0
number返回相同的值
nullnull0
undefinedundefinedNaN
string只包含数字返回对应数值
包含有效的浮点数返回对应浮点数
包含有效的十六进制数将十六进制数转换为十进制数并返回
包含有效的八进制数将八进制数转换为十进制数并返回
字符串为空0
除以上格式外NaN
object一般为 NaN

(3)布尔类型转换,Boolean()。

Boolean()函数的转换规则
数据类型转换为 true转换为 false
number非零数字0 和 NaN
string非空字符串空字符串
booleantruefalse
null永远转换为 false
undefined
object任何对象(包括空对象)null

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值