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