js的数据类型
基本数据类型 | 引用数据类型 |
---|---|
Number(数值型) | Object(对象) |
String(字符串类型) | Array(数组) |
Boolean(布尔类型) | function(函数) |
Underfind(未定义) | |
Null(空) |
接下来就对以上数据类型赋值
function getDataType(data){
var getType=Object.prototype.toString.call(data);
//调用call方法判断类型,结果返回形如[object Number]
var typeName=getType.slice(8,-1);
//即取除了“[object ]”的字符串。
var copyData='';//复制后的数据
switch(typeName){
case 'Number': copyData=data-0;
break;
case 'String': copyData="'"+data+"'";
break;
case 'Function': copyData=data;
break;
case 'Null': copyData=null;
break;
case 'Undefined': copyData="Undefined";
break;
case 'Array':
//深拷贝数组方法一concat()拼接
//copyData=[].concat(data);
//深拷贝数组方法二slice()截取
//copyData=data.slice();
//深拷贝数组方法三for循环
copyData=[]
for(var i=0;i<data.length;i++){
copyData.push(data[i]);
}
break;
case 'Object':
copyData={};
for(var x in data){
copyData[x]=data[x];
}
break;
case 'Boolean': copyData=data;
break;
default : copyData=data;
break;
}
return copyData;
}
console.log(getDataType(123)); //123
console.log(getDataType("123")); //'123'
console.log(getDataType(null)); //null
console.log(getDataType(undefined)); //"Undefined"
console.log(getDataType(false)); //false
console.log(getDataType([1,2,4])); //[1,2,4]
console.log(getDataType({"name":"qwe"})); //{"name":"qwe"}
console.log(getDataType(function(){alert("方法");}));
//ƒ (){alert("方法");}
判断数据类型:
1,Object.prototype.toString.call(data)
2,typeof
typeof 的优点:简洁
缺点:对象,数组,null都返回object,还需进一步判断
console.log( typeof(null) ); //"object"
console.log( typeof([]) ); //"object"
console.log( typeof({}) ); //"object"