JavaScript undefined与ReferenceError: xxx is not defined

在JavaScript里,为了简便,判断语句常常这样写:

if(abc) {
  //do something
}

变量未声明

假如abc变量没有被声明,但此处会报错:

ReferenceError: abc is not defined

变量已声明,为初始化

示例修改下变为

var abc;

if(abc) {
  console.log("abc is defined");
} else {
  console.log("abc is undefined.");
}

abc已经声明,但没有被初始化。abc的值为undefined。在判断语句里,undefined为false值,正常输出:

abc is undefined.

解决方法

为了避免出现ReferenceError: abc is not defined错误,检查变量是否为undefined时使用typeof操作符

if(typeof abc != 'undefined') {
  //do something
}

版权声明:著作权归作者所有。

相关推荐

JavaScript 图片与Base64数据互相转换脚本

图片转换为Base64数据方法一:非Html 5使用FileReader使用XMLHttpRequest将图像加载为blob,接着使用FileReader API将其转换为dataURL。function toDataURL(url, callback) {   var xhr = new 

JavaScript里null与undefined的区别与相似点

初次看,null和undefined看似是一样的,但远非如此。 本文将探讨JavaScript中null和undefined的区别和相似之处。null是什么?有两个你应该理解的null特性:null是空的或不存在的值。null必须显式赋值。将null的值赋给a示例:let a = null; console.log(a); // 输出null un

Kotlin:return与跳转

Kotlin有两种跳转:循环跳转(break与continue)和返回跳转(return)。Labellabel语法:labelName@ label可以放在任何表达式之前,用来标记表达式。如loop@ for (i in 1..100) {     // ... } break和continueb