javascript理解,js 解析

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: