javascript - 这些线路代码相同吗?

标签 javascript shorthand

我想知道这两个脚本是否做同样的事情:

parseInt(num)?num=parseInt(num):num=str.length

num=parseInt(num)||str.length;

如果他们不是,我需要知道第二个做什么。

最佳答案

是的,它们与后来的(短路评估)相同,JS(或支持它的其他语言)简洁且优美:

num = parseInt(num) || str.length;

两者都是此的快捷方式:

if (parseInt(num)){
   num = parseInt(num);
}
else {
   num = str.length;
}

良好实践:

  • 不要忘记 num 变量之前的 var 关键字,否则它会进入全局范围。
  • 除非另有需要,否则始终为 parseInt 指定基数,例如 parseInt(num, 10)
<小时/>

阅读:

关于javascript - 这些线路代码相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333243/

相关文章:

javascript - 如何将字符串对象的值添加到JS正则表达式中?

javascript - Ember 的特性有哪些?或者它们是方法?

c - 那么函数指针的*可以省略吗?

html - Reactjs 中的 Props 简写

javascript - 在 JavaScript 中编写此代码的最短方法

javascript - jquery 效果后边距和填充重置

javascript - 没有 grunt 或 gulp 的 Ng 模板

javascript - *ngFor 循环与异步管道和热套接字连接可观察?

javascript - ES6 更改对象值简写

javascript - Javascript 变量声明简写是使变量成为全局变量还是局部变量?