在measureText中附加“m”的目的是什么

时间:2013-11-01 15:07:02

标签: javascript d3.js html5-canvas

在测量画布中的文本

时,看到代码如下
w = c.measureText(d.text + "m").width

来自https://github.com/jasondavies/d3-cloud/blob/master/d3.layout.cloud.js#L233

为什么人们追加一个" m"在测量文本时。

1 个答案:

答案 0 :(得分:3)

我的猜测是这里用来添加等于m字符宽度的额外填充。

在JavaScript中,在字符串上使用+运算符将其连接(如果尚未连接到字符串中):

"Abc" + "m" // "Abcm"
1 + "m" // "1m"

这意味着如果d.text的值为“Hello,world!”,d.text + "m"将等于:

"Hello, world!m"
w = c.measureText("Hello, world!m").width

假设m字符的宽度为5像素,则此方法的替代方法是:

w = c.measureText(d.text).width + 5

但是我认为d.text不一定有固定的字体大小,所以使用固定值可能会导致问题。