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”。)