You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中?运算符的作用是什么?函数返回语句示例解析

JavaScript 中 ? 运算符的作用及示例解析

嘿,这个问题问得很到位!你提到的 ? 在 JavaScript 里是三元条件运算符——它是 if...else 语句的简洁版写法,也是 JS 里唯一一个需要三个操作数的运算符,专门用来处理简单的条件判断并返回结果。

基本语法与作用

三元运算符的语法结构是:

条件表达式 ? 条件为真时执行的表达式 : 条件为假时执行的表达式

它的逻辑很直白:先判断前面的条件表达式是否为真值,如果是,就执行并返回 ? 后面的第一个表达式结果;如果条件不成立,就执行并返回 : 后面的第二个表达式结果。

结合你的示例函数解析

来看你给出的这个函数:

function getValue(val) {
  return (val != null ? val.toString().replace(/,/g, '') : "");
}

我们把它拆解开看逻辑:

  • 首先判断 val != null:这个条件会同时排除 val 是 null 或者 undefined 的情况(在 JS 里null == undefined,所以!= null等价于val !== null && val !== undefined)
  • 如果条件成立(val 不是 null/undefined):就执行 val.toString().replace(/,/g, '')——把 val 转换成字符串,然后用正则替换掉所有的逗号
  • 如果条件不成立(val 是 null 或 undefined):直接返回空字符串 ""

用等价的 if...else 写出来就是这样:

function getValue(val) {
  if (val != null) {
    return val.toString().replace(/,/g, '');
  } else {
    return "";
  }
}

对比一下就能发现,三元运算符让这种简单的“判断后返回”逻辑变得更紧凑,一行就能搞定。

额外提醒:别和其他带 ? 的运算符混淆

现在 JS 还有两个常用的带问号的运算符,容易和三元运算符搞混:

  • ?.:可选链运算符,用来安全访问嵌套对象的属性,比如obj?.a?.b,避免因为某个层级为 null/undefined 而报错
  • ??:空值合并运算符,用来返回第一个不是null/undefined的值,比如val ?? "默认值"

但你示例里用到的是经典的三元条件运算符,这是最基础也最常用的带?的运算符之一啦!

内容的提问来源于stack exchange,提问作者Ben Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:36:03