【发布时间】:2021-03-21 21:30:30
【问题描述】:
我在我们的代码库中遇到了这段代码 sn-p:
function initDoughnutChart(target) {
var labels = $(target).data("labels").toString().split(",");
var dataString = $(target).data("chart-data").toString();
// single-entry values
if (typeof dataString === 'number') {
dataString = dataString.toString();
}
var data = dataString.split(",");
...
我是否认为 if 语句是多余的,因为 dataString 已初始化为值 <something>.<something>.toString() 因此它将(总是?)具有 'string' 的类型(除非它的初始化抛出,但根本不会达到 if)。
【问题讨论】:
-
你检查数字不是字符串对吗?
-
@gavgrif 但是如果有问题的数据属性在传递的
target元素上不存在怎么办?null.toString()和undefined.toString()将停止函数的执行。 -
@gavgrif jQuery 的
.data()可以返回不是字符串的东西,但可以很安全地假设.data(something).toString()会产生字符串或抛出错误。
标签: javascript jquery tostring