1、JavaScript(JS)运行环境
JS的运行环境一般由宿主环境和执行期环境共同构成,宿主环境是由外壳程序(如web浏览器就是一个外壳程序)生成,执行期环境是由嵌入到外壳程序中的JS引擎(/JS解释器)生成的,在执行期环境JS可以生成内置静态对象、初始化执行环境等。
前端JavaScript应用程序在浏览器的运行时环境中执行,并可以访问窗口对象。
后端JavaScript应用程序在Node运行时环境中执行,并可以访问附加到服务器上的文件系统、数据库和网络。
2、浏览器的运行时环境
执行JavaScript代码最常见的地方是在浏览器中。例如,使用任何文本编辑器,可以在自己的计算机上创建一个名为cjavapy.html的文件,并编写HTML代码如下:
<!-- cjavapy.html -->
<html>
<body>
<h1> Website </h1>
<script> window.alert('Hello World'); </script>
</body>
</html>
保存文件,然后打开常用的浏览器。大多数浏览器会允许你通过打开菜单中, 文件 > 打开文件 > cjavapy.html来加载你在本地创建的html。 加载完成后,内嵌的<script></script>
将执行,window.alert()
方法将在浏览器中创建一个带有文本“Hello World”
的弹出框。window
对象提供了对与打开的浏览器窗口相关的大量数据和功能的访问,而不仅仅是.alert()。还可以尝试用window.prompt()
或window.confirm()
替换window.alert()
。
为浏览器创建并在浏览器中执行的应用程序称为前端应用程序。很长一段时间,JavaScript代码只能在浏览器中执行,专门用于创建前端应用程序。为了创建可以在没有浏览器的计算机上运行的后端应用程序,需要使用其他编程语言,如Java或C#。
注意:JavaScript代码可以上面一样内嵌在Html文件中,也可以通过<script src="cjavapy.js"></script>
类似这种方式,通过src
属性指定文件js
文件url
,将JavaScript代码写在.js
文件中。
3、Node.js运行环境
2009年,创建了Node运行时环境,目的是在没有浏览器的情况下执行JavaScript代码,因此程序员可以仅使用JavaScript语言创建全栈(前端和后端)应用程序。
Node是一个完全不同的运行时环境,这意味着不能使用window.alert()之类的浏览器环境数据值和函数。相反,Node运行时环境允许后端应用程序访问浏览器中不可用的各种特性,例如访问服务器的文件系统、数据库和网络。
例如,创建了一个名为demo.js的文件。我们可以使用Node运行时检查该文件所在的目录。
// 环境变量process
console.log(process.env.PWD);
注意:现在使用console.log
而不是window.alert()
,因为window
对象不可用。
process
是一个对象,包含与正在执行的JavaScript文件相关的数据。env是一个包含process.env.PWD
等环境变量的对象,其中包含当前工作目录(上面代码是“输出工作目录”)。
要执行此文件中的JavaScript代码,首先确保已在计算机上设置了Node。打开终端,执行如下命令:
node demo.js
node命令告诉计算机在node环境中执行demo.js文件。也可以使用不带file参数的node命令来打开node,然后输入要执行的代码。
例如,
$ node
> process.env.HOME