在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函数,希望大家喜欢它。