Js数据类型转换
数据类型转换问题
JS和PHP是弱类型语言,都存在数据类型的转换操作
数据类型转换分为2种:1)自动数据类型转换 (隐式转换) 2)强制数据类型转换 (显式转换)
自动数据类型转换如何发生:一般发生在运算和判断过程中.
强制数据类型转换:
Number数据类型转换:
parseInt() 字符串 转 整型
1.纯数值,转后类型为number,值不变
var str1='250';------number-----值250
2.以数值开头,转后类型为number,值为开始的数值
var str1='222csasd23sad323';-----number-----值222
3.不是以数值开头,转后为NaN
var str1='afdfds2323232';-----number-----值NaN
//查看原数据类型
console.log('数据类型:'+typeof str1 +'-----值'+str1);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newstr1=parseInt(str1);
//查看转换后的数据类型
console.log('数据类型:'+typeof newstr1 +'-----值'+newstr1);
parseFloat() 将字符串强制转换为浮点型
1纯数值,转后类型为number,值不变
var str1='3.12121';--------number-----值3.12121
2以数值开头,转后类型为number,值为开始的数值
var str1='3.1323afdfcdsds';------:number-----值3.1323
3不是以数值开头,转后为NaN
var str1='sfdcfsdvc23.43443';-----number-----值NaN
//查看原数据类型
console.log('数据类型:'+typeof str1 +'-----值'+str1);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newstr1=parseFloat(str1);
//查看转换后的数据类型
console.log('数据类型:'+typeof newstr1 +'-----值'+newstr1);
Number() 将其他类型转换为数值类型
Undefined类型->NaN
var str1=undefined;数据类型:---undefined-----值undefined -----数据类型:number-----值NaN
Boolean了类型-> true 1 false 0
var str1=true---数据类型:boolean-----值true ---------------------------数据类型:number-----值1
Number类型->不需要转换
var str1=123; //数据类型:number-----值123 --------------数据类型:number-----值123
String类型-> 纯数值:类型改变值不变,其他情况都是NaN
var str1='132132'; //数据类型:string-----值132132 ------数据类型:number-----值132132
var str1='12132ddc'; //数据类型:string-----值12132ddc ------数据类型:number-----值NaN var str1='dsadsa12'; //数据类型:string-----值dsadsa12 ------数据类型:number-----值NaN
Function类型->NaN
var str1=function(){ //数据类型:function-----值function (){ alert('111111111');}--数据类型:number-----值NaN
Object类型->NaN null:0
var str1=new Object(); //数据类型:object-----值[object Object] ---数据类型:number-----值NaN
var str1=null; //数据类型:object-----值null----------数据类型:number-----值0
//查看原数据类型var newstr1=Number(str1);
console.log('数据类型:'+typeof str1 +'-----值'+str1);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newstr1=Number(str1);
//查看转换后的数据类型
console.log('数据类型:'+typeof newstr1 +'-----值'+newstr1);
字符串类型转换:
转换方式有2种:
1.使用String() 函数
格式: 变量=String(变量)
//字符串类型转换 使用var newtest=String(test);
//var test=0; //整数:----数据类型:number-----值0-----------------------------数据类型:string-----值0
//var test=true; //布尔型:--数据类型:boolean-----值true ------------------------数据类型:string-----值true
//var test=3232.12312; //浮点数----数据类型:number-----值3232.12312--------------------数据类型:string-----值3232.12312
//var test=undefined; //未定义----数据类型:undefined-----值undefined------------------数据类型:string-----值undefined
//var test=function(){alert(111);}//函数------数据类型:function-----值function (){alert(111);}--数据类型:string-----值function (){alert(111);}
var test=new Object(); //对象------数据类型:object-----值[object Object]---------------数据类型:string-----值[object Object]
//查看原数据类型
console.log('数据类型:'+typeof test +'-----值'+test);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newtest=String(test);
//查看转换后的数据类型
console.log('数据类型:'+typeof newtest +'-----值'+newtest);
2.使用.toString() 方法进行转换
格式:变量=变量.toString()
var test=false; //布尔型----数据类型:boolean-----值false------------------------数据类型:string-----值false
//查看原数据类型
console.log('数据类型:'+typeof test +'-----值'+test);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newtest=test.toString();
//查看转换后的数据类型
console.log('数据类型:'+typeof newtest +'-----值'+newtest);
注意:进行字符串强制转换之后,一般都会将原有类型的内容转话为对应的字符串形式,对象除外.
布尔类型转换:
使用Boolean()方法进行转换
转化为布尔值false的情况:
Number -> 0和0.0、NaN转化为false
String -> 空字符串转化为false
Boolean -> false转化为false
Undefined ->undefined 转化为false
Function -> 永远为真
Object -> 只有null为false
//布尔类型转换
//var test=0; //数据类型:number-----值0 ----------------数据类型:boolean-----值false
//var test=0.0; //数据类型:number-----值0 ----------------数据类型:boolean-----值false
//var test=NaN; //数据类型:number-----值NaN --------------数据类型:boolean-----值false
//var test=''; //数据类型:string-----值 -----------------数据类型:boolean-----值false
//var test=false; //数据类型:boolean-----值false -----------数据类型:boolean-----值false
//var test=undefined; //数据类型:undefined-----值undefined -----数据类型:boolean-----值false
//var test=null; //数据类型:object-----值null -------------数据类型:boolean-----值false 除了null之外的对象类型全部为真
//var test=new Object();//数据类型:object-----值[object Object]---数据类型:boolean-----值true
var test=function(){}; //数据类型:function-----值function (){} --数据类型:boolean-----值true
//查看原数据类型
console.log('数据类型:'+typeof test +'-----值'+test);
//数据类型转换 返回转换后的新数据!!!!!!!!!!!!!!
var newtest=Boolean(test);
//查看转换后的数据类型
console.log('数据类型:'+typeof newtest +'-----值'+newtest);