JavaScript判断变量是否为undefined两种方式差异[通俗易懂]

JavaScript判断变量是否为undefined两种方式差异

大家好,又见面了,我是全栈君。

我们经常需要判断某个变量/属性是否为undefined。通常有两种写法

1

2

3

4

5

// 方式1

typeof age === 'undefined';

 

// 方式2

age === undefined

 

这两种写法有什么区别吗? 应该使用哪一种呢?看看下面的例子

1

typeof age === 'undefined'// true

标识符 age 没有声明过,输出true。

 

再看另一个例子

1

age === undefined; // 报错

 

Firebug提示age is not defined,

JavaScript判断变量是否为undefined两种方式差异[通俗易懂]

这就是两者的区别, 即不确定age是否声明或定义时用方式1,确定的则可以用方式2。使用方式1如果变量没有声明,代码也不会报错,但方式2会报错。

看似方式1容错性更好,实际会是潜伏了的Bug。变量先声明再使用永远是个好习惯。

 

此外,方式1是两次运算,方式2是一次。 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112005.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java猿社区—ShardingSphere-4.0.1之实现读写分离[通俗易懂]

    Java猿社区—ShardingSphere-4.0.1之实现读写分离[通俗易懂]Java猿社区—ShardingSphere-4.0.1之实现读写分离文章目录Java猿社区—ShardingSphere-4.0.1之实现读写分离技术体系背景ShardingSphere介绍注意事项ShardingShpere支持的功能数据分片分布式事务技术准备mysql安装配置POM配置读写分离——一主双从mysql配置环境sql脚本配置读写分离application.propertiesM…

    2022年5月19日
    31
  • java jasypt_java – 使用jasypt加密解密「建议收藏」

    java jasypt_java – 使用jasypt加密解密「建议收藏」如何使用jasypt解密加密的密码.packagecom.uk.mysqlmaven.jsf.test;importorg.jasypt.util.password.StrongPasswordEncryptor;importorg.jasypt.util.text.StrongTextEncryptor;publicclassPasswordEncryptionDecryptionUs…

    2022年9月26日
    0
  • 国内软件外包公司排行榜是怎么样的

    国内软件外包公司排行榜是怎么样的由于互联网技术的快速发展,特别是手机移动端的的普及,使得企业越来越需要开发自己自己的软件,但是软件开发人才缺口很大,企业没有这个技术实力去开发自己的软件,对于中小企业也不好招人,而这软件外包开发公司就可以帮助企业实现目标,这其中鱼龙混杂,让不少想要软件外包开发的企业难以选择,那么国内软件外包公司排行榜是怎么样的呢?下面为大家介绍华盛恒辉排名靠前的原因。1、报价适中提供同样服务…

    2022年5月26日
    64
  • datagrip2021.11.4激活码-激活码分享[通俗易懂]

    (datagrip2021.11.4激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月29日
    154
  • 人物关系图谱插件

    人物关系图谱插件<template><div><divstyle=”height:calc(100vh-50px);”><RelationGraphref=”seeksRelationGraph”:options=”graphOptions”:on-node-click=”onNodeClick”:on-line-click=”onLineClick”/></div>…

    2022年6月26日
    45
  • AAA认证详解

    AAA认证详解802.1x(基于端口的认证)802.1x的主要功能:对接入的用户做认证,防止未授权的用户访问网络802.1x起源于无线当用户插上网线时,交换机会提示用户执行802.1x认证(输入用户名和密码),当开启802.1X认证的交换机,在端口检测到有网卡接入的时候,交换机会想接入该端口的主机发送EAPOL数据帧,要求进行认证在交换机认证成功之前(802.1x)只允许三种流量通过:…

    2022年5月2日
    91

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号