簡體   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