三目运算符/三元运算符
嵌套写法:
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