为什么 Javascript 变量即使没有通过 if 语句,也会被创建为未定义?

2023-12-06

以此为例。

if (b) b = 1;

参考错误。 b 没有定义。有道理,但如果我这样做......

if (b) var b = 1;

我在控制台中未定义。现在,当我查找 b 是什么时,它显示为未定义。

如果我尝试再次执行相同的 if 语句,它不会通过,因为 b 既不是 true 也不是 false,它是未定义的,但我想我的问题是为什么它显示为未定义?无论 if 语句通过还是失败,Javascript 都会执行 if 语句吗?谢谢。


All vars 被提升到它们所在范围的开头,将它们的值初始化为undefined。然后当执行到达行时设置该值var原来是在.

在你的第二个例子中,b被初始化为undefined之前if遇到的是,由于var。将其视为与编写以下内容相同

var b;
if (b) b = 1;

这段代码执行后,b仍将是undefined因为它永远不会遇到if块的初始值为falsy.

正如所提到的pst,这是特定于语言的featureJavaScript 的行为,因此在用其他语言编写代码时不要期望有相同的行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Javascript 变量即使没有通过 if 语句,也会被创建为未定义? 的相关文章

随机推荐

  • 如何使用 Vbscript 重写和写入文本文件

    我使用以下 VBscript 在 commonapplicationdatafolder 中创建了一个文本文件 list txt 我正在显示一些 通过写入文本文件来获取变量 strlist 的值 Const Value H23 Const
  • 使用 NSXMLParser initWithStream:未收到解析器委托方法

    我正在解决的基本问题是使用NSStream用于解析传入的增量 XML 数据的类 数据从来都不是完整的 XML 文档 但我希望根据套接字可以读取的数据量以增量块的形式接收和处理它 查看文档NSXMLParser 看起来像initWithStr
  • 如何使用 24 块色卡估计和应用色彩校正矩阵?

    我有一个 24 块色卡 我正在尝试使用所述色卡估计捕获图像的颜色校正矩阵 我已经手动估计了CCM使用least squares方法 但它没有产生理想的结果 有些图像在应用后会出现奇怪的阴影CCM 我仔细检查了我的代码 但没有发现任何问题 我
  • 将 grep 结果打印到文件和终端

    我正在尝试将 grep 结果显示到终端以及文件中 我提出的解决方案是只运行两次 但这显然会产生效率问题 grep n SEARCH TERM i grep n SEARCH TERM i gt gt file txt 是否有一个标签允许它仅
  • alert() 返回与 console.log() 不同吗?

    我应该使用alert 进行调试吗 或者是否有时间使用alert 与console log 我看到alert 和console log 可以返回不同的结果 我认为它们是类似的功能 但只是在不同的地方返回 背景故事 我的老板喜欢在开发过程中看到
  • 是否可以在Java中为数字框类型编写通用的+1方法?

    这不是家庭作业 Part 1 是否可以编写一个通用方法 如下所示
  • 搜索非 ASCII 字符

    我有一个文件 a out 其中包含多行 每一行只有一个字符 要么是 unicode 字符U 2013或小写字母a z 对 a out 执行文件命令会得到结果 UTF 8 Unicode 文本 locale 命令报告 LANG en US U
  • android应用程序可以只有广播接收器和服务而没有活动吗

    Android应用程序可以只有广播接收器和服务而没有活动吗 如果这是可能的 我如何调用广播接收器 Android 系统自动调用broadcsat 接收器 广播接收者代码 public class CheckReceiver extends
  • 在 opencart 中获取第三级类别

    我想要foreachOpenCart 类别模块的第三级 这是仅生成 2 级类别的代码 请帮助并修改 以便生成第三级 ul li a href a ul ul li ul
  • 如果没有 javascript 没有返回内容,如何隐藏 iframe

    我正在尝试制作一个具有特定大小的内容区域 但如果 api 返回的结果是 我希望不显示任何内容empty 这是 html 的代码 div class myclass div 我调用的 API 有时可能会返回 null 结果 JavaScrip
  • Curl : * 违反 RFC 2616/10.3.2 并从 POST 切换到 GET

    我正在使用curl 发布到脚本 curl setopt ch CURLOPT POST true curl setopt ch CURLOPT URL url curl setopt ch CURLOPT RETURNTRANSFER 1
  • 连接误差线的平均点

    在 ggplot2 中 我正在尝试做一件简单的事情 但由于某种原因我无法做到 我已经在数据框中调整了均值和 SE 并且想要绘制均值 误差线 然后将均值与点连接起来 这是代码和错误 除了将方法与geom line 与RC食谱 library
  • 无法使用 yum 或 rpm 在 Fedora 上安装 jdk

    帮助 我不知道如何安装jdk usr lib jvm su c yum install java 1 7 0 openjdk devel Loaded plugins langpacks presto refresh packagekit
  • XSLT 在没有命名空间的情况下复制元素

    首先我要说明的是 我并不是特别擅长 XSLT 但我想做的是将 3 个 XML 文档复制到一个父文档中 XSLT 工作正常 只是父节点使用 xmlns 属性打印 这导致我的验证失败 所以我的问题是如何从单独的文档中复制这些元素而不添加 xml
  • XML DOM文档优化

    我有一个 5MB 的 XML 文件 我使用以下代码来获取所有nodeValue dom new DomDocument 1 0 UTF 8 if dom gt load url return games dom gt getElements
  • 边框半径以百分比 (%) 和像素 (px) 或 em 表示

    如果我使用一个像素或em值对于边界半径 边缘半径始终为圆弧 or a 药丸形状即使该值大于元素的最大边 当我使用百分比 边缘半径是椭圆形的 并从元素每条边的中间开始 从而产生卵形或椭圆形 边框半径的像素值 div background te
  • 使用 Ruby 和 imagemagick 获取或计算图像的熵

    如何在 Ruby 中使用 imagemagick 最好是 mini magic 找到 熵 我需要这个作为一个更大项目的一部分 找到图像中的 有趣之处 以便裁剪它 我找到了一个好的Python Django 中的示例 给出以下伪代码 imag
  • 通过 Graph API 安排的帖子经常无法发布

    您好 我正在使用 facebook php sdk 向我的粉丝专页发帖 我正在尝试将这些帖子安排在未来 不过我遇到了一些问题 这是我的代码
  • 销毁静态互斥锁和 rwlock 初始值设定项

    假设我们有一个使用静态初始化器初始化的全局互斥锁或 rwlock pthread mutex t mutex PTHREAD MUTEX INITIALIZER or pthread rwlock t lock PTHREAD RWLOCK
  • 为什么 Javascript 变量即使没有通过 if 语句,也会被创建为未定义?

    以此为例 if b b 1 参考错误 b 没有定义 有道理 但如果我这样做 if b var b 1 我在控制台中未定义 现在 当我查找 b 是什么时 它显示为未定义 如果我尝试再次执行相同的 if 语句 它不会通过 因为 b 既不是 tr