javascript变量可以包含任何内容吗?
我知道它们可以包含基本数据类型和对象。由于我一直在react中编程,我知道它们可以包含对象、组件甚至json。javascript变量有任何限制吗?var/const/let任何值都可以存储在JavaScript变量中。价值包括:javascript变量可以包含任何内容吗?,javascript,types,Javascript,Types,我知道它们可以包含基本数据类型和对象。由于我一直在react中编程,我知道它们可以包含对象、组件甚至json。javascript变量有任何限制吗?var/const/let任何值都可以存储在JavaScript变量中。价值包括: 所有原语 对象引用 几乎所有东西都是JavaScript中的对象。值得注意的是,函数是对象(包括React无状态函数组件[SFC]和React组件,它们是构造函数函数),因此变量可以包含对函数的引用: function foo(msg) { console
- 所有原语
- 对象引用
function foo(msg) {
console.log("foo: " + msg);
}
function bar(msg) {
console.log("bar: " + msg);
}
const f = Math.random() < 0.5 ? foo : bar;
f("Hi");
函数foo(msg){
console.log(“foo:+msg”);
}
功能条(msg){
控制台日志(“条:“+msg”);
}
常数f=Math.random()<0.5?福:酒吧;
f(“Hi”);
你有50/50的机会看到带有该代码的“foo:Hi”或“bar:Hi”
我能想到的只有几件事变量不能包含:
- 接线员。例如,这是无效的:
// NOT VALID const op = Math.random() < 0.5 ? + : -; console.log(10 op 5);
…虽然使用函数很容易获得相同的效果://无效 常量op=Math.random()<0.5?+:-; 控制台日志(10 op 5);
const op = Math.random() < 0.5 ? (a, b) => a + b : (a, b) => a - b; console.log(op(10, 5));
const op=Math.random()<0.5 ? (a,b)=>a+b :(a,b)=>a-b; 控制台日志(op(10,5));
- 执行上下文或词法环境,但这仅仅是因为代码中从未公开对它们的引用
- 内存位置,因为(同样)没有任何东西会在代码中公开它们
JSON是用于数据交换的文本表示法。如果处理的是JavaScript源代码,而不是字符串,那么就不是JSON。变量是处理所有对象的方法。JavaScript是一种基于对象的语言(字符串、数字等都是具有不同原型的对象) 例如,
var
可以包含:true、未定义、null、“string”、“template`、{}、[]、NaN、7、无穷大、/abc/
我想不出有什么限制。函数和组件都只是对象。JSON数据只是一个字符串。它们没有什么特别之处。它们不能容纳河流,也不能容纳欢乐的感觉。如果说它们可以“包含JSON”的话,Ir是没有意义的,如果说它们可以是字符串或只是常规数组/对象/值的话。但是他们可以引用JS中的任何价值。@jornsharpe-你有诗人的灵魂。