所以我目前正试图弄清楚下面的代码会输出什么。我对substr函数感到困惑,所以如果你能解释它会很棒。感谢
function getAttackString() {
var foo = "d32329b34";
var bar = "x38h309hj";
return "The code is: "+(foo.substr(3,foo.length-6))+(bar.substr(2));
}
console.log(getAttackString());

答案 0 :(得分:0)
3298h309hj
foo.substr(3,foo.length - 6))=>得到6个字符的foo的子字符串 从char 3 = 329
开始比foo短bar.substr(2)=>获取从char 2开始的bar的子串并返回所有chars = 8h309hj
function getAttackString() {
var foo = "d32329b34";
var bar = "x38h309hj";
return "The code is: "+(foo.substr(3,foo.length-6))+(bar.substr(2));
}
console.log( getAttackString() );
答案 1 :(得分:0)
substr()
方法返回从指定位置开始的字符串中的字符到指定的字符数。
此功能的语法是
str.substr(start[, length])
start
:开始提取字符的位置。如果给出负数,则将其视为strLength + start,其中strLength是字符串的长度。例如,str.substr(-3)
被视为str.substr(str.length - 3)
length
:要提取的字符数。如果未定义此参数,则会提取从字符串的开头到结尾的所有字符。
(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr)
将其应用于您的代码:
function getAttackString() {
var foo = "d32329b34";
var bar = "x38h309hj";
return "The code is: " + foo.substr(3,foo.length-6) + bar.substr(2);
}
console.log(getAttackString());

表达式foo.substr(3,foo.length-6)
从第4个字符foo.length-6
开始提取9-6=3
(3
)个字符,结果为329
。
表达式bar.substr(2)
从第3个字符length
开始提取所有字符(因为第二个参数8
未定义),从而导致8h309hj
将它们与最终表达式放在一起,得到:The code is: 3298h309hj