Javascript学习笔记(三):Javascript还有一个入口main函数

Javascript学习笔记(三):Javascript还有一个入口main函数
在C和java,有一个入口函数方法的一个程序,即主要功能或主要方法。在Javascript,计划从JS源文件的文件头运行。但在某种意义上,我们还可以创建一个主函数作为程序的起点,因此,它不仅可以与其他语言的统一,但也许你会有一个更深入的了解JS。

1。真正的入口

当一个Javascript文件被传递到js引擎时,js引擎将从上到下执行每个语句,直到执行所有代码为止。

2。范围链、全局范围和全局对象

我们知道在JS每个函数产生一个新的范围,当它被执行。特别是,一个新的范围是建立在过程执行的功能,破坏范围当函数执行完成退出。该函数的参数和局部变量绑定到这个范围,他们被破坏时,函数调用完成范围破坏。当然,在特殊情况下,如果一个函数返回,范围内的一些变量仍然引用,所以范围和被引用的变量将不会被摧毁,从而形成所谓的闭包。

另一方面,我们知道,函数可以嵌套,所以范围可以嵌套。当函数定义,JS引擎设置每个功能有一个内置的属性称为{ } } {范围,它指向的外部功能的词法范围。这样,多个领域形成产业链结构,称为链的作用。通常,只有一个作用域链在任何时间,即从功能被执行的范围,它是从顶部至底部直到最外层的全球范围。

注意:在js源代码中,作用域链上的函数是嵌套函数,它独立于函数执行序列或函数调用堆栈。这也是术语词法范围的由来。

全球范围是一个特殊范围。它不是函数作用域,而是所有函数作用域的外层,是所有范围链的端点,因此只要程序不退出,全局范围始终存在,全局作用域中的变量总是有效的。

域范围}——{全局范围} - { { { { {函数范围函数{ 3 - 2函数3

此外,还有一个全局对象,它对应于全局作用域,在浏览器中,全局对象是窗口对象,全局对象是一个特殊对象:

全局范围中定义的变量绑定到全局对象。
如果不使用var关键字定义,则在任意范围内定义的变量绑定到全局对象。
在全局范围内,这指向全局对象。
上面列出的特性表明,如果全局范围被视为对象,那么它实际上是一个全局对象。此外,这也解释了为什么以下四个语句在全局范围内是等效的:
var a=1;
a = 1;
窗口= 1;
这个= 1;
三.虚拟的主要功能
既然它们都是作用域,为什么会有一个特殊的全局范围呢我们总是喜欢简单性和一致性,并尽量避免复杂化和特殊性,所以自然地,我们想知道我们是否能使全球范围看起来与功能域不同,答案是肯定的,我们可以做到这一点:

我们假设当js引擎执行源文件时,文件中的代码将被包装成一个名为main的函数,然后main函数作为程序的入口。

也就是说,假设js文件中有这样的代码:
var a=1;
var b=2;

函数添加(x,y){
var;
返回z;
}
console.log(添加(A,B));
js引擎将在程序开始执行之前把它作为main函数包装起来:
/小说的主要功能
函数main(){
var a=1;
var b=2;

函数添加(x,y){
var;
返回z;
}

console.log(添加(A,B));
}
然后,main函数被调用:
主。_current_scope_ =窗口; / /全球范围(对象)设置窗口
Main.call(窗口) / /这将指向窗口
4是什么。什么意思

(1)js还具有入口函数main,它与其他语言相一致。

(2)全局范围的概念被省略,或者全局范围也是一个函数域。

(3)通过调用上面的main函数的过程,您可以在全局范围内理解这些特殊属性的起源。

(4)在最后一点,将所有js源代码作为一个函数,为以后的事件队列和事件周期铺路。

以上是javascript的学习笔记介绍给你(三):javascript也有入口的main函数,希望大家喜欢它。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部