看到Node.js这个名字,初学者可能会误以为这是一个Javascript应用,事实上,Node.js采用C++语言编写而成,是一个Javascript的运行环境。为什么采用C++语言呢?据Node.js创始人Ryan Dahl回忆,他最初希望采用Ruby来写Node.js,但是后来发现Ruby虚拟机的性能不能满足他的要求,后来他尝试采用V8引擎,所以选择了C++语言。既然不是Javascript应用,为何叫.js呢?因为Node.js是一个Javascript的运行环境。Node.js是一个后端的Javascript运行环境(支持的系统包括Linux、Windows和Mac等),这意味着你可以编写系统级或者服务器端的Javascript代码,交给Node.js来解释执行,Node.js采用了Google Chrome浏览器的V8引擎,性能很好,同时还提供了很多系统级的API,如文件操作、网络编程等。浏览器端的Javascript代码在运行时会受到各种安全性的限制,对客户系统的操作有限。相比之下,Node.js则是一个全面的后台运行时,为Javascript提供了其他语言能够实现的许多功能。
9f73df5910
] - deps: cherry-pick 22858cb from V8 upstream (Ali Ijaz Sheikh) #11998b997e62692
] - test: add internal/socket_list tests (DavidCai) #12109c11c23b22b
] - doc: make the heading consistent (Sakthipriyan Vairamani (thefourtheye)) #1156967d21149a2
] - crypto: handle exceptions in hmac/hash.digest (Tobias Nießen) #121643b765f5366
] - doc: fix confusing example in process.md (Vse Mozhet Byt) #1228237568c093a
] - src: use std::list for at_exit_functions (Daniel Bevenius) #122552f9e2fcf3e
] - doc: update information on test/known_issues (Jan Krems) #122620f4319a14a
] - src: use std::string for trace enabled_categories (Sam Roberts) #122426826637f11
] - doc: fix missing argument for dns.resolvePtr() (Uppinder Chugh) #122564a6bb378d4
] - doc: fix confusing reference in net.md (Vse Mozhet Byt) #122473e8991cc56
] - doc: modernize and fix code examples in modules.md (Vse Mozhet Byt) #12224376f5ef1ee
] - doc: document the performance team (Gibson Fahnestock) #12213c0b7c075da
] - doc: add refack to collaborators (Refael Ackermann) #1227783f855d505
] - doc: add aqrln to collaborators (Alexey Orlenko) #122732fb2289177
] - doc: add sub domain to host in url (Steven) #12233ac200a6122
] - test: add a second argument to assert.throws() (dave-k) #121393cdd04b1c0
] - test: skip irrelevant test on Windows (Rich Trott) #12261d4d6986551
] - build: fix path voodoo in icu-generic.gyp (Refael Ackermann) #11217a735c16d52
] - deps: backport ec1ffe3 from upstream V8 (Daniel Bevenius) #12061d641164d09
] - doc: update pull request template URL layout (Rich Trott) #122166feea08587
] - buffer: preallocate array with buffer length (alejandro) #11733a703bdecc4
] - build: add checks for openssl configure options (Daniel Bevenius) #12175b495b6acdf
] - build: make configure print statements consistent (Daniel Bevenius) #12176f60b4553f3
] - doc: modernize and fix code examples in https.md (Vse Mozhet Byt) #1217174d0266694
] - doc: fix string interpolation in Stream 'finish' (Vinay Hiremath) #122214b54520a4a
] - test: refactor mkdtemp test and added async (Luca Maraschi) #120808caf6fd58a
] - test: add Unicode characters regression test (Alexey Orlenko) #11423961c89cc61
] - doc: add table of contents to README.md (Jason Marsh) #11635a11ed6a0b3
] - test: more robust check for location of node.exe
(Refael Ackermann) #121206083e7aa7b
] - benchmark: avoid TurboFan deopt in arrays bench (Michaël Zasso) #11894cf1117bc13
] - doc: fix the timing of setImmediate's execution (Daiki Arai) #12034806c4f3c0c
] - doc: fix fs.read arg type (Daiki Arai) #12034c814c7e9ea
] - events: do not keep arrays with a single listener (Luigi Pinca) #1204336617fd5b8
] - doc: add notes to http.get options (Raphael Okon) #121249e6b0a4604
] - test: performance, remove Popen(shell=True) on Win (Refael Ackermann) #12138805ebef8b1
] - buffer: optimize decoding wrapped base64 data (Alexey Orlenko) #12146fb34d9c210
] - test: increase querystring coverage (DavidCai) #12163d6e9cf7c22
] - doc: fix and update examples in http.md (Vse Mozhet Byt) #12169f057cc3d84
] - benchmark: replace [].join() with ''.repeat() (Vse Mozhet Byt) #12170b15dc95848
] - test: fix flaky test-child-process-exec-timeout (Santiago Gimeno) #1215972a27b3eb5
] - build: use $(RM) in Makefile for consistency (Gibson Fahnestock) #121573af9101d20
] - doc, inspector: note that the host is optional (Gibson Fahnestock) #12149b52b3f6710
] - test: reduce buffer size in buffer-creation test (Sakthipriyan Vairamani (thefourtheye)) #11177b5283f9d4b
] - doc: add logo to README (Roman Reiss) #12148305f822a36
] - net: rename internal functions for readability (Joyee Cheung) #117962f88de1ce3
] - vm: use SetterCallback to set func declarations (AnnaMag) #12051ffbcfdfe32
] - src: fix base64 decoding (Nikolai Vavilov) #119958823861d9d
] - tools: update dotfile whitelist in .gitignore (Michaël Zasso) #1211687ca9a6ffe
] - test: fix flaky child-process-exec-kill-throws (Rich Trott) #12111fdf76d5aa0
] - tools: add missing #include "unicode/putil.h" (Steven R. Loomis) #120786130d547a0
] - deps: backport 8dde6ac from upstream V8 (Daniel Bevenius) #120601ee38eb874
] - (SEMVER-MINOR) util: add %i and %f formatting specifiers (Roman Reiss) #103085ac719d0d2
] - doc: add deprecations page to docs toc (Michaël Zasso) #12268本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/1ce7f8d6