javascript - SO 的 javascript 中的 "".split( "")

标签 javascript

我见过很多成语,一旦解释清楚,其中的大部分都很聪明且合乎逻辑。但是当我查看 SO 的 javascript 以获取有关良好界面设计的一些想法时,我看到了以下行:

initTagRenderer("".split(" "), "".split(" "));

这真的让我大吃一惊。显然,它们使用两个数组初始化标记渲染器,其中只包含一个空字符串参数(或 [""]"".split("") 的计算结果) .我理解那部分(在我自己的代码中做了同样的事情)。但似乎传递文字会完成同样的事情。

作为一个新手(对于 js,而不是编程),是否有一些不明显的原因让我没有看到这样做?

此外,我确实尝试搜索,并获得了很多关于 split() 本身的信息(我已经非常了解),但不是习语;在谷歌上搜索双引号是徒劳的。

编辑:这是显而易见的答案。这部分代码是动态生成的,通常不会在 SO 上填充。

最佳答案

可能有服务器端代码动态填充这些参数,看起来像这样:

initTagRenderer("javascript php".split(" "), "ruby lisp".split(" "));

这个函数是做什么的,我不知道。但它必须需要一个标签名称数组,并且生成一个以空格分隔的列表比生成一个 JS 数组文字更容易。

编辑

经过一些英勇的调查,看来 initTagRenderer 确实很好地格式化了问题标签。与第一个参数中的名称匹配的标签被赋予 required-tag 类,与第二个参数匹配的标签被赋予 moderator-tag 类。

根据 Madmartigan 的说法,它用于元数据:

initTagRenderer(
     "bug feature-request discussion support".split(" "),
     "faq status-completed status-declined status-bydesign status-norepro status-reproduced status-planned status-deferred status-review featured community-ads".split(" ")
);

View example


full.js 的相关(但缩小)行:

function initTagRenderer(f,c){window.tagRenderer||(window.tagRendererRaw=function(b,g){var g=g||"",e="";g||(f&&-1<$.inArray(b,f)?e=" required-tag":c&&-1<$.inArray(b,c)&&(e=" moderator-tag"));return"<a class='post-tag"+e+"' href='"+g+"/questions/tagged/"+encodeURIComponent(b)+"' title=\"show questions tagged '"+b+"'\" rel='tag'>"+b+"</a>"},window.tagRenderer=function(b,c){return $(tagRendererRaw(b,c))})}

关于javascript - SO 的 javascript 中的 "".split( ""),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755862/

相关文章:

javascript - 在 C# 中定义混合类型的数组

javascript - 了解 Unslider.js 中的链式 data() 函数

javascript - 循环遍历具有组合在一起的元素的 jQuery 对象

javascript - 如何将范围 slider 幻灯片上的文本放入本地存储?

javascript - 修改ng-repeat的源数据

javascript - 使用 jQuery .each() 读取任何 html 值并更改它

javascript - 在 document.write 中包含 javascript 的原因

javascript - 如何隐藏 Angular-Chart.js 的边框 - Chart-pie

java - java中如何将<div>标签数据添加到arraylist中

javascript - 为什么我不能在 React 中通过 ref 获取元素