三目運算子/三元運算子
巢狀寫法:
var str = 89 > 9 ? (
'89' > '9' ? '通過了' : '內層未通過'
)
: '外層未通過'; //str 內層未通過
? : 具有return的功能
物件克隆
淺拷貝:只處理原始屬性,不處理引用值屬性
for迴圈如此處理將會導致原型鏈上的num屬性也被放到Person2,解決方法:
深拷貝
function deepClone(origin,target){
var target = target || {},
toStr = Object.prototype.toString,
arrType = '[object Array]';
for (var key in origin){
if(origin.hasOwnProperty(key)){
if (typeof(origin[key]) === 'object' && origin[key] != null)
{
//if(toStr.call(origin[key]) === arrType){
// target[key] = [];
//}else {
// target[key] = {}
//}
target[key] = toStr.call(origin[key]) === arrType ? [] : {}
deepClone(origin[key],target[key])
}else {
target[key] = origin[key]
}
}
}
return target;
}
複製程式碼
深拷貝另一個方法:JSON.stringfy和JSON.parse