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
不是字符串而产生异常。