javascript理解,js 解析
本文为您带来了一些关于javascript的知识。null是一种原始类型,这意味着它不包含任何有意的对象值。下面来看看JavaScript中关于null的一切:它的含义,如何检测它,null和undefined的区别,以及为什么在它被广泛使用的情况下很难维护代码。希望对你有帮助。
【相关推荐:javascript视频教程,web前端】
JavaScript有两种类型:基本类型(字符串、布尔值、数字、符号)和对象。
对象是一种复杂的数据结构。最简单的JavaScript对象是公共对象——键和相关值的集合。
让我的对象={
姓名:埃里克卡特曼
};但是在很多情况下,你不能创建一个对象。在这种情况下,JavaScript提供了一个特殊值null ——,这表示缺少该对象。
设myObject=null在本文中,你将了解JavaScript中关于null的一切:它的含义,如何检测它,null和undefined的区别,以及为什么大量使用null很难维护代码。
1.null 的概念
JavaScript规范如此描述null。
Null是一种基本类型,表示它有意不包含任何对象值。
如果看到null(赋给变量或者由函数返回),应该是那个位置的对象,但是由于某种原因,没有创建对象。
例如,greetObject()函数创建一个对象,但是当无法创建该对象时,它也可以返回null:
函数问候对象(谁){
如果(!谁){
返回null
}
return { message:`你好,${who}!` };
}
greet object( Eric );//={ message:你好,埃里克!}
greet object();//=null当一个字符串参数被传入上述函数时,正如所料,该函数返回一个object {message: Hello,Eric!}
但是,当函数中没有传递任何参数时,函数将返回null。返回null是合理的,因为who参数没有值,所以无法创建greeting对象。
1.1 null 的一个比较贴切的比喻
考虑一个关于null的恰当比喻。你可以把变量想象成一个盒子。正如变量可以容纳物体一样,盒子也可以容纳茶壶之类的东西。
但是一旦你收到一个盒子,打开一看,里面什么都没有!有人弄错了,给了你一个空盒子。该框不包含任何内容,换句话说,它包含一个空值。
2. 如何去检测 null
检查null的一个好方法是使用严格的等式运算符。
const missingObject=null
const existingObject={ message:你好!};
missingObject===null//=真
existingObject===null//=false missingObject==null的结果为true,因为missing object变量包含空值。如果变量包含非空值,如对象,则表达式existingObject===null的结果为false。
2.1 null 是一个假值
null和false,0,,undefined,NaN都是false值。如果在条件语句中遇到它们,JavaScript将强制它们为假。
布尔型(null);//=假
如果(空){
console.log(空即是真);
}否则{
console.log(null是falsy );//日志 null是falsy
}
2.2 typeof null
typeof值类型运算符可以确定值类型。例如,type 15是number,typeof {prop: Value}等于object。
有趣的是,空值类型的结果是什么?
一个缺失的对象类型如何判断为object?事实证明,将typoef null作为对象是早期JavaScript实现中的一个错误。
不要使用typeof运算符来检测空值。如前所述,使用了严格的等式运算符myVar===null。
如果要用typeof来检查一个变量是否是对象,必须排除null。
函数isObject(object) {
返回typeof object===object 对象!==null
}
is object({ prop: Value });//=真
is object(15);//=假
isObject(空);//=false
3. null 的陷阱
null通常在您希望使用对象的情况下意外出现。然后,如果您试图从null中提取属性,JavaScript将抛出一个错误。
让我们再次使用greetObject()函数,并尝试从返回的对象中访问message属性。
让谁=“”;
问候对象(who)。消息;
//抛出“typeerror: greetobject()为null”因为who变量为空字符串,所以函数返回null。当从null访问message属性时,将引发类型错误。
您可以使用可选的链操作符来处理null。
让谁=“”;
greetObject(谁)?留言?“你好,陌生人,”;
//=你好,陌生人!或者使用下一节中描述的两个选项。
4. null 的替代方案
当您无法构造对象时,很容易返回null。但是这种方法也有缺点。
一旦null出现在执行堆栈中,您总是需要检查它。
我们尽量避免返回null:
返回默认对象而不是null,抛出错误而不是返回null。让我们回忆一下greetObject()函数返回一个问候对象。
当缺少参数时,可以返回默认对象而不是null。
函数问候对象(谁){
如果(!谁){
who=‘陌生人’;
}
return { message:`你好,${who}!` };
}
greet object( Eric );//={ message:你好,埃里克!}
greet object();//={消息:你好,陌生人!}或者抛出一个错误。
函数问候对象(谁){
如果(!谁){
引发新错误(缺少“who”参数);
}
return { message:`你好,${who}!` };
}
greet object( Eric );//={ message:你好,埃里克!}
greet object();//=抛出错误这些做法可以让你完全避免处理null。
5. null vs undefined
undefined是未初始化的变量或对象属性的值。
例如,如果声明一个变量时没有初始值,则访问该变量的结果是未定义的。
让myVariable
myVariableundefined null和undefined的主要区别在于,null表示缺少对象,undefined表示未初始化状态。
严格的相等运算符===区分null和undefined
null===未定义;//=false和宽松相等运算符==则null和undefined被视为相等。
null==未定义;//=true我使用宽松的等式运算符来检查变量是否为空或未定义。
函数isEmpty(value) {
返回值==null
}
isEmpty(42);//=假
isEmpty({ prop: Value });//=假
isEmpty(null);//=真
isEmpty(未定义);//=true
6. 总结
null是JavaScript中的一个特殊值,表示缺少的对象。
严格相等运算符确定变量是否为空:变量===null。
Typoef运算符用于确定变量的类型(数字、字符串、布尔值)。但是,在null的情况下,typeof可能会产生误导:typeof null的结果是object。
Null和undefined在某种程度上是等价的,但是null表示缺少对象,undefined表示未初始化状态。
尽可能避免返回null或将变量设置为null。这将导致空值的扩展和空值的验证。相反,更好的做法是尝试使用具有默认属性的对象,甚至抛出一个错误。
你会用什么方法来检查空值?
【相关推荐:javascript视频教程,web前端】以上是JavaScript中全面分析null的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。