文本解析函数中与 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
是一个字符串,则创建正则表达式对象。但似乎变量childNodes
、cnLength
和excludes
的设置与searchText
是什么类型无关。
我想我可能只是对语法感到非常困惑 - 但是第 3 行到 5 行是条件语句的一部分还是单独的?如果它们是分开的,为什么第 2 行末尾没有分号?
第
3 行到第 5 行不是条件三元运算符的一部分。逗号用于声明彼此不相关的单独变量。以下是有效的语法:
var a = 1, b = 2, c = "apples";
在这种情况下,'string' ? new RegExp(searchText, 'g') : searchText
分配给第一个变量 regex
。其他变量同样被分配了自己的表达式。
相关文章:
- 三元运算符检查多个字符串
- 用javascript中的三元运算符连接字符串
- 使用AngularJs数据绑定的三元运算符显示图像
- 三元运算符是NaN
- AngularJS模板中的三元运算符
- Javascript 同构三元运算符无法正确解析
- 车把中有三元运算符吗.js
- 三元运算符未执行的虚假语句
- 根据三元运算符选择函数
- 用三元运算符整理javascript
- 堆叠三元运算符在 Angularjs 表达式中不起作用
- es6javascript推荐使用三元运算符应用模板文本的方法
- 具有逻辑运算符的复杂三元运算符
- 通过三元运算符的自赋值
- 三元运算符中的表达式作为函数
- JavaScript中看似多余的三元运算符
- js:三元运算符中的多重返回
- Javascript 三元运算符结果
- 使用三元运算符缩短代码
- 语句中的三元运算符