當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript 变量克隆和判断变量类型
生活随笔
收集整理的這篇文章主要介紹了
JavaScript 变量克隆和判断变量类型
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一.變量克隆
在js中經(jīng)常會遇到將一個變量賦值給一個新的變量這種情況,這對于基本類型很容易去實現(xiàn),直接通過等號賦值就可以了,對于引用類型就不能這樣了。(注:像函數(shù),正則也可以直接通過等號賦值)
這里我寫了一個復(fù)制值的函數(shù),可以進(jìn)行深度復(fù)制,也能進(jìn)行淺復(fù)制,要進(jìn)行深度復(fù)制只需要將第二個參數(shù)設(shè)置為true即可
function clone(data,deep){var cloneData = undefined;var data = arguments[0],deep = arguments[1];if(!deep){return data;}else{if(typeof deep === 'boolean'){if(className(data) === 'Object'){cloneData = {};for(key in data){if(data.hasOwnProperty(key)){cloneData[key] = arguments.callee(data[key],deep);}}return cloneData;}else if(className(data) === 'Array'){cloneData = [];for(var i = 0,len = data.length;i<len;i++){cloneData[i] = arguments.callee(data[i],deep);}return cloneData;}else{return data}}else{return data;}} }function className(obj){return {}.toString.call(obj).slice(8,-1); }?二.判斷變量類型
在js中經(jīng)常會遇到需要判斷變量類型的情況,下面是一個我寫的一個實現(xiàn)判斷變量類型的函數(shù)
function type(data){if(data === null){return data + "";}if(typeof data === 'object'){return className(data);}else{if(typeof /\s/ === 'function'&&typeof data === 'function'){
if(data instanceof RegExp){
return "regexp";
}else{
return "function"
}
}else{
return typeof data;
}} }function className(data){//判斷內(nèi)置對象//return {}.toString.call(data).slice(8,-1);//除了可以判斷內(nèi)置對象還能判斷自定義對象return data.constructor.toString().split(" ")[1].split("()")[0] }
?
轉(zhuǎn)載于:https://www.cnblogs.com/QxQstar/p/6105161.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript 变量克隆和判断变量类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LCA 在线倍增法 求最近公共祖先
- 下一篇: Spring 接收表单List集合数据