<script type="text/javascript">
//使用length清空数组
var arr1 = arr2 = [1, 2, 3];
//arr1.length = 0;
//console.log(arr2);
//利用Length缩减数组
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.length = 5;
console.log(arr);
//合并数组,push方法合并数组
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = arr1.concat(arr2); //传统方法
console.log(arr3);
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [];
//改变this指向arr3
Array.prototype.push.apply(arr1, arr2); //利用apply接收参数为数组的特性进行push
console.log(arr1);
//特性检测
var obj = document.getElementById("box");
if (obj.addEventListener) { //如果使用这种方法去检测该对象是否有这个方法,就会在该对象中添加上addEventListener这个属性,只是值为undefined;如果无用属性一多就会减低性能
obj.addEventListener();
} else {
obj.attachEvent();
}
var obj = document.getElementById("box");
if ("addEventListener" in window) { //所以只需要用in去判定属性是否存在于该对象中就可以了
obj.addEventListener();
} else {
obj.attachEvent();
}
//检测一个对象是不是数组
//在JavaScript里, 可以用 typeof 来检查变量类型. typeof 可以返回: number , boolean, string, object, function 和 undefined. 并没有 array . 实际上数组是object类型. 那么怎么来验证对象是否是数组呢? 在最新的ECMAScript 5中, 可以用 Array.isArray(object) 来检验.
//用typeof检查变量类型为Object的对象都包含一个内部属性[Class](可以看佐一种内部分类,而不是传统面向对象意义上的类),这个属性无法直接访问
//但可以通过Object.prototype.toString.call(variable)获取到一个展示类型的字符串
// Object.prototype.toString.call(/regex-literal/i) ==> "[object RegExp]"
var arr = {};
var isArray = Object.prototype.toString.call(arr) == "[object Array]";
console.log(isArray);
</script>
JS中的小技巧
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 下面选了最近十年里,十位名人所做的毕业演讲。那么多的故事与经历,其实只想告诉你一件事: 面对迷茫和不确定的未来,我...