Javascript六种数据类型及类型转换总结

一、Javascript数据类型
数据类型名称
字符串String
数值Number
布尔值Boolean
空值null
未定义Undefined
对象Object
二、数据类型判断
var atypeof a
a=“123”string
a=123number
a=trueboolean
a=nullobject
a=undefinedUndefined
a={b:2}Object
三、强制类型的转化
3.1、强制转化为String

方法一:调用被转换数据类型的toString()方法

  • 该方法不会影响到原变量,它会将转换的结果返回
  • null和undefined这两个值没有toString方法
//Number => String
   var a=123;  //typeof a =>Number
   a=a.toString();
   console.log(typeof a);//string
   console.log(a);//"123"
   
//Boolean => String
   var a=true;   //typeof a =>boolean
   a=a.toString();
   console.log(typeof a); //string
   console.log(a);//"true"

//null => String
   var a=null;  //typeof a => Object
   a=a.toString(); //Cannot read property 'toString' of null
   console.log(typeof a);
   console.log(a);

//undefined => String
   var a=undefined;  //typeof a => undefined
   a=a.toString(); //Cannot read property 'toString' of undefined
   console.log(typeof a);
   console.log(a);  

方法二:调用String()函数,并将被转换的数据作为参数传递给函数

  • 对于Number和Boolean类型使用String()函数和使用toString()方法本质是一样的,底层还是调用toString()方法。
  • 对于null和undefined,就不会调用toString()方法。而是将null直接转换为“null”,undefined直接转换为“undefined”
//number => String
   var a=123;  //typeof a =>Number
   a=String(a);
   console.log(typeof a);//string
   console.log(a);//"123"

//Boolean => String
   var a=true;   //typeof a =>boolean
   a=String(a);
   console.log(typeof a); //string
   console.log(a);//"true"

//null => String
   var a=null;  //typeof a => Object
   a=String(a); 
   console.log(typeof a); //string
   console.log(a); //"null"

//undefined => String
	var a=undefined;  //typeof a => undefined
	a=String(a); 
	console.log(typeof a); //string
	console.log(a);  //"undefined"
3.2、强制转化为Number

方法一:使用Number()函数

  • 字符串(纯数字) => 直接转换为数字
  • 字符串(包含非数字) => 则转换为NaN
  • 字符串(空或者空格) => 则转换为数字0
  • 布尔型 true =>1 ,false=>0
  • null => 0
  • undefined => NaN
//string => 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

   var c="";
   c=Number(c);
   console.log(typeof c); //number
   console.log(c); //0
   
//bolean => number
   var a =true;
   a=Number(a);
   console.log(typeof a); //number
   console.log(a); //1   false =>0
   
//null => number
   var a =null;
   a=Number(a);
   console.log(typeof a); //number
   console.log(a); //0
   
//undefined => number
   var a =undefined;
   a=Number(a);
   console.log(typeof a); //number
   console.log(a); //NaN

方法二:parseInt()和parseFloat()

  • parseInt()可以将字符串中有效的整数内容转换为Int类型
  • parseFloat()可以将字符串中有效的整数内容转换为float类型
   var a="123px"
   a=parseInt(a);
   console.log(typeof a); //number
   console.log(a); //123
//parseInt()
   b="123a12" // 123
   b="n123456" //NaN
   b="123.456" //123
3.3、强制转化为Boolean
  • 对于number类型,除了0和NaN为false外,其余为true
  • 对于String类型,除了空字符串为false外,其余为true
  • 对于null和undefined类型,都是false
  • 对象也会转换成true
//number => boolean
var a=123;//true
var a=-123;//true
var a=0; //false
var a=Infinity; //true
var a=NaN; //false
a=Boolean(a); 

//string => boolean
var a="hello"; //true
var a="true"; //true
var a="false"; //true
var a=""; //false
var a=" "; //true
a=Boolean(a);

//null => boolean
var a=null; //false

//undefined => boolean
var a=undefined; //false

补充:

 var num1 = new Boolean(0)
 if (num1) {
      console.log("num1成立,执行")
 }

此时 :num1 始终为真

原因: new Boolean() 返回的是一个对象,不是一个布尔值。对象的布尔值始终为 true

可以通过:

num1.valueOf(); // false

数据类型的隐式转换


欢迎访问我的个人博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月可贵

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值