如果你指的是访问数据库、访问磁盘等浏览器不具备的能力,那之前确实可以。但如果你指的是写 WebAPI、或者是后台常驻的定时任务这种的,那没有;基本还都是类似于早期 PHP、JSP 那样的前后端不分离的 WebPage 形式。JavaScript 被设计之初并不是只能运行在浏览器上的,这只是后来商业上的策略而已。当年 Netsacpe 和 Sun 合作,合作产物除了 JavaScript 这门语言以外,还搞出过一个叫 Netscape Enterprise Server(简称 NES)的玩意儿(我曾在专栏文章《「编程时间简史系列」JavaScript 模块化的历史进程》提到过这一点,感兴趣的话可以阅读这篇),就是支持在服务端运行的,语法上与我们今天所熟悉的 JavaScript 略有出入。你提到的 ASP(注意要与如今的 ASP.NET 相区分,二者除了名字都带 ASP、也都是微软家的之外,就没有啥关系了,你之所以现在搜到的都是 C# 也是因为这个缘故,搜索引擎把两者混为一谈了)已经是再晚一些的事情了,而且其实用的不是我们所说的那个 JS —— 是 JavaScript 的简称,而是另一门类似的“方言” —— JScript,没错,它的全称就叫 JScript。不过 JavaScript 也好、JScript 也罢(甚至还有另一门 ActionScript),都是符合 ECMA-262、也就是今天我们所说的 ECMAScript 规范的。JScript 和它的同门师兄弟 VBScript,都是 ASP 中支持的语言,而 ASP 也确实提供了服务端的相关 API。但我们之所以今天公认 Node.js 才是让 JS 获得服务端编程能力的鼻祖,就是因为前面提到的那些玩意儿,别说现在了、哪怕在当时、也都是没啥人用的玩意儿(ASP 在早年确实流行过一段时间,不过绝大部分都是基于 VBScript、而不是 JScript,原因的话就是另一个话题了)。而又因为没人用,所以能力被厂商不断阉割、直至最后彻底被移除。
如果你指的是访问数据库、访问磁盘等浏览器不具备的能力,那之前确实可以。
但如果你指的是写 WebAPI、或者是后台常驻的定时任务这种的,那没有;基本还都是类似于早期 PHP、JSP 那样的前后端不分离的 WebPage 形式。
JavaScript 被设计之初并不是只能运行在浏览器上的,这只是后来商业上的策略而已。
当年 Netsacpe 和 Sun 合作,合作产物除了 JavaScript 这门语言以外,还搞出过一个叫 Netscape Enterprise Server(简称 NES)的玩意儿(我曾在专栏文章《「编程时间简史系列」JavaScript 模块化的历史进程》提到过这一点,感兴趣的话可以阅读这篇),就是支持在服务端运行的,语法上与我们今天所熟悉的 JavaScript 略有出入。
你提到的 ASP(注意要与如今的 ASP.NET 相区分,二者除了名字都带 ASP、也都是微软家的之外,就没有啥关系了,你之所以现在搜到的都是 C# 也是因为这个缘故,搜索引擎把两者混为一谈了)已经是再晚一些的事情了,而且其实用的不是我们所说的那个 JS —— 是 JavaScript 的简称,而是另一门类似的“方言” —— JScript,没错,它的全称就叫 JScript。
不过 JavaScript 也好、JScript 也罢(甚至还有另一门 ActionScript),都是符合 ECMA-262、也就是今天我们所说的 ECMAScript 规范的。
JScript 和它的同门师兄弟 VBScript,都是 ASP 中支持的语言,而 ASP 也确实提供了服务端的相关 API。
但我们之所以今天公认 Node.js 才是让 JS 获得服务端编程能力的鼻祖,就是因为前面提到的那些玩意儿,别说现在了、哪怕在当时、也都是没啥人用的玩意儿(ASP 在早年确实流行过一段时间,不过绝大部分都是基于 VBScript、而不是 JScript,原因的话就是另一个话题了)。而又因为没人用,所以能力被厂商不断阉割、直至最后彻底被移除。