博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Js中判断变量存不存在的问题
阅读量:7087 次
发布时间:2019-06-28

本文共 646 字,大约阅读时间需要 2 分钟。

前面写过jquery对象存在与否的判断。现在谈下Js中判断变量存不存在的问题。

如果这样if(!a),当变量a在js中没有申明时,就会报错,那么接下去的代码将不会被执行。注意,这种判断只要变量申明过,if条件都会通过。比如

 

  

以上代码会弹出两个“通过”。说明这种判断只是判别变量是否在js里声明过,而不管其内容时什么。更深层的解释是:undefined和null在if语句中,都会转换为false。

对于没有申明过的变量情况,上述判断不行了。应该用typeof,例子:

 

  

上述代码的3个弹窗:第1个走if,第2,3都走else。虽然变量c并没有声明,但程序不会报错。而只声明的b,跟c的结果一样。注意,不要试图把3个看上去重复的弹窗封装成1个函数,因为对于变量c这样的传值,都会报错!实际应用中,都是在if里面判断 ,也用不着函数封装。

可能会有好奇,a的typeof 不等于 “undefined”,事实上,typeof null返回“object”:

 

typeof返回的字符串有限,null,Array,自定义的对象类型都会返回“object”,如果我们要详细的判断,则需要借助instanceof了。Java中也有此方法,含义是判断某个变量是否属于某个类,是个二元运算符,而typeof是一个一元运算符(变量只有1个)。Instanceof的例子很多,网上搜搜。

转载于:https://www.cnblogs.com/xiaochongchong/p/5527732.html

你可能感兴趣的文章
记录一次jenkins的部署和使用
查看>>
vscode专题
查看>>
前端基础17:对象/实例/原型
查看>>
tornado 源码之 iostream.py
查看>>
Javascript基础学习干货教程(3)
查看>>
JAVA 泛型理解
查看>>
Git常用命令清单,掌握这些,轻松驾驭版本管理
查看>>
同事说我「变」了
查看>>
Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程
查看>>
SQL 语法速成手册
查看>>
使用nginx控制ElasticSearch访问权限
查看>>
JVM必问知识点:类加载过程
查看>>
Markodwn 标题对齐的同步滚动
查看>>
Flutter 界面路由浅析
查看>>
终端学习记录
查看>>
Python3之递归函数简单示例
查看>>
docker命令使用记录
查看>>
Mybatis入门学习---使用注解开发
查看>>
W3C HTML测试答案
查看>>
ES6 Symbol 使用场景
查看>>