我想将函数变量类型强制为字符串
function removeFirstCharacter (element) {
var el = (element).toString();
return el.slice(1);
}
removeFirstCharacter(0011)->返回''而不是011。 我不知道为什么0011会转换为空字符串。我的目标是输入数字时,该数字应转换为字符串。该代码对于字符串参数可以正常工作。数字的情况仅是我的问题。任何指导将不胜感激。谢谢
答案 0 :(得分:3)
removeFirstCharacter(0011)->返回”而不是011。我不知道为什么0011会转换为空字符串。
数字中的前导零表示javascript将其视为八进制。因此0011
的十进制表示9,因此removeFirstCharacter(0011)
实际上是removeFirstCharacter(9)
。将其转换为字符串时,将得到“ 9”,而删除第一个字符时,将得到一个空字符串。
答案 1 :(得分:1)
在元素上删除()。
function removeFirstCharacter (element) {
var el = element.toString();
return el.slice(1);
}
console.log(removeFirstCharacter(123));
console.log(removeFirstCharacter("123"));
答案 2 :(得分:0)
您要提供的输入数字不是十进制,并且如前所述,当转换为十进制0011时,它等于9。因此,您将需要将所有数字输入解析为十进制,如下面的console.log中所示。
从不允许将输入数据视为“数字”-调用removeFirstCharacter时,应将其始终保留为字符串,直到将其解析为int为止。
function removeFirstCharacter (element) {
return element.toString().slice(1);
}
console.log(removeFirstCharacter(parseInt('0011', 10)));