可以安全地假设"test=" + ['abc', 'xyz']
将为所有遵循标准的JavaScript执行环境产生"test=abc,xyz"
吗?
答案 0 :(得分:2)
看看ECMAScript 2015 Language Specification之后,只要toString
没有被覆盖,我就可以确认预期的行为:
ToString
将通过ToPrimitive
进行求值,而OrdinaryToPrimitive
则将提示设置为字符串,然后为数组求toString
,然后最终调用数组curl --user admin:admin -vvv "http://localhost:3000/api/dashboards/db" -X POST -d @My_Metrics.json -H 'Content-Type: application/json'
。
答案 1 :(得分:1)
99%的时间可能是安全的,但是由于它是JavaScript,因此您也应该期待猴子修补。
即使您在安全的环境中运行,我仍然会选择明确说明:
const arr = ['abc', 'xyz'];
const str = `test=${arr.join(',')}`;
为什么?
1%是怎么回事?
人们可以并且将猴子补丁JavaScript。您在那里可以承受风险吗?
Array.prototype.toString = () => '???';
const arr = ['abc', 'xyz'];
const str = 'test=' + arr;
console.log(str);