代码如下: var is = function(obj,type){ var toString=Object.prototype.toString,undefined; return obj===null&&type===’Null’|| obj===undefined&&type===’Undefined’|| toString.call(obj).slice(8,-1)===type; } //原文中有小括号包裹每个逻辑与运算,但根据运算符优先级,括号可以省略 //第一行声明undefined,个人理解是为了提高性能,不必再去顶级作用域中查询undefined. 根据ECMA-262中的