Javascript 更换';让';与';var';不改变代码逻辑

Javascript 更换';让';与';var';不改变代码逻辑,javascript,Javascript,我有一个两个函数,使用新的格式。我想更改此代码,但我需要此函数执行完全相同的操作 第一个功能: let sts = $(".st--footer-column"); for (let i of sts) { while (i.childElementCount) { i.parentNode.appendChild(i.firstElementChild) } i.parentNode.removeChild(i) } let groups = $(".st-footer

我有一个两个函数,使用新的格式。我想更改此代码,但我需要此函数执行完全相同的操作

第一个功能:

let sts = $(".st--footer-column");

for (let i of sts) {
  while (i.childElementCount) {
    i.parentNode.appendChild(i.firstElementChild)
  }
  i.parentNode.removeChild(i)
}
let groups = $(".st-footer--navigation");

let child = groups.find('.st--footer-column');

if (!child.length) {
  for (let i of groups) {
    let childrens = i.children;
    let stFooterColumn = document.createElement("div");

    // add the class
    stFooterColumn.classList.add("st--footer-column");

    // add each child to the new div
    while (childrens.length) {
      stFooterColumn.appendChild(childrens[0])
    }

    // append the div to previews to group
    i.appendChild(stFooterColumn)
  }
}
第二个功能:

let sts = $(".st--footer-column");

for (let i of sts) {
  while (i.childElementCount) {
    i.parentNode.appendChild(i.firstElementChild)
  }
  i.parentNode.removeChild(i)
}
let groups = $(".st-footer--navigation");

let child = groups.find('.st--footer-column');

if (!child.length) {
  for (let i of groups) {
    let childrens = i.children;
    let stFooterColumn = document.createElement("div");

    // add the class
    stFooterColumn.classList.add("st--footer-column");

    // add each child to the new div
    while (childrens.length) {
      stFooterColumn.appendChild(childrens[0])
    }

    // append the div to previews to group
    i.appendChild(stFooterColumn)
  }
}

我会让它们保持原样,但如果你想更改它们,你可以直接替换
let
var
,功能将保持不变,特别是因为你说它们是函数

var
仅限于函数的作用域,因此它不会影响函数之外的任何内容

function firstFunction() {
    var sts = $(".st--footer-column");

    for (var i of sts) {
        while (i.childElementCount) {
            i.parentNode.appendChild(i.firstElementChild);
        }
        i.parentNode.removeChild(i);
    }
}

function secondFunction() {
    var groups = $(".st-footer--navigation");

    var child = groups.find(".st--footer-column");

    if (!child.length) {
        for (var i of groups) {
            var childrens = i.children;
            var stFooterColumn = document.createElement("div");

            // add the class
            stFooterColumn.classList.add("st--footer-column");

            // add each child to the new div
            while (childrens.length) {
                stFooterColumn.appendChild(childrens[0]);
            }

            // append the div to previews to group
            i.appendChild(stFooterColumn);
        }
    }
}
let
是块作用域,但在您给出的示例中,替换为
var
不会影响函数的其余部分

function firstFunction() {
    var sts = $(".st--footer-column");

    for (var i of sts) {
        while (i.childElementCount) {
            i.parentNode.appendChild(i.firstElementChild);
        }
        i.parentNode.removeChild(i);
    }
}

function secondFunction() {
    var groups = $(".st-footer--navigation");

    var child = groups.find(".st--footer-column");

    if (!child.length) {
        for (var i of groups) {
            var childrens = i.children;
            var stFooterColumn = document.createElement("div");

            // add the class
            stFooterColumn.classList.add("st--footer-column");

            // add each child to the new div
            while (childrens.length) {
                stFooterColumn.appendChild(childrens[0]);
            }

            // append the div to previews to group
            i.appendChild(stFooterColumn);
        }
    }
}

为什么?您是否尝试过简单地将其替换为
var
?可能有帮助当您试图用
var
替换
let
时出现了什么问题?为什么您认为这是给定代码中的一个问题?欢迎使用堆栈溢出!请拿着(你得到了一个徽章!),四处看看,仔细阅读,尤其是乔恩·斯基特的也很有用。改变的目标是什么?你的新版本有什么不起作用?是什么让你特别关注
let
?(你也有
for of
,它是在同一个更新--ES2015中引入的,正如
let
(仅供参考:在英语中,“children”已经是复数,所以你不用“childrens”。[有一个不相关的缩写,“children's”,但那是一个所有格--“children'sroom”。)