gpt4 book ai didi

javascript - 检查 IF 语句内的函数解释

转载 作者:行者123 更新时间:2023-12-02 23:00:20 28 4
gpt4 key购买 nike

我正在声明一个用作比较的函数。我的问题是:

为什么条件充当语句?

为什么第 4 行可以工作,而第 5 行却不行?

我知道这段代码不切实际且未使用,但为什么编译器允许这种语法?

谷歌没有找到答案。但话又说回来,我可能没有找对地方。

var A = () => console.log(3);

if (A === console.log(1)) {
A();
};

A ? A() : null;

if (A === console.log(1567)) {};

if (B === console.log(1567)) {};

预期输出是:

3

输出为:

1

3

1567

Uncaught ReferenceError: B is not defined at :11:1

最佳答案

一行一行的含义 -

  1. 第一行将 A 定义为箭头函数。
  2. 下一行比较 - 从右到左 - A 已定义并具有一些值,下一个 console.log(1) 是一个函数调用,因此它的值是“评价”。将返回值与 A 的定义值进行比较 - 结果为 false(A 是函数引用,而 console.log() 返回未定义)。
  3. 超出 if - 当然 A 已定义,因此它调用 A() - 因此是第二行输出。
  4. 再次比较 - 与第(2)点类似
  5. 再次比较 - 但未定义 B ,它是可抛出的,因此错误并从左到右 - console.log 从未被评估。<

问题 -

  1. 条件充当语句 - 这是设计使然 - 尝试 if(console.log()) - 它们是代码如果评估为 true/false 则执行的方向。在该区域中添加语句可提供诸如 - while(true){}while(someFuncIfTrue(2)){} 之类的功能。
  2. 第 4 步有效,但第 5 步无效 - 点 (5) 回答了这个问题。

关于javascript - 检查 IF 语句内的函数解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815854/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com