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

JavaScript中三種for循環(huán)語句的使用總結(jié)(for、for...in、for...of)

 更新時(shí)間:2021年06月30日 10:39:47   作者:編程三昧  
這篇文章主要給大家介紹了關(guān)于JavaScript中三種for循環(huán)語句的使用的相關(guān)資料,For循環(huán)用在需要重復(fù)執(zhí)行的某些代碼,本文介紹的三種for循環(huán)分別包括for、for...in、for...of,需要的朋友可以參考下

前言

每個(gè)接觸JS的開發(fā)人員都不可避免的與for循環(huán)打交道,畢竟這是遍歷必不可少的工具之一。JavaScript 中的 for 循環(huán)語句相信大家都已經(jīng)快用厭了,現(xiàn)在有好多文章都在講怎么減少代碼中的 for 循環(huán)語句,但是,你又不得不承認(rèn)它們真的很有用。今天,我來總結(jié)一下前端 JavaScript 中三種 for 循環(huán)語句。

for

這大概是應(yīng)用最廣的循環(huán)語句了吧,簡單實(shí)用,且大多數(shù)時(shí)候性能還是在線的,唯一的缺點(diǎn)大概就是太普通,沒有特色,導(dǎo)致很多人現(xiàn)在不愿用它。

const array = [4, 7, 9, 2, 6];
for (let index = 0; index < array.length; index++) {
    const element = array[index];
    console.log(element);
}
// 4, 7, 9, 2, 6

for...in

for...in 語句可以以任意順序遍歷一個(gè)對象的除 Symbol 以外的可枚舉屬性。

const temp = {name: "temp"};
function Apple() {
    this.color = 'red';
}

Apple.prototype = temp;

const obj = new Apple();

for (const prop in obj) {
    console.log(`obj.${ prop } = ${ obj[prop] }`);
}

// obj.color = red
// obj.name = temp

如果你只要考慮對象本身的屬性,而不是它的原型,那么使用  getOwnPropertyNames() 或執(zhí)行 hasOwnProperty() 來確定某屬性是否是對象本身的屬性。

const temp = {name: "temp"};
function Apple() {
    this.color = 'red';
}

Apple.prototype = temp;

const obj = new Apple();

for (const prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        console.log(`obj.${ prop } = ${ obj[prop] }`);
    }
}

// obj.color = red

當(dāng)然,也可以用來遍歷數(shù)組。

const arr = [1, 2, 3, 4, 5];
for (const key in arr) {
    console.log(key)
}
// 0,1,2,3,4

使用 for...in 可以遍歷數(shù)組,但是會(huì)存在以下問題:

  1. index 索引為字符串型數(shù)字(注意,非數(shù)字),不能直接進(jìn)行幾何運(yùn)算。
  2. 遍歷順序有可能不是按照實(shí)際數(shù)組的內(nèi)部順序(可能按照隨機(jī)順序)。

所以一般不建議使用 for...in 來遍歷數(shù)組。

for...of

for...of 語句在可迭代對象(包括 Array,Map,Set,String,TypedArray,arguments 對象等等)上創(chuàng)建一個(gè)迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個(gè)不同屬性的值執(zhí)行語句。

const array = ['a', 'b', 'c'];
for (const element of array) {
    console.log(element);
}

// a
// b
// c

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

  • for...in 語句以任意順序迭代對象的可枚舉屬性。
  • for...of 語句遍歷可迭代對象定義要迭代的數(shù)據(jù)。
Object.prototype.objCustom = function () { };
Array.prototype.arrCustom = function () { };

let iterable = [3, 5, 7];
iterable.foo = 'hello';

for (const key in iterable) {
    console.log(key); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}
// 0, 1, 2, "foo", "arrCustom", "objCustom"

for (const key of iterable) {
    console.log(key);
}
// 3, 5, 7

使用 for...of 遍歷 Map 結(jié)構(gòu):

let nodes = new Map();
nodes.set("node1", "t1")
    .set("node2", "t2")
    .set("node3", "t3");

for (const [node, content] of nodes) {
    console.log(node, content);
}
// node1 t1
// node2 t2
// node3 t3

可以看出,使用 for...of 遍歷 Map 結(jié)構(gòu)還是挺方便的,推薦使用!

總結(jié)

  1. 如果普通 for 循環(huán)用膩了,推薦使用 for...of 來替代。
  2. 這三種循環(huán)都可以使用 break 關(guān)鍵字來終止循環(huán),也可以使用 continue 關(guān)鍵字來跳過本次循環(huán)。
  3. for...of 循環(huán)的適用范圍最大。

到此這篇關(guān)于JavaScript中三種for循環(huán)語句使用總結(jié)的文章就介紹到這了,更多相關(guān)JS中for循環(huán)語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談js中test()函數(shù)在正則中的使用

    淺談js中test()函數(shù)在正則中的使用

    下面小編就為大家?guī)硪黄獪\談js中test()函數(shù)在正則中的使用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 微信小程序-API接口安全詳解

    微信小程序-API接口安全詳解

    這篇文章主要介紹了微信小程序-API接口安全詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Babel轉(zhuǎn)譯失敗的常見原因及解決方案

    Babel轉(zhuǎn)譯失敗的常見原因及解決方案

    Babel是一個(gè)JavaScript編譯器,用于將現(xiàn)代JavaScript代碼轉(zhuǎn)換為兼容舊版瀏覽器和運(yùn)行環(huán)境的JavaScript代碼,然而,在項(xiàng)目中使用Babel進(jìn)行轉(zhuǎn)譯時(shí),有時(shí)會(huì)遇到轉(zhuǎn)譯失敗的問題,本文將詳細(xì)分析Babel轉(zhuǎn)譯失敗的常見原因,并提供相應(yīng)的解決方案,需要的朋友可以參考下
    2025-02-02
  • 微信小程序填寫用戶頭像和昵稱實(shí)現(xiàn)方法淺析

    微信小程序填寫用戶頭像和昵稱實(shí)現(xiàn)方法淺析

    這篇文章主要介紹了微信小程序填寫用戶頭像和昵稱實(shí)現(xiàn)方法,我們使用小程序往往能碰到提示允許獲取用戶頭像昵稱,這種功能怎么實(shí)現(xiàn)呢?本篇文章帶你探索
    2023-02-02
  • Typescript井字棋的項(xiàng)目實(shí)現(xiàn)

    Typescript井字棋的項(xiàng)目實(shí)現(xiàn)

    本文主要介紹了Typescript井字棋的項(xiàng)目實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • js原生日歷的實(shí)例(推薦)

    js原生日歷的實(shí)例(推薦)

    下面小編就為大家?guī)硪黄猨s原生日歷的實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • JS實(shí)現(xiàn)在線ps功能詳解

    JS實(shí)現(xiàn)在線ps功能詳解

    這篇文章主要介紹了JS實(shí)現(xiàn)在線ps功能詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 基于JavaScript實(shí)現(xiàn)滑動(dòng)門效果

    基于JavaScript實(shí)現(xiàn)滑動(dòng)門效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)滑動(dòng)門效果的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • js基礎(chǔ)之DOM中document對象的常用屬性方法詳解

    js基礎(chǔ)之DOM中document對象的常用屬性方法詳解

    下面小編就為大家?guī)硪黄猨s基礎(chǔ)之DOM中document對象的常用屬性方法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-10-10
  • IE瀏覽器下JS腳本提交表單后,不能自動(dòng)提示問題解決方法

    IE瀏覽器下JS腳本提交表單后,不能自動(dòng)提示問題解決方法

    這篇文章主要介紹了IE瀏覽器下JS腳本提交表單后,不能自動(dòng)提示問題解決方法,涉及IE瀏覽器配置與javascript事件處理操作技巧,需要的朋友可以參考下
    2019-06-06

最新評論

博兴县| 华坪县| 冕宁县| 亚东县| 富裕县| 松阳县| 文水县| 休宁县| 富阳市| 南靖县| 阜宁县| 天水市| 彩票| 固原市| 木里| 轮台县| 镇原县| 甘谷县| 汉源县| 常宁市| 大庆市| 丹巴县| 杭锦旗| 龙井市| 忻州市| 九台市| 金寨县| 呼玛县| 南京市| 伊宁县| 石楼县| 汉川市| 那曲县| 拉孜县| 郯城县| 临西县| 诏安县| 无棣县| 钦州市| 建平县| 安福县|