笔试问:typeof(null) == ?和null instanceof Object是true还是false
答案:typeof(null) == obiect与false
解答:
typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number、boolean、string、object、undefined、function等6种数据类型。
instanceof 表示某个变量是否是某个对象的实例 即 可以判断对象是由哪个函数实例化出来的
null表示"没有对象",即该处不应该有值。
用法是:
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype)
// null
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。
用法是:
//变量被声明了,但没有赋值时,就等于undefined。
var i;
i // undefined
// 调用函数时,应该提供的参数没有提供,该参数等于undefined。
function f(x){console.log(x)}
f() // undefined
//对象没有赋值的属性,该属性的值为undefined。
var o = new Object();
o.p // undefined
//函数没有返回值时,默认返回undefined。
var x = f();
x // undefined
相同点
null == undefined的结果(true)
区分
10 + null结果为:10;
10 + undefined结果为:NaN(非数字值)。
ps:isNaN() 函数用于检查其参数是否是非数字值,参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。