繁体   English   中英

文本解析功能与Javascript三元运算符的混淆

[英]Confusion with Javascript Ternary Operator in Text Parsing Function

我对在findAndReplace函数中找到的以下代码片段感到很困惑:

var regex = typeof searchText === 'string' ?
            new RegExp(searchText, 'g') : searchText,
       childNodes = (searchNode || document.body).childNodes,
       cnLength = childNodes.length,
       excludes = 'html,head,style,title,link,meta,script,object,iframe';

我认为三元运算符意味着,如果searchText是字符串,则将创建regexp对象。 但它也出现了变量childNodescnLength ,并且excludes被设定不论什么类型的searchText是。

我想我可能只是对语法感到困惑-但是条件语句的第3至5行是单独的还是单独的? 如果它们是分开的,为什么在第二行的末尾没有分号?

第3至5行不是条件三元运算符的一部分。 逗号用于声明彼此不相关的单独变量。 以下是有效的语法:

var a = 1, b = 2, c = "apples";

在这种情况下, 'string' ? new RegExp(searchText, 'g') : searchText 'string' ? new RegExp(searchText, 'g') : searchText分配给第一个变量regex 其他变量同样分配有自己的表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM