欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-04 23:10:56
...

一、Javascript数据类型

数据类型 名称
字符串 String
数值 Number
布尔值 Boolean
空值 null
未定义 Undefined
对象 Object

二、数据类型判断

var a typeof a
a=“123” string
a=123 number
a=true boolean
a=null object
a=undefined Undefined
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=a.toString();
   console.log(typeof a); //string
   console.log(a);//"true"

//null => String
   var a=null;  //typeof a => Object
   a=toString(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