怎样实现一个函数clone,对JavaScript中的五种主要的数据类型进行值复制

来源:互联网 发布:mac能用latex吗 编辑:程序博客网 时间:2024/05/29 04:49

实现一个函数对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;}

关于object.prototype.toString.call().slice()在我的另一篇文章中会有讲解

阅读全文
1 0
原创粉丝点击