gpt4 book ai didi

javascript - javascript变量可以包含任何东西吗?

转载 作者:行者123 更新时间:2023-11-30 11:13:52 25 4
gpt4 key购买 nike

我知道它们可以包含原始数据类型和对象。因为我一直在用 React 编程,所以我知道它们可以包含对象、组件,甚至 json。 javascript变量有什么限制吗?变量/常量/让

最佳答案

任何 都可以存储在 JavaScript 变量中。值包括:

  • 所有原语
  • 对象引用

几乎所有东西都是 JavaScript 中的对象。值得注意的是,函数是对象(包括 React 无状态功能组件 [SFC] 和 React 组件,它们是构造函数),因此变量可以包含对函数的引用:

function foo(msg) {
console.log("foo: " + msg);
}
function bar(msg) {
console.log("bar: " + msg);
}
const f = Math.random() < 0.5 ? foo : bar;
f("Hi");

您有 50/50 的机会看到带有该代码的“foo: Hi”或“bar: Hi”。

我能想到的变量不能包含的只有几样东西:

  • 运营商。例如。这是无效的:

    // NOT VALID
    const op = Math.random() < 0.5 ? + : -;
    console.log(10 op 5);

    ...尽管使用函数很容易获得相同的效果:

    const op = Math.random() < 0.5
    ? (a, b) => a + b
    : (a, b) => a - b;
    console.log(op(10, 5));
  • 执行上下文或词法环境,但这只是因为没有任何东西在代码中公开对它们的引用。

  • 内存位置,因为(再次)没有任何东西在代码中公开它们。

...and even json

JSON 是一种用于数据交换的文本符号(More here.)如果您处理的是 JavaScript 源代码,而不是字符串,那么您就不是在处理 JSON。

关于javascript - javascript变量可以包含任何东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52461302/

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