摘要:方法方法弊端區(qū)分不開對象或者數(shù)組方法以上是我認(rèn)為無懈可擊的方法其他還有很多需要請留言想了解原生的數(shù)組和對象的方法請點(diǎn)擊教程阮一峰
js的數(shù)組和對象的多種"復(fù)制"和"清空", 以及區(qū)分JS數(shù)組和對象的方法 一.數(shù)組清空與復(fù)制方法
1.數(shù)組清空的方法
var a = [1,2,3]; a.length = 0; //方法1 a.splice(0, a.length); //方法2
2.數(shù)組復(fù)制方法
var a = [1,2,3]; a.slice(0)二.對象清空與復(fù)制方法
1.判斷對象是否為空
Object.key.length==0 //為空 ES6
2.對象復(fù)制
(1).萬能辦法
function clone(obj){ let temp = null; if(obj instanceof Array){ temp = obj.concat(); }else if(obj instanceof Function){ //函數(shù)是共享的是無所謂的,js也沒有什么辦法可以在定義后再修改函數(shù)內(nèi)容 temp = obj; }else{ temp = new Object(); for(let item in obj){ let val = obj[item]; temp[item] = typeof val == "object"?clone(val):val; //這里也沒有判斷是否為函數(shù),因?yàn)閷τ诤瘮?shù),我們將它和一般值一樣處理 } } return temp; }
(2).JSON對象序列化方法, 弊端: 不能復(fù)制函數(shù)
JSON.parse(JSON.stringify(obj))三.判斷是否為數(shù)組和對象的方法
1.toString方法
Object.prototype.toString.call(array) === "[object Array]" //true Object.prototype.toString.call(obj) === "[Object Object]" //true 數(shù)值:返回[object Number]。 字符串:返回[object String]。 布爾值:返回[object Boolean]。 undefined:返回[object Undefined]。 null:返回[object Null]。 數(shù)組:返回[object Array]。 arguments 對象:返回[object Arguments]。 函數(shù):返回[object Function]。 Error 對象:返回[object Error]。 Date 對象:返回[object Date]。 RegExp 對象:返回[object RegExp]。 其他對象:返回[object Object]。
2.constructor方法
obj.constructor === Array//true obj.constructor === Object //true
3.instanceof方法, 弊端: 區(qū)分不開對象或者數(shù)組
obj instaceof Object //true array instaceof Object// true
4.isArray方法
Array.isArray([1,2,3]) //true
以上是我認(rèn)為無懈可擊的方法, 其他還有很多, 需要請留言
想了解原生js的"數(shù)組"和"對象"的方法, 請點(diǎn)擊 JavaScript教程-阮一峰
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102113.html
JavaScript在創(chuàng)建變量(數(shù)組、字符串、對象等)是自動進(jìn)行了分配內(nèi)存,而且當(dāng)它沒有被使用的狀態(tài)下,會自動的釋放分配的內(nèi)容;其實(shí)這樣基層語言,如C語言,他們提供了內(nèi)存管理的接口,比如malloc()用于分配所需的內(nèi)存空間、free()釋放之前所分配的內(nèi)存空間。 釋放內(nèi)存的過程稱為垃圾回收,例如avaScript這類高級語言可以提供了內(nèi)存自動分配和自動回收,其實(shí)這個自動儲存不會占用太多空間...
js實(shí)現(xiàn)點(diǎn)擊切換和自動播放的輪播圖,其實(shí)十分簡單,話不多說,我們直接看示例: 輪播圖案例 <!DOCTYPEhtml> <html> <head> <metacharset="UTF-8"> <metaname="vie...
摘要:函數(shù)和我們之前介紹的冒泡排序是一樣的,只不過這里有一句這句是核心,一看是乍看是不是很奇怪,為什么要然后再。而且細(xì)心的會發(fā)現(xiàn)之前我們看到的冒泡排序它只有一層循環(huán)。 正文 當(dāng)然在我們不清楚具體操作細(xì)節(jié)前我們可以先假設(shè)一下,我們能夠用什么來實(shí)現(xiàn)。按照以前看過的排序動畫我將其分為 1.Js操作Dom,再搭配簡單的css 2.Canvas動畫 之后在查資料的時候發(fā)現(xiàn)還有人用d3這個庫來完成。...
摘要:函數(shù)和我們之前介紹的冒泡排序是一樣的,只不過這里有一句這句是核心,一看是乍看是不是很奇怪,為什么要然后再。而且細(xì)心的會發(fā)現(xiàn)之前我們看到的冒泡排序它只有一層循環(huán)。 正文 當(dāng)然在我們不清楚具體操作細(xì)節(jié)前我們可以先假設(shè)一下,我們能夠用什么來實(shí)現(xiàn)。按照以前看過的排序動畫我將其分為 1.Js操作Dom,再搭配簡單的css 2.Canvas動畫 之后在查資料的時候發(fā)現(xiàn)還有人用d3這個庫來完成。...
閱讀 1674·2023-04-25 20:36
閱讀 2098·2021-09-02 15:11
閱讀 1227·2021-08-27 13:13
閱讀 2678·2019-08-30 15:52
閱讀 5019·2019-08-29 17:13
閱讀 1025·2019-08-29 11:09
閱讀 1515·2019-08-26 11:51
閱讀 866·2019-08-26 10:56