【发布时间】:2020-01-13 22:30:07
【问题描述】:
https://stackoverflow.com/a/15106541/10757573
在此线程中,解决方案使用以下代码:
var randomProperty = function (obj) {
var keys = Object.keys(obj)
return obj[keys[ keys.length * Math.random() << 0]];
};
在答案的 cmets 中,一位用户将按位移位解释为:
它更像是
parseInt(keys.length * Math.random(), 0)的简写
谁能解释一下按位左移 0 是如何与 parseInt 相同的,或者它是如何工作的,好吗?
我正在使用这种语法,它运行良好,但我不明白它在做什么。
【问题讨论】:
-
"我正在使用这种语法,而且效果很好,但是我不明白它在做什么。" 那你怎么知道它工作很好?
-
另外,
parseInt(keys.length * Math.random(), 0)没有任何意义 - 您将值解析为基数为零?以零为底的任何数字表示为什么? -
@VLAZ
radix: 0实际上有特殊行为:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript