最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

typescript 中 for..of 和 for..in的區(qū)別

 更新時(shí)間:2025年10月10日 09:55:38   作者:心隨雨下  
本文主要介紹了typescript 中 for..of 和 for..in的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

for..of - 遍歷值

用于遍歷可迭代對(duì)象的值(數(shù)組元素、字符串字符、Map/Set 的值等)。

// 數(shù)組
const arr = [10, 20, 30];
for (const value of arr) {
  console.log(value); // 10, 20, 30
}

// 字符串
const str = "hello";
for (const char of str) {
  console.log(char); // 'h', 'e', 'l', 'l', 'o'
}

// Map
const map = new Map([['a', 1], ['b', 2]]);
for (const [key, value] of map) {
  console.log(key, value); // 'a' 1, 'b' 2
}

for..in - 遍歷鍵/屬性名

用于遍歷對(duì)象的可枚舉屬性名(包括原型鏈上的屬性)。

// 對(duì)象
const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
  console.log(key); // 'a', 'b', 'c'
  console.log(obj[key]); // 1, 2, 3
}

// 數(shù)組(不推薦)
const arr = [10, 20, 30];
for (const index in arr) {
  console.log(index); // '0', '1', '2' (字符串)
  console.log(arr[index]); // 10, 20, 30
}

主要區(qū)別

特性for..offor..in
遍歷內(nèi)容鍵/屬性名
適用對(duì)象可迭代對(duì)象任何對(duì)象
原型鏈屬性不遍歷會(huì)遍歷
數(shù)組索引類型不適用字符串
性能通常更好稍慢

實(shí)際使用建議

// 數(shù)組 - 使用 for..of
const numbers = [1, 2, 3];
for (const num of numbers) {
  console.log(num); // 1, 2, 3
}

// 對(duì)象 - 使用 for..in(配合 hasOwnProperty)
const person = { name: "John", age: 30 };
for (const key in person) {
  if (person.hasOwnProperty(key)) {
    console.log(`${key}: ${person[key]}`);
  }
}

// 更好的對(duì)象遍歷方式
Object.keys(person).forEach(key => {
  console.log(`${key}: ${person[key]}`);
});

// 或者使用 Object.entries
for (const [key, value] of Object.entries(person)) {
  console.log(`${key}: ${value}`);
}

重要注意事項(xiàng)

class Person {
  name: string;
  age: number;
  
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}

Person.prototype.gender = 'male'; // 在原型上添加屬性

const john = new Person('John', 25);

// for..in 會(huì)遍歷原型鏈上的屬性
for (const key in john) {
  console.log(key); // 'name', 'age', 'gender'
}

// for..of 不能直接用于普通對(duì)象
// 這會(huì)報(bào)錯(cuò):TypeError: john is not iterable
// for (const value of john) { }

總結(jié):使用 for..of 遍歷數(shù)組和可迭代對(duì)象的值,使用 for..in(謹(jǐn)慎地)遍歷對(duì)象的屬性名。

