比方说
我事先定义一个变量a
var a=3
想用substr方法从第a个字符开始截取一个字符串
我自己摸索出来了一个表示方法是下面这样
document.write(str.substr('+a+'));
但是我不明白其中的原理,这样写是否是标准的表示方式'+a+'?
随后我又尝试把加号替换为其他字符(类似这样'!a!' '!a+' '$a$')都可以实现
求一个这样使用变量作为参数的相关说明文档,或者把这块的知识说一下也行,谢谢!
在 nodejs 中的执行结果,因为 a == 3,所以你调用 str.substr(a) 就等于调用了 str.substr(3),而 str.substr(a-1) 就等同于调用 str.substr(2)。进一步的,你调用 str.substr('+a+'),实际上是往 substr 方法里传了一个字符串 +a+,字符串不是数字,substr 把它理解为了0。
使用变量作为参数和使用字面量作为参数没有任何区别,在方法执行那一刻变量的值是什么,那么就相当于你用那个值的字面量去调用方法。
本回答被提问者和网友采纳