验证中...
码云 Gitee IDE 全新上线——支持 Git 管理的轻量在线编码环境
html
原始数据 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
/***********一、将一个数组添加到另一个数组的尾部**********/
console.log('**********一、将一个数组添加到另一个数组的尾部*************');
(function(){
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = ['a','b','c'];
Array.prototype.push.apply(arr1,arr2);//arr1发生了改变
console.log(arr1);
var arr4 = arr3.concat(arr2,['hu','pan']);//concat可以连接多个数组并返回新的数组,但是它不可以改变原数组
console.log(arr3,arr4);//arr3并没有发生任何改变
var a = [9,8,['a','g'],7];
var b = ['hupanpan'];
var c = b.concat(a);
a[2][1] = "改变了";
console.log(JSON.stringify(c),"是浅拷贝吗");//打印出["hupanpan",9,8,["a","改变了"],7] ,所以证明是concat是浅拷贝
}());
/**************二、返回日期******************/
console.log('**********二、返回日期*************');
(function () {
var date1 = new(Date.bind.apply(Date,[null,2015,2,1,3,18,55]));//Sun Mar 01 2015 03:18:55 GMT+0800 (中国标准时间)
console.log(date1);//注意返回的是2015年3月1日3点18分55秒,而不是2月
})();
/***********三、克隆对象防止指针指向同一个引用地址************/
console.log('**********三、克隆对象防止指针指向同一个引用地址*************');
(function(){
var a1 = [1,2];
var a2 = a1.concat();
a2[1] = "hu";
console.log(a1,a2);//a1:[1,2], a2:[1,'hu'];
var a3 = ['hu','pan'];
var a4 = JSON.parse(JSON.stringify(a3));//先序列化,再反序列化
a3[1] = 'gg';
console.log(a3,a4);//a3:['hu',''gg] a4:['hu','pan']
})();
/**********四、序列化的应用*************/
console.log('**********四、序列化的应用*************');
(function(){
function switchFunc (key, value) {
console.log(key)
console.log(value)
return value.toString().toUpperCase();
}
var a = ['hu','pan','pan',1];
var json = JSON.stringify(a, switchFunc);
console.log(json);//"HU,PAN,PAN,1"
var ob = {
n:'hu',
a:'pan',
m:'pan',
e:1
};
var json1 = JSON.stringify(ob,switchFunc);
console.log(json1);//"[OBJECT OBJECT]"
})();
/**************五、将类数组对象转换为数组************/
console.log('**************五、将类数组对象转换为数组************');
(function () {
var likeArr = {
'0':'a',
'1':'b',
2:'c',
length:3
};
var arr = [].slice.call(likeArr);
console.log(arr);
})();
console.log([NaN].indexOf(NaN));//返回-1, 数组成员是NaN,但是却找不到
console.log(NaN === NaN);//返回false
/*********六、比较两个值是否相等**********/
console.log('*********六、比较两个值是否相等**********');
(function () {
Object.defineProperty(Object, 'is', {//定义es6的object的is方法
value: function (x, y) {
if (x === y) {
//针对+0不等于-0的情况
return x !== 0 || 1 / x === 1 / y;
}
//针对NaN的情况
return x !== x && y !== y;
},
configurable:true,//可配置性
enumerable: false,//可枚举性
writable: true//可写性
});
var a = Object.is(+0, -0);
var b = Object.is(NaN, NaN);
var c = Object.is('foo',"foo");
var d = Object.is({}, {});
console.log('+0等于-0:' + a);//false
console.log('NaN等于NaN:' + b);//true
console.log("foo等于foo:" + c);//true
console.log("空对象等于空对象:" + d);//fasle
}());
</script>
</body>
</html>

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助