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