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
)
function dosomething(s) { if(s==null) { s="abc"; } }
或者,es6下
function dosomething(s="abc") { }
如对本文有疑问, 点击进行留言回复!!
JavaScript 好题汇总分享(持续更新,看到好题就写)
XMLHttpRequest 2级 &&进度事件&&JSONP
使用递归原生实现拷贝&&最简单的方法实现深拷贝
网友评论