实现一个函数对JavaScript中的五个主要数据类型进行值赋值是前端面试中JavaScript经典的考点。
JavaScript中常见的五种数据类型是Number、String、Array、Boolean、Object,这同样是一个考点,通常考察的方式是:
JavaScript的typeof返回哪些数据类型?
答案:Number String Array Boolean Object
那么下面我们来实现以下这个函数
function clone( obj ) {
var copy;
switch( typeof obj ) {
case "undefined":
break;
case "number":
copy = obj - 0;
break;
case "string":
copy = obj + "";
break;
case "boolean":
copy = obj;
break;
case "object": //object分为两种情况 对象(Object)和数组(Array)
if(obj === null) {
copy = null;
} else {
if( Object.prototype.toString.call(obj).slice(8, -1) === "Array") {
copy = [];
for( var i = 0 ; i < obj.length ; i++ ) {
copy.push(clone(obj[i]));
}
} else {
copy = {};
for( var j in obj) {
copy[j] = clone(obj[j]);
}
}
}
break;
default:
copy = obj;
break;
}
return copy;
}
---------------------