到此這篇關(guān)于typescript 中 for..of 和 for..in的區(qū)別的文章就介紹到這了,更多相關(guān)typescript for..of 和 for..in內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • xWin之JS版(2-26更新)

    xWin之JS版(2-26更新)

    xWin之JS版(2-26更新)...
    2007-01-01
  • 前端實(shí)現(xiàn)加密的常見(jiàn)方法和步驟

    前端實(shí)現(xiàn)加密的常見(jiàn)方法和步驟

    這篇文章主要介紹了前端實(shí)現(xiàn)加密的常見(jiàn)方法和步驟,包括對(duì)稱(AES)、非對(duì)稱(RSA/ECC)及哈希(SHA-256)算法,推薦使用WebCryptoAPI、CryptoJS等工具,需要的朋友可以參考下
    2025-06-06
  • uniapp開(kāi)發(fā)H5使用formData上傳文件解決方案

    uniapp開(kāi)發(fā)H5使用formData上傳文件解決方案

    我們很多時(shí)候上傳文件就是使用FormData,然而uniapp默認(rèn)不支持FormData類型數(shù)據(jù)的上傳,下面這篇文章主要給大家介紹了關(guān)于uniapp開(kāi)發(fā)H5使用formData上傳文件的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • TypeScript學(xué)習(xí)筆記之類型窄化篇

    TypeScript學(xué)習(xí)筆記之類型窄化篇

    目前用TypeScript的人越來(lái)越多,尤其是一些大廠,大的項(xiàng)目,github上面很多開(kāi)源項(xiàng)目也都是ts語(yǔ)法編譯的,這篇文章主要給大家介紹了關(guān)于TypeScript學(xué)習(xí)筆記之類型窄化的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • js中cookie的使用詳細(xì)分析

    js中cookie的使用詳細(xì)分析

    JavaScript中的另一個(gè)機(jī)制:cookie,則可以達(dá)到真正全局變量的要求。 cookie是瀏覽器 提供的一種機(jī)制,它將document 對(duì)象的cookie屬性提供給JavaScript??梢杂蒍avaScript對(duì)其進(jìn)行控制,而并不是JavaScript本身的性質(zhì)。
    2008-05-05
  • WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn)

    WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn)

    這篇文章主要介紹了WordPress中鼠標(biāo)懸停顯示和隱藏評(píng)論及引用按鈕的實(shí)現(xiàn),順帶顯示和隱藏評(píng)論者信息的實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下
    2016-01-01
  • JavaScript中閉包(Closure)舉例深度講解

    JavaScript中閉包(Closure)舉例深度講解

    閉包可以用來(lái)模擬塊級(jí)作用域,從而避免變量污染和命名沖突,下面這篇文章主要介紹了JavaScript中閉包(Closure)的相關(guān)資料,文中通過(guò)代碼介紹非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • vue3 uniapp微信登錄功能實(shí)現(xiàn)

    vue3 uniapp微信登錄功能實(shí)現(xiàn)

    根據(jù)最新的微信小程序官方的規(guī)定,uniapp中的uni.getUserInfo方法不再返回用戶頭像和昵稱、以及手機(jī)號(hào),這篇文章主要介紹了vue3 uniapp微信登錄功能實(shí)現(xiàn),需要的朋友可以參考下
    2024-04-04
  • javascript入門之?dāng)?shù)組[新手必看]

    javascript入門之?dāng)?shù)組[新手必看]

    本文介紹了javascript 數(shù)組的定義和數(shù)組元素的操作,ECMAScript中的數(shù)組方法...希望對(duì)大家有所幫助
    2016-11-11
  • JavaScript深入介紹WebAPI的用法

    JavaScript深入介紹WebAPI的用法

    JS分成三個(gè)大的部分:ECMAScript、DOM API、BOM API,其中:ECMAScript是讓前端開(kāi)發(fā)建立基本的編程思維。但是要想真正來(lái)寫一個(gè)更加復(fù)雜的有交互式的頁(yè)面,還需要WebAPI的支持,相當(dāng)于把后端編程實(shí)現(xiàn)成前端交互。DOM+BOM就組成了WebAPI
    2022-06-06

最新評(píng)論

兴国县| 奉贤区| 青铜峡市| 漯河市| 新巴尔虎右旗| 云阳县| 瑞昌市| 恩平市| 大英县| 衡东县| 林甸县| 雷州市| 白城市| 莫力| 康定县| 兴文县| 长乐市| 道孚县| 启东市| 福清市| 桃园县| 兴化市| 淳化县| 新泰市| 元氏县| 张掖市| 阿巴嘎旗| 清水县| 漠河县| 靖边县| 赣榆县| 嘉善县| 红安县| 五大连池市| 吕梁市| 南京市| 禹州市| 汝阳县| 商都县| 堆龙德庆县| 郴州市|