Swift对应的JavaScript是什么?操作符
What is the JavaScript equivalent for Swift ?? operator
在swift中,x = y ?? z
表示x等于y,除非y为null/nil,在这种情况下,x等于z。JavaScript中的等价是什么?
x = y || z; //x is y unless y is null, undefined, "", '', or 0.
如果您想从falsey
值中排除0
,那么
x = ( ( y === 0 || y ) ? y : z ); //x is y unless y is null, undefined, "", '', or 0.
或者如果您想将false
也从falsey
值中排除,则
x = ((y === 0 || y === false || y) ? y : z);
var testCases = [
[0, 2],
[false, 2],
[null, 2],
[undefined, 2],
["", 2],
['', 2],
]
for (var counter = 0; counter < testCases.length - 1; counter++) {
var y = testCases[counter][0],
z = testCases[counter][1],
x = ((y === 0 || y === false || y) ? y : z);
console.log("when y = " + y + " 't and z = " + z + " 't then x is " + x);
}
三元运算符将获得类似的结果
x = (y ? y : z)
严格来说,为了避免隐式类型转换,您可能需要像
这样的内容x = (null !== y ? y : z)
像x = x || y
这样的短路赋值感觉像是对||
操作符的误用,可能会导致以后的混乱。但是,我认为用什么是个人喜好的问题。
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- javascript导入的最佳实践是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- 在ng重复循环中显示条件内容的最佳方式是什么
- 我的客户端选项是什么
- 这是什么“;要求“;事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- 我应该使用什么而不是扩展操作符Chrome在Math.max(..arr)
- 在JavaScript中使用new操作符声明函数的优点是什么?
- 最快的方法是什么?三元操作符?开关吗?数组中
- Swift对应的JavaScript是什么?操作符