本文操作环境:windows7系统、javascript1.8.5版,dell g3电脑。
javascript中null是什么?
javascript中关于null的一切
javascript有2种类型:基本类型(string, booleans number, symbol)和对象。
对象是复杂的数据结构,js 中最简单的对象是普通对象:一组键和关联值:
let myobject = { name: '前端小智'}
但是在某些情况下无法创建对象。 在这种情况下,js 提供一个特殊值null —表示缺少对象。
let myobject = null
1. null的概念值 null 特指对象的值未设置,它是 js 基本类型 之一,在布尔运算中被认为是falsy。
例如,函数greetobject()创建对象,但是在无法创建对象时也可以返回null:
function greetobject(who) { if (!who) { return null; } return { message: `hello, ${who}!` };}greetobject('eric'); // => { message: 'hello, eric!' }greetobject(); // => null
但是,在不带参数的情况下调用函数greetobject() 时,该函数返回null。 返回null是合理的,因为who参数没有值。
2. 如何检查null检查null值的好方法是使用严格相等运算符:
const missingobject = null;const existingobject = { message: 'hello!' };missingobject === null; // => trueexistingobject === null; // => false
missingobject === null的结果为true,因为missingobject变量包含一个null 值。
如果变量包含非空值(例如对象),则表达式existobject === null 的计算结果为false。
2.1 null 是虚值null与false、0、''、undefined、nan都是虚值。如果在条件语句中遇到虚值,那么 js 将把虚值强制为false。
boolean(null); // => falseif (null) { console.log('null is truthy')} else { console.log('null is falsy')}
2.2 typeof nulltype null的结果是什么
typeof null; // => 'object'
为什么是'object',typoef null为object是早期 js 实现中的一个错误。
要使用typeof运算符检测null值。 如前所述,使用严格等于运算符myvar === null。
如果我们想使用typeof运算符检查变量是否是对象,还需要排除null值:
function isobject(object) { return typeof object === 'object' && object !== null;}isobject({ prop: 'value' }); // => trueisobject(15); // => falseisobject(null); // => false
3. null 的陷阱null经常会在我们认为该变量是对象的情况下意外出现。然后,如果从null中提取属性,js 会抛出一个错误。
所以说我么你想要从一个对象上取属性的时候,要注意判断这个对象可能是null, 要不然的话可能会出错。
【推荐学习:《javascript基础教程》】
4. null 的替代方法当无法构造对象时,我们通常的做法是返回null,但是这种做法有缺点。在执行堆栈中出现null时,刚必须进行检查。
尝试避免返回 null 的做法:
返回默认对象而不是null抛出错误而不是返回null5. null vs undefinedundefined是未初始化的变量或对象属性的值
null和undefined之间的主要区别是,null表示丢失的对象,而undefined表示未初始化的状态。
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
以上就是javascript中null是什么的详细内容。
