Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将with语句转换为可切换的if_Javascript_If Statement_Bookmarklet - Fatal编程技术网

Javascript 将with语句转换为可切换的if

Javascript 将with语句转换为可切换的if,javascript,if-statement,bookmarklet,Javascript,If Statement,Bookmarklet,我正在尝试制作一个bookmarklet,可以用来快速切换元素的类/id。我发现这个[旧]代码用于切换突出显示链接。我已经读到,除非您使用的是use strict,否则应该避免使用with语句。我找不到任何有关使用的与的外观的演练,也不确定它的外观 javascript:for(nIx5Bs=0;nIx5Bs

我正在尝试制作一个bookmarklet,可以用来快速切换元素的
/
id
。我发现这个[旧]代码用于切换突出显示链接。我已经读到,除非您使用的是
use strict,否则应该避免使用
with
语句。我找不到任何有关使用
的外观的演练,也不确定它的外观

javascript:for(nIx5Bs=0;nIx5Bs}
with试图在块作用域之前阻止变量的作用域:),它与循环无关

意思是在这个代码块中从
文档开始。所有[nIx5Bs].style
和引用的任何变量(
backgroundColor
)都附加到该点。 更现代的代码将使用
let
const
来阻止作用域

for (let i = 0, max = document.all.length; i < max; i++) {
  let doc = document.all[i];

  if (doc.tagName === 'a') { 
    let style = doc.style; 
    if (style.backgroundColor !== 'yellow') {
      style.backgroundColor = 'yellow';
      continue;
    }
    style.backgroundColor = document.bgColor;
  }
}
for(设i=0,max=document.all.length;i
仅供参考,
void(…)
部分内容毫无意义。只要去掉
空白(
,它们就没有任何作用了。我知道那部分。这不是你说的我的代码,但你似乎对JS也很陌生,所以…我不是新手,我承认我没有其他开发人员那么快地使用它-我已经5年没有认真地编写代码了