javascirpt中的for...in循环

Posted 低代码布道师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascirpt中的for...in循环相关的知识,希望对你有一定的参考价值。

在学习微搭官方模板时候,有挺多不懂得地方,本着不懂就查的原则,一点点读一下官方的源代码,读懂了自己也就会了,水平和能力也就提高了。

具体是啥不会呢?我们先贴一段官方的代码

/**
 * @description 格式话时间
 */
function dateFormat(fmt, date) 
    let ret;
    const opt = 
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    ;
    for (let k in opt) 
        console.log(k)
        ret = new RegExp("(" + k + ")").exec(fmt);
        console.log(ret)
        if (ret) 
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        ;
    ;
    return fmt;

这里的for in循环就不太会,于是百度一下这个语法

看看MDN是怎么解释的,js的学习我推荐看MDN的教程,比较全面而且也比较易懂

for…in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性

看来是要获取对象的键的,而且给出了一段示例代码

var obj = a:1, b:2, c:3;

for (var prop in obj) 
  console.log("obj." + prop + " = " + obj[prop]);


// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

这个格式化代码看似比较简短,但是里边包含的知识点还是不少的,先学会这个了,里边正则表达式也不怎么会,还是需要继续学习的。

以上是关于javascirpt中的for...in循环的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript for...in 循环

JavaScript for...in 循环

Python“for in”循环打印列表中的最后一项

JS中for...in 语句用于对数组或者对象的属性进行循环操作吗?

JavaScript 循环

js关于for