[英]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對象。 但它也出現了變量childNodes
, cnLength
,並且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.