【问题标题】:Confusion with Javascript Ternary Operator in Text Parsing Function文本解析函数中与 Javascript 三元运算符的混淆
【发布时间】:2014-11-15 16:36:58
【问题描述】:

我对 findAndReplace 函数中的以下 sn-p 感到很困惑:

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 是字符串,则创建正则表达式对象。但似乎变量childNodescnLengthexcludes 的设置与searchText 的类型无关。

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

【问题讨论】:

  • 只是逗号;变量 a=x, b=y, c=z;所以var regex=expression, childnodes=expression....

标签: javascript conditional-statements ternary-operator


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-10-25
    • 2014-02-08
    • 2012-02-13
    • 2012-03-09
    • 2021-12-30
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多