function doSomething(s) { s=s||"abc"; console.log(s); }
这是被普遍流传的js技巧之一,这种编码应该说是很坏的习惯。编程
js是一种弱类型的编程语言,表明着传入的变量并不清楚做为什么种类型使用。编程语言
function doSomething(String s) { }
这样的定义在js是不存在的,对js来讲传入的任意参数都应该考虑不一样类型的结果,而不是单单考虑一种状况。若传入0、false等,||所要实现默认值的功能彻底错误的编码
console.log(0||"a"); //结果为a console.log(false||"a"); //结果为a
应该使用if null
(更严格来说if undefined
)code
function doSomething(s) { if(s==null) { s="abc"; } }
或者,ES6下io
function doSomething(s="abc") { }