笔试遇到一道克隆的题,由于许久未用,实在没有答完整
经过学习后,特地来记录一下
首先要判断其类型——除对象不好判别外,其余轻松判定
function clone(obj){
var copy ; //先声明,但不确定是什么值
switch(typeof(obj)){
case'number':
copy = obj + 0 //确定数字类型
case'string':
copy = obj + "" //确定字符串类型
case'boolean':
copy = obj //布尔值
case'undefined':
break;
case'object': //object有几种:null、对象、数组
if(obj===null){ //null===null 对 NaN===NaN 错
copy = null
}else if(Object.prototype.toString.call(obj).slice(8,-1)==='Array'){
copy = []
for(var i in obj){ //[Object Array] 从第八位到最后一位是Array
copy.push(clone(obj[i]))
}
}else{
copy = {}
for(var j in obj){
copy[j] = clone(obj[j])
}
}
}
return copy
}
——————————————————————————————————————————
从零开始的学习之路
一位从铁路局辞职转行的前端小白