一文熟練掌握J(rèn)avaScript中Object.keys()與Object.values()的實(shí)用技巧
簡(jiǎn)介:
本文深入解析了JavaScript內(nèi)置方法 Object.keys() 和 Object.values() ,揭示了它們?cè)谔幚韺?duì)象屬性時(shí)的用法、功能及相關(guān)知識(shí)點(diǎn)。通過(guò)實(shí)例演示了如何使用這些方法進(jìn)行對(duì)象的遍歷、復(fù)制、比較和屬性計(jì)算等操作,并提供了注意事項(xiàng),如處理不可枚舉屬性和性能考慮。示例代碼展示了如何在實(shí)際項(xiàng)目中運(yùn)用這些技巧。

1. JavaScript中的 Object.keys()
在JavaScript中, Object.keys() 方法是一個(gè)非常實(shí)用且常用的方法,它可以返回一個(gè)給定對(duì)象自身的所有可枚舉屬性的鍵名組成的數(shù)組。這個(gè)方法對(duì)于遍歷對(duì)象屬性、進(jìn)行屬性操作或是復(fù)制對(duì)象屬性時(shí)都顯得尤為關(guān)鍵。本章將帶領(lǐng)我們一步步了解 Object.keys() 的基本用法、原理、及在實(shí)際項(xiàng)目中的應(yīng)用。
1.1 基本用法
首先,讓我們來(lái)看看 Object.keys() 的基本用法:
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.keys(object1)); // ["a", "b", "c"]
上述代碼展示了如何獲取對(duì)象 object1 的所有鍵名,并將它們打印出來(lái)。 Object.keys() 方法接受一個(gè)對(duì)象作為參數(shù),并返回一個(gè)數(shù)組。
1.2 遍歷對(duì)象
除了直接獲取鍵名列表, Object.keys() 常與數(shù)組方法如 forEach 結(jié)合使用來(lái)遍歷對(duì)象的鍵值對(duì),比如:
Object.keys(object1).forEach(key => {
console.log(`${key}: ${object1[key]}`);
});
這段代碼將遍歷 object1 的所有屬性,并打印出鍵和對(duì)應(yīng)的值。 Object.keys() 使得對(duì)象能夠使用數(shù)組的方法進(jìn)行處理,極大地提高了操作的靈活性。
1.3 深入理解
雖然 Object.keys() 方法非常實(shí)用,但我們也要了解它的局限性。它只能訪問對(duì)象自身的可枚舉屬性,不能獲取到繼承自原型鏈的屬性,且對(duì)于Symbol類型的鍵名是無(wú)能為力的。在實(shí)際應(yīng)用中,我們需要根據(jù)具體需求選擇合適的方法和工具。
通過(guò)這一章節(jié)的學(xué)習(xí),我們已經(jīng)對(duì) Object.keys() 有了初步的理解,下一章將繼續(xù)深入探討JavaScript中對(duì)象操作的其它方法。
2. JavaScript中的 Object.values()
Object.values() 是JavaScript中的一個(gè)內(nèi)置函數(shù),它接受一個(gè)對(duì)象作為參數(shù),并返回一個(gè)包含該對(duì)象所有自有屬性值的數(shù)組。這個(gè)函數(shù)在處理鍵值對(duì)數(shù)據(jù)結(jié)構(gòu)時(shí)尤其有用,比如在你想要獲取對(duì)象中所有屬性值以便進(jìn)一步操作時(shí)。相比 Object.keys() 返回屬性名的數(shù)組, Object.values() 讓開發(fā)者可以專注于屬性的數(shù)據(jù)值,而不是它們的名稱。下面我們將詳細(xì)探討 Object.values() 的使用、性能和相關(guān)實(shí)踐。
2.1 Object.values() 的使用場(chǎng)景
Object.values() 非常適用于以下場(chǎng)景:
- 數(shù)據(jù)分析:在獲取數(shù)據(jù)集中對(duì)象的所有值之后,可以執(zhí)行計(jì)算(如求和、平均值、最大值和最小值)。
- 處理表單:當(dāng)需要驗(yàn)證表單數(shù)據(jù)時(shí),可以檢查各個(gè)字段的值是否符合要求。
- 數(shù)據(jù)轉(zhuǎn)換:在將對(duì)象數(shù)據(jù)發(fā)送到前端或其他服務(wù)之前,可能需要提取對(duì)象值進(jìn)行序列化。
2.2 Object.values() 的性能特點(diǎn)
從性能角度講, Object.values() 要比手動(dòng)遍歷對(duì)象屬性快,因?yàn)樗莾?nèi)置的優(yōu)化過(guò)的函數(shù)。但是,與 Object.keys() 類似,它只能獲取到對(duì)象自身的屬性值,不會(huì)包括從原型鏈繼承來(lái)的屬性值。
2.3 使用 Object.values() 的實(shí)際示例
下面是一個(gè)使用 Object.values() 來(lái)獲取對(duì)象所有值的簡(jiǎn)單示例:
const object = {
a: 'some string',
b: 42,
c: false,
d: { hello: 'world' }
};
const values = Object.values(object);
console.log(values); // 輸出: ["some string", 42, false, { hello: 'world' }]
在上面的例子中, Object.values() 返回了對(duì)象 object 的所有自有屬性值的數(shù)組。
2.4 Object.values() 與 Object.keys() 的對(duì)比
Object.values() 和 Object.keys() 是姐妹方法,它們的主要區(qū)別在于返回值: Object.values() 返回對(duì)象的值,而 Object.keys() 返回對(duì)象的鍵(屬性名)。在實(shí)際應(yīng)用中,選擇哪一個(gè)取決于你需要處理的是鍵還是值。
2.5 Object.values() 在實(shí)際項(xiàng)目中的應(yīng)用
在實(shí)際的JavaScript項(xiàng)目中, Object.values() 可以用于多種情況。例如,當(dāng)你需要快速地獲取對(duì)象中的數(shù)據(jù)來(lái)展示在前端,或者你正在處理一些特定的數(shù)據(jù)結(jié)構(gòu),需要提取值進(jìn)行進(jìn)一步的邏輯處理。
2.6 Object.values() 的潛在問題
需要注意的是, Object.values() 方法在處理對(duì)象屬性值為 undefined 或 null 時(shí)可能不會(huì)返回預(yù)期的結(jié)果。此外,對(duì)于特殊類型的對(duì)象(如日期對(duì)象或正則表達(dá)式對(duì)象)返回的結(jié)果可能不是直接可用的,這可能需要額外的轉(zhuǎn)換或處理。
2.7 總結(jié)
Object.values() 是一個(gè)非常有用的內(nèi)置函數(shù),能夠幫助開發(fā)者快速地獲取對(duì)象的所有自有屬性值。通過(guò)理解它的用法和局限性,開發(fā)者可以在合適的情況下有效利用這一方法來(lái)簡(jiǎn)化代碼并提高性能。在下章中,我們將繼續(xù)探索JavaScript對(duì)象操作的其他技巧,如遍歷對(duì)象的多種方式。
3. 遍歷對(duì)象的技巧
遍歷對(duì)象是處理JavaScript中鍵值對(duì)數(shù)據(jù)結(jié)構(gòu)的基本操作之一。在這一章節(jié),我們會(huì)討論幾種遍歷對(duì)象屬性的方法,并且深入探討每種方法的適用場(chǎng)景和性能考量。理解這些技巧能夠幫助開發(fā)者更高效地操作對(duì)象數(shù)據(jù),編寫更健壯的代碼。
3.1 使用for...in循環(huán)遍歷對(duì)象
for...in 循環(huán)是JavaScript中最基礎(chǔ)的對(duì)象遍歷方式之一。它允許你遍歷一個(gè)對(duì)象的所有可枚舉屬性。這種循環(huán)會(huì)返回對(duì)象上所有可枚舉的屬性名。
const person = {
name: "Alice",
age: 25,
occupation: "Engineer"
};
for (const key in person) {
if (person.hasOwnProperty(key)) {
console.log(key, person[key]);
}
}
在上述代碼中, for...in 循環(huán)遍歷了 person 對(duì)象的所有屬性。 hasOwnProperty 方法用于確保屬性是對(duì)象自身的屬性,而不是繼承自原型鏈。
for...in循環(huán)的優(yōu)勢(shì)和注意事項(xiàng)
- 優(yōu)勢(shì) :
for...in循環(huán)語(yǔ)法簡(jiǎn)單,易于理解和使用。 - 注意事項(xiàng) :它會(huì)遍歷對(duì)象的所有可枚舉屬性,包括原型鏈上的屬性。如果不加篩選,可能會(huì)遍歷到一些不需要的屬性,因此需要搭配
hasOwnProperty一起使用。
3.2 使用Object.keys()和for...of循環(huán)遍歷對(duì)象
Object.keys() 方法會(huì)返回一個(gè)數(shù)組,包含對(duì)象自身的所有可枚舉屬性名。結(jié)合 for...of 循環(huán),我們可以遍歷屬性名數(shù)組,然后通過(guò)這些屬性名訪問對(duì)象的值。
const person = {
name: "Alice",
age: 25,
occupation: "Engineer"
};
const keys = Object.keys(person);
for (const key of keys) {
console.log(key, person[key]);
}
Object.keys()和for...of循環(huán)的組合優(yōu)勢(shì)
- 優(yōu)勢(shì) :
Object.keys()保證只獲取對(duì)象自身的屬性,避免了原型鏈上的屬性干擾。for...of提供了更現(xiàn)代的遍歷語(yǔ)法,比for...in更為直觀。
3.3 使用Object.values()和for...of循環(huán)遍歷對(duì)象
與 Object.keys() 類似, Object.values() 方法返回一個(gè)數(shù)組,包含對(duì)象自身的所有可枚舉屬性的值。使用 for...of 循環(huán)可以遍歷這個(gè)數(shù)組,獲取對(duì)象的值。
const person = {
name: "Alice",
age: 25,
occupation: "Engineer"
};
const values = Object.values(person);
for (const value of values) {
console.log(value);
}
Object.values()和for...of循環(huán)的組合優(yōu)勢(shì)
- 優(yōu)勢(shì) :直接獲取屬性值,使操作更為直接和簡(jiǎn)潔。適用于那些我們只關(guān)心對(duì)象屬性值的場(chǎng)景。
在以上三種遍歷對(duì)象的方法中,各有其適用場(chǎng)景。選擇合適的方法可以使代碼更清晰、更高效。通過(guò)本章的介紹,我們應(yīng)該能夠根據(jù)不同的需求選擇合適的遍歷方式,進(jìn)而有效地操作對(duì)象數(shù)據(jù)。接下來(lái)的章節(jié)將繼續(xù)探討對(duì)象操作的其他重要技巧,包括對(duì)象的淺拷貝技術(shù)。
4. 對(duì)象的淺拷貝技術(shù)
4.1 使用展開運(yùn)算符進(jìn)行淺拷貝
展開運(yùn)算符(spread syntax),表示為 ... ,是一種非常便捷的復(fù)制數(shù)組或者對(duì)象字面量的方法。在JavaScript中,展開運(yùn)算符可以用來(lái)創(chuàng)建對(duì)象的淺拷貝。
4.1.1 基本使用
要通過(guò)展開運(yùn)算符來(lái)拷貝一個(gè)對(duì)象,只需在一個(gè)新的對(duì)象字面量中包含原有的對(duì)象即可。如下:
const original = { a: 1, b: 2, c: 3 };
const shallowCopy = { ...original };
在上面的示例中, shallowCopy 就是 original 的一個(gè)淺拷貝。這意味著 shallowCopy 擁有 original 的所有屬性,但它們是存儲(chǔ)在不同的內(nèi)存地址上。
4.1.2 屬性的覆蓋
如果在展開操作的時(shí)候,同名屬性被定義多次,后定義的屬性值會(huì)覆蓋前面的值。例如:
const original = { a: 1, b: 2 };
const shallowCopy = { ...original, b: 3 };
console.log(shallowCopy); // 輸出 { a: 1, b: 3 }
4.1.3 嵌套對(duì)象的拷貝
展開運(yùn)算符在拷貝嵌套對(duì)象時(shí),仍然只是進(jìn)行淺拷貝。如果對(duì)象的屬性值是其他對(duì)象的引用,那么拷貝的僅僅是引用而非對(duì)象本身。
const original = { a: 1, b: { c: 2 } };
const shallowCopy = { ...original };
console.log(original.b === shallowCopy.b); // 輸出 true,表明兩個(gè)對(duì)象仍然引用同一地址
4.1.4 參數(shù)和擴(kuò)展性說(shuō)明
展開運(yùn)算符可以很方便地與其他屬性一起使用,形成復(fù)雜對(duì)象的創(chuàng)建和拷貝。但它只適用于對(duì)象或數(shù)組的頂層,不適用于深層次的嵌套結(jié)構(gòu)。
4.1.5 擴(kuò)展性討論
對(duì)于嵌套較深的對(duì)象,我們需要實(shí)現(xiàn)更深層次的拷貝機(jī)制,這將需要借助遞歸函數(shù)或者專門的庫(kù)函數(shù)來(lái)完成。
4.2 使用Object.assign()進(jìn)行淺拷貝
Object.assign() 是JavaScript中一個(gè)用于復(fù)制對(duì)象屬性的工具方法。雖然它的名字中包含"assign",但此方法常被用于實(shí)現(xiàn)對(duì)象的淺拷貝。
4.2.1 基本語(yǔ)法
Object.assign() 方法接受兩個(gè)或多個(gè)參數(shù),第一個(gè)參數(shù)是目標(biāo)對(duì)象,后面一個(gè)或多個(gè)參數(shù)是源對(duì)象。方法會(huì)將源對(duì)象的所有可枚舉屬性復(fù)制到目標(biāo)對(duì)象,并返回目標(biāo)對(duì)象。
const original = { a: 1, b: 2 };
const shallowCopy = Object.assign({}, original);
4.2.2 對(duì)象合并
Object.assign() 可以用于將多個(gè)源對(duì)象合并到一個(gè)目標(biāo)對(duì)象中。源對(duì)象中相同的屬性會(huì)被后面的源對(duì)象覆蓋。
const object1 = { a: 1 };
const object2 = { b: 2 };
const object3 = { c: 3 };
const mergedObject = Object.assign({}, object1, object2, object3);
console.log(mergedObject); // 輸出 { a: 1, b: 2, c: 3 }
4.2.3 修改原始對(duì)象的注意事項(xiàng)
使用 Object.assign() 創(chuàng)建對(duì)象的淺拷貝時(shí),如果源對(duì)象的屬性是對(duì)象類型,拷貝的僅僅是對(duì)象的引用。因此,修改拷貝后的對(duì)象也可能會(huì)影響到源對(duì)象。
const original = { a: { b: 1 } };
const shallowCopy = Object.assign({}, original);
shallowCopy.a.b = 2;
console.log(original.a.b); // 輸出 2,證明源對(duì)象的屬性也被改變了
4.2.4 代碼邏輯逐行解讀
const original = { a: { b: 1 } };:定義原始對(duì)象,其屬性a是一個(gè)對(duì)象。const shallowCopy = Object.assign({}, original);:使用Object.assign()方法創(chuàng)建了一個(gè)淺拷貝shallowCopy。shallowCopy.a.b = 2;:修改shallowCopy中嵌套對(duì)象的屬性。console.log(original.a.b);:輸出原始對(duì)象的相應(yīng)屬性值,顯示已被修改。
4.2.5 總結(jié)
Object.assign() 提供了一種快捷方便的方法來(lái)實(shí)現(xiàn)對(duì)象的淺拷貝,它非常適合于頂層屬性的拷貝和對(duì)象合并的場(chǎng)景。然而,由于淺拷貝的特性,使用時(shí)需要注意對(duì)象引用的管理和修改。
在下一章節(jié)中,我們將深入探討對(duì)象的深拷貝技術(shù),它能有效解決淺拷貝帶來(lái)的問題,并探討在復(fù)雜場(chǎng)景下如何正確使用拷貝技術(shù)。
5. 對(duì)象屬性的比較方法
在開發(fā)中,經(jīng)常會(huì)遇到需要比較兩個(gè)對(duì)象屬性的場(chǎng)景,比如驗(yàn)證數(shù)據(jù)結(jié)構(gòu)是否一致、同步更新狀態(tài)或者在數(shù)據(jù)處理中確認(rèn)屬性是否相等。本章節(jié)將深入探討JavaScript中對(duì)象屬性比較的各種方法,從鍵值對(duì)的淺比較到使用工具函數(shù)進(jìn)行更復(fù)雜的深度比較。
5.1 比較對(duì)象的鍵
在某些情況下,我們可能只關(guān)心對(duì)象中鍵的存在性而不關(guān)心值的比較。比較兩個(gè)對(duì)象的鍵,一個(gè)簡(jiǎn)單的方法是使用 Object.keys() 方法獲取兩個(gè)對(duì)象的鍵數(shù)組,然后使用數(shù)組的方法進(jìn)行比較。
function compareKeys(obj1, obj2) {
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
return keys1.every(key => keys2.includes(key));
}
// 示例
const objA = { a: 1, b: 2, c: 3 };
const objB = { a: 1, b: 2, c: 3 };
const objC = { a: 1, b: 2, d: 4 };
console.log(compareKeys(objA, objB)); // true
console.log(compareKeys(objA, objC)); // false
上述代碼段展示了如何比較兩個(gè)對(duì)象的鍵。首先獲取兩個(gè)對(duì)象的鍵數(shù)組,然后比較這兩個(gè)數(shù)組的長(zhǎng)度。如果長(zhǎng)度相同,使用 Array.prototype.every() 方法檢查 obj1 的每個(gè)鍵是否都存在于 obj2 中。
5.2 比較對(duì)象的值
比較對(duì)象的值,可以通過(guò)編寫遞歸函數(shù)遍歷對(duì)象的所有屬性,并對(duì)每一層的值進(jìn)行比較。這種方法可以處理簡(jiǎn)單數(shù)據(jù)類型的比較,也能處理對(duì)象和數(shù)組等復(fù)雜數(shù)據(jù)類型的嵌套比較。
5.2.1 簡(jiǎn)單數(shù)據(jù)類型的比較
對(duì)于基本數(shù)據(jù)類型,如 string , number , boolean 等,可以直接使用 === 進(jìn)行比較。
function compareValues(obj1, obj2) {
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
return keys1.every(key => obj1[key] === obj2[key]);
}
// 示例
const objX = { a: 1, b: 'hello' };
const objY = { a: 1, b: 'hello' };
const objZ = { a: 1, b: 'world' };
console.log(compareValues(objX, objY)); // true
console.log(compareValues(objX, objZ)); // false
5.2.2 復(fù)雜數(shù)據(jù)類型的比較
對(duì)于包含復(fù)雜數(shù)據(jù)類型(如對(duì)象和數(shù)組)的對(duì)象,需要逐個(gè)深入比較每個(gè)屬性的值。
function deepEqual(obj1, obj2) {
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
return keys1.every(key => {
const val1 = obj1[key];
const val2 = obj2[key];
const isObjects = isObject(val1) && isObject(val2);
return isObjects ? deepEqual(val1, val2) : val1 === val2;
});
}
function isObject(obj) {
return obj === Object(obj);
}
// 示例
const complexObj1 = { a: 1, b: { c: 2 } };
const complexObj2 = { a: 1, b: { c: 2 } };
const complexObj3 = { a: 1, b: { c: 3 } };
console.log(deepEqual(complexObj1, complexObj2)); // true
console.log(deepEqual(complexObj1, complexObj3)); // false
在 deepEqual 函數(shù)中,使用 isObject 輔助函數(shù)來(lái)判斷屬性值是否為對(duì)象,并且在值為對(duì)象時(shí)遞歸調(diào)用 deepEqual 進(jìn)行深度比較。
5.2.3 對(duì)比結(jié)果分析
通過(guò)鍵的比較可以快速判斷兩個(gè)對(duì)象結(jié)構(gòu)是否相同,而通過(guò)值的比較可以深入到數(shù)據(jù)內(nèi)部進(jìn)行詳細(xì)的比對(duì)。簡(jiǎn)單數(shù)據(jù)類型值的比較可以快速完成,但當(dāng)對(duì)象結(jié)構(gòu)嵌套較深或結(jié)構(gòu)復(fù)雜時(shí),深度比較函數(shù)需要遞歸處理,性能開銷相對(duì)較大。
在實(shí)際應(yīng)用中,選擇合適的比較方法取決于具體需求。例如,如果應(yīng)用場(chǎng)景中對(duì)象結(jié)構(gòu)相對(duì)簡(jiǎn)單,且數(shù)據(jù)變化不頻繁,可以優(yōu)先考慮使用簡(jiǎn)單的 === 比較。如果對(duì)象結(jié)構(gòu)復(fù)雜或需要精確同步數(shù)據(jù)狀態(tài),則應(yīng)當(dāng)使用深度比較方法。
在下一章節(jié)中,我們將探討如何基于對(duì)象屬性值進(jìn)行計(jì)算,比如求和、求極值等,這些都是在數(shù)據(jù)處理中非常實(shí)用的技巧。
6. 基于屬性值進(jìn)行的計(jì)算
在處理JavaScript對(duì)象時(shí),我們經(jīng)常需要對(duì)對(duì)象中的屬性值進(jìn)行各種計(jì)算。這包括計(jì)算所有值的總和、找出最大值和最小值等。掌握這些計(jì)算方法將使我們能夠有效地利用對(duì)象數(shù)據(jù)進(jìn)行更復(fù)雜的操作。
6.1 計(jì)算對(duì)象的所有值的和
要計(jì)算一個(gè)對(duì)象中所有值的總和,我們可以使用 Object.values() 方法獲取對(duì)象值的數(shù)組,然后使用數(shù)組的 reduce 方法來(lái)進(jìn)行累加。
function sumObjectValues(obj) {
return Object.values(obj).reduce((a, b) => a + b, 0);
}
const myObject = { a: 1, b: 2, c: 3 };
const sum = sumObjectValues(myObject); // 輸出: 6
console.log(sum);
在這個(gè)函數(shù)中, Object.values(myObject) 將獲取 {a: 1, b: 2, c: 3} 中的所有值,即 [1, 2, 3] 。然后 reduce 方法被用來(lái)將這個(gè)數(shù)組中的所有元素相加。
6.2 計(jì)算對(duì)象的最大值和最小值
為了找出對(duì)象中所有值的最大值和最小值,我們可以對(duì)獲取到的值數(shù)組使用 Math.max.apply() 和 Math.min.apply() 方法。
function findMaxValue(obj) {
return Math.max.apply(null, Object.values(obj));
}
function findMinValue(obj) {
return Math.min.apply(null, Object.values(obj));
}
const myObject = { a: 10, b: 2, c: 8 };
const maxValue = findMaxValue(myObject); // 輸出: 10
const minValue = findMinValue(myObject); // 輸出: 2
console.log(maxValue, minValue);
這里的 Math.max.apply() 和 Math.min.apply() 方法分別用于計(jì)算給定數(shù)字?jǐn)?shù)組的最大值和最小值。注意,由于 apply 方法的第一個(gè)參數(shù)是需要調(diào)用 Math.max 和 Math.min 的對(duì)象上下文(在這里我們不需要,所以我們傳入 null ),我們傳遞了 Object.values(obj) 作為第二個(gè)參數(shù),它包含了對(duì)象的所有值。
通過(guò)這些基本的計(jì)算方法,我們可以輕松地對(duì)對(duì)象進(jìn)行各種數(shù)值統(tǒng)計(jì)分析,從而為更復(fù)雜的數(shù)據(jù)操作和分析打下基礎(chǔ)。下一章,我們將探討不可枚舉屬性和Symbol屬性對(duì)對(duì)象操作的影響。
總結(jié)
到此這篇關(guān)于JavaScript中Object.keys()與Object.values()實(shí)用技巧的文章就介紹到這了,更多相關(guān)JS中Object.keys()與Object.values()的技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
EL表達(dá)式截取字符串的函數(shù)說(shuō)明
這篇文章主要介紹了EL表達(dá)式截取字符串的函數(shù)說(shuō)明,在文章下面給大家介紹了JSTL中自帶的方法列表以及其描述,需要的朋友參考下吧2017-09-09
javscript 數(shù)組扁平化的實(shí)現(xiàn)
這篇文章主要介紹了javscript 數(shù)組扁平化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
JS使用AudioContext實(shí)現(xiàn)音頻流實(shí)時(shí)播放
這篇文章主要為大家詳細(xì)介紹了JavaScript如何使用AudioContext實(shí)現(xiàn)音頻流實(shí)時(shí)播放功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Webpack學(xué)習(xí)之動(dòng)態(tài)import原理及源碼分析
這篇文章主要為大家介紹了Webpack學(xué)習(xí)之動(dòng)態(tài)import原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
微信小程序錄音實(shí)現(xiàn)功能并上傳(使用node解析接收)
在我們的日常開發(fā)中經(jīng)常會(huì)遇到錄音功能,并上傳到服務(wù)器,今天小編給大家分享微信小程序錄音功能實(shí)現(xiàn)并上傳錄音文件,使用node解析接收,需要的朋友可以參考下2020-02-02
基于JavaScript實(shí)現(xiàn)跳轉(zhuǎn)提示頁(yè)面
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)跳轉(zhuǎn)提示頁(yè)面 的相關(guān)資料,需要的朋友可以參考下2016-09-09
JS字符串和數(shù)組如何實(shí)現(xiàn)相互轉(zhuǎn)化
這篇文章主要介紹了JS字符串和數(shù)組如何實(shí)現(xiàn)相互轉(zhuǎn)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
不用ajax實(shí)現(xiàn)點(diǎn)擊文字即可編輯的方法
本文給大家分享一段代碼不使用ajax實(shí)現(xiàn)點(diǎn)擊文字即可編輯的方法,代碼簡(jiǎn)單易懂,需要的朋友參考下吧2007-12-12

