Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 全局变量只是'window'对象上的属性吗?_Javascript_Browser_Scope_Window - Fatal编程技术网

Javascript 全局变量只是'window'对象上的属性吗?

Javascript 全局变量只是'window'对象上的属性吗?,javascript,browser,scope,window,Javascript,Browser,Scope,Window,每当我在浏览器上看到一个网站时,就会有一个javascript实例在运行。我可以在控制台(DevTools)中声明一个全局变量 这个变量已经在全局范围内声明,这样我就可以像这样得到变量的值 > a 1234567890 但是我也可以这样做, > window.a 1234567890 我是否正确理解了窗口对象是包含浏览器上网站实例中所有全局变量的对象?如果是,窗口对象属于什么范围?这让我有点困惑 > window Window {top: Window, windo

每当我在浏览器上看到一个网站时,就会有一个javascript实例在运行。我可以在控制台(DevTools)中声明一个全局变量

这个变量已经在全局范围内声明,这样我就可以像这样得到变量的值

> a 
1234567890
但是我也可以这样做,

> window.a 
1234567890 
我是否正确理解了
窗口
对象是包含浏览器上网站实例中所有全局变量的对象?如果是,窗口对象属于什么范围?这让我有点困惑

> window 
Window {top: Window, window: Window, location: Location, external:, ...}  
> window.window 
Window {top: Window, window: Window, location: Location, external:, ...}  
> window.window.window 
Window {top: Window, window: Window, location: Location, external:, ...}  

window
对象是否是最终的全局对象,并且该对象是否有一个称为
window
的对象,该对象引用回自身

是,
窗口
是DOM(文档对象模型)对象层次结构的根元素

window
对象是否是最终的全局对象,并且该对象是否有一个称为
window
的对象,该对象引用回自身

对,对。例如,它返回
true

window.window.window.window.window === window.window;
如果您感兴趣,可以使用
对象获取
窗口
对象(以及所有全局变量)的所有属性列表。键

console.log(Object.keys(window));

但是,请注意,如果您花太多时间考虑全局变量,则代码的体系结构可能存在问题。

所有全局变量都将成为窗口对象的属性

>>> window.somevar = 1;
1
>>> somevar
1

所有的核心JavaScript函数都是window对象的方法。

是的,
window
对象是

>>> window.somevar = 1;
1
>>> somevar
1
全局对象 唯一的全局对象是在控件进入任何 执行上下文

除非另有规定,否则 全局对象具有属性{[[Writable]]:true,[[Enumerable]]: false,[[Configurable]]:true}

全局对象没有[[Construction]]内部属性;信息技术 无法将全局对象用作具有新 接线员

全局对象没有[[Call]]内部属性;它是 无法将全局对象作为函数调用

的[[Prototype]]和[[Class]]内部属性的值 全局对象依赖于实现

除了本规范中定义的属性外,全局 对象可能具有其他主机定义的属性这可能包括 其值为全局对象本身的属性例如,在 HTML文档对象模型全局对象的窗口属性为 全局对象本身。


我们可以看到窗口指向它自己,“重复”的问题不是重复的。这个问题:“全局变量只是窗口上的一个属性吗?”这个问题:“如何列出所有全局变量?”@SteveBennett,这个问题的标题是“所有全局变量的列表”。如果你愿意,你可以随时编辑标题。回答得好。我对网络的基本架构更感兴趣。我尽可能避免使用全局函数:)什么是“核心JavaScript函数”?
String.indexOf
是一个核心Javascript函数吗?@lonesomeday不,这是对象的方法,从核心Javascript函数我的意思是说,不是任何对象的一部分的函数,比如parseFloat,parseInt,isNaNit它的
文档
lol yep,它的文档