javascript - function(x)中的x是代表什么?
本文介绍了javascript - function(x)中的x是代表什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
for (var i=0; i < document.getElementsByClassName('gg_blank').length; i++) {
var tabletd_gg=document.getElementsByClassName('gg_blank')[i].innerHTML;
var count = 0;
var res_gg = tabletd_gg.replace(/~/g, function(x){ var symbol = count++ == 1 ? '~<br/>' : x; return symbol;});
document.getElementsByClassName('gg_blank')[i].innerHTML=res_gg;
}
function(x){ var symbol = count++ == 1 ? '~<br/>' : x; return symbol;}
这句话咋理解啊,主要不知道x代表的是啥,我好蠢
解决方案
咦 这不是我昨天写的么
楼上 @leeyong 已经贴了 MDN 的图了
语法是:str.replace(regexp|substr, newSubStr|function)
其中第二个参数如果传方法的话,会有三个参数:
参数1:匹配到的字符串 (string)
正则写的是 /~/g
所以第一个参数 (x)
为 ~
参数2:匹配到的字符串的索引位置 (int)
参数3:要替换的原字符串 就是 str
回调函数的参数可以随意命名 临时的无意义的我习惯命名 x
你也可以换一个有意义点的名称
顺便提一句 一般这种我都会用 ES6
的 Arrow Function
(lambda 表达式)
来写:
str.replace(/~/g, x => count++ == 1 ? '~<br/>' : x);
// 等价于
str.replace(/~/g, function(x) { return count++ == 1 ? '~<br/>' : x });
只不过现在支持这种写法的浏览器比较少 需要用 Babel
转码才能完全使用
这篇关于javascript - function(x)中的x是代表什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文