js 给a标签赋值_JS中的undefined到底是什么?

JS中的undefined到底是什么?

JavaScript中的Undefined。

我们已经看到了创建执行上下文的第一阶段,其中有一个用于全局执行上下文的全局对象。有一个特殊的变量叫做this,它总是存在的。这种现象称为提升,其中设置了变量和函数。

对于变量最初设置为undefined。

这是什么意思呢?

让我们回过头来举一个简单的例子:

index.js

var a;
console.log(a);

得到:

如果我们不使用var直接a

实际上会直接报未定义的错,但是有些人会认为,Undefined和not defined指的是同一件事。其实不是的,

Undefined是已经存在的变量,但是没有赋值,Javascript会给这个已经存在的变量一个默认的undefined值。

下面我们来做一个验证:

index.js:

var a;
console.log(a);
//===在JS中会从数据类型与值两方面进行比较,称之为严格比较相对安全。
if(a===undefined){
    //注意这里undefined,不是字符串,而是JS的关键字。所以不加''
    console.log("a is undefined");
}else{
    console.log("a is not defined")
}

我们来看下结果:

如果我们现在给变量a赋值"helloworld":

但是我们来看下不声明变量a,但是访问变量a

我们会直接得到一个未定义(not defined)错误。这是因为在初始执行上下文创建阶段中,当我们访问的a变量没有被声明过时,也就说明不会被分配内存空间。因此,当执行该代码时,它说:“嘿,老弟,我根本没有在内存中”。因此它提供了not defined,错误信息。当然了,这是浏览器中的JavaScript引擎所提供的信息。

但是,当我们声明var a时,在创建阶段将a放入内存。因此,执行上下文看到了var a并在内存中设置了a

即使我没有将其设置为值,JavaScript引擎已经将其设置为undefined的特殊值。

因此,undefined并不像是空的或者不存在。它实际上并不存在但它是一个值,实际上占用了内存。这是一个特殊的JS关键字。一个特殊的值,表示这是JavaScript最初设置的值。

不要将变量设置为Undefined

切勿将自己的变量设置为等于undefined的变量。那么真的很难分辨某些变量是否是未定义的,这真的很有用。

这个习惯能够将帮助我们进行调试,发现那些变量是声明了但是没有赋值的。

总结

我们再来回顾一下,undefined是一个特殊值,也是JavaScript中的特殊关键字。这是变量在创建阶段获得的一个默认值。创建执行上下文的第一阶段设置变量的内存然后在该存储空间中放入名为undefined的值。这就是JavaScript所称之为的未定义。

那我们在声明变量的时候,可以var a;然后在使用的时候再赋值a或者var a="helloworld";然后直接使用该变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值