typeof与instanceof、null和undefined傻傻分不清?

笔试问: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。

上一篇:2019.05.30 S4 BUPT BP 客户增强说明


下一篇:页脚代码html,博客园页脚 HTML 代码 .html