84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
str 是一个js 函数的参数,函数的第一行先对 str作了这个操作:str = (str + '').toString();。 来源请戳: urlencode。 请问这是什么用意?
str = (str + '').toString();
人生最曼妙的风景,竟是内心的淡定与从容!
str + ''就够了 toString()是多此一举
str + ''
toString()
采用str + ''的形式是为了兼容undefined和null
你尝试下 2.toString() 你发现了什么?报错了!没错,是报错了。所以他这么写也许就是防止类似的情况发生。关于采纳上的答案上的说的多此一举,那就说不过去了。
作者说有些对象没有toString方法,所以他先通过+''转化成字符串,然后调用它的toString方法,这样避免在toString和replace时出现异常。
链接
如果实际给的入参str不是一个字符串,那么str + ''操作会将其强行转成字符串,这样之后对str做的诸如replace之类的字符串操作才不会因为str不是字符串而产生异常。
str
replace
str + ''
就够了toString()
是多此一举采用
str + ''
的形式是为了兼容undefined和null你尝试下 2.toString()
你发现了什么?报错了!没错,是报错了。所以他这么写也许就是防止类似的情况发生。
关于采纳上的答案上的说的多此一举,那就说不过去了。
作者说有些对象没有toString方法,所以他先通过+''转化成字符串,然后调用它的toString方法,这样避免在toString和replace时出现异常。
链接
如果实际给的入参
str
不是一个字符串,那么str + ''
操作会将其强行转成字符串,这样之后对str
做的诸如replace
之类的字符串操作才不会因为str
不是字符串而产生异常。