看到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提供了其他语言能够实现的许多功能。
51c8d8088a
] - Partial revert "tls: keep track of stream that is closed" (Trevor Norris) #11947751c1153a4
] - benchmark: check end() argument to be > 0 (Vse Mozhet Byt) #12030210250465a
] - benchmark: update obsolete information pointer (Rich Trott) #120267aeeee3276
] - benchmark: repair the fs/readfile benchmark (Sorin Baltateanu) #781890acb773be
] - benchmark: allow multiple values for same config (Nikolai Vavilov) #118192f4ad6fea2
] - benchmark: harmonize progress bar + stderr output (Vse Mozhet Byt) #11925d62ddbe145
] - benchmark: fix fs/bench-realpathSync.js (Vse Mozhet Byt) #1190485eb1bc0a9
] - benchmark: remove v8ForceOptimization calls (Lucas Lago) #1190817d16e8f3d
] - buffer: remove unneeded eslint-disable comment (Rich Trott) #11906fb41ee3983
] - build: add lint option to vcbuild.bat help (Morgan Brenner) #119923e4ecca0be
] - build: don't create directory for NDK toolchain (TheBeastOfCaerbannog) #11916a64aa442c1
] - crypto: fix memory leak if certificate is revoked (Tom Atkinson) #120892767e2d3cc
] - (SEMVER-MINOR) deps: upgrade npm to 4.2.0 (Kat Marchán) #11389d22346de40
] - deps: fix async await desugaring in V8 (Michaël Zasso) #12004fade55b025
] - doc: clarify out-of-bounds behavior of buf[index] (Nikolai Vavilov) #1128663a19c7012
] - doc: update and modernize examples in fs.ms (Vse Mozhet Byt) #120354b5f177e3d
] - doc: fix https.timeout docs (Ahmad Nassri) #12039af051f6528
] - doc: fix http properties documented as methods (Ahmad Nassri) #1203918a586a278
] - doc: edit the benchmark guide (Rich Trott) #120415e3d429613
] - doc: stdout/err/in are all Duplex streams (Sebastian Van Sande) #111947f6b03fd0f
] - doc: fix process.stdout fd number (Fumiya KARASAWA) #120551f7fe55c97
] - doc: add richardlau to collaborators (Richard Lau) #12020924f34606d
] - doc: update collaborator email address (Rich Trott) #1199641bec5cff4
] - doc: correct info in child_process.md (Vse Mozhet Byt) #1194996ad336d9e
] - doc: remove superfluous sample assert code (Rich Trott) #11933486bd1bd9b
] - doc: require uses fs root for '/' prefix (Bradley Farias) #1189704fa28e6dc
] - doc: fix gitter badge in README (Roman Reiss) #1194468b23be51f
] - doc: add missing word in stream.md (Jyotman Singh) #119140f2642ee36
] - errors: remove needless lazyAssert (DavidCai) #118915bdd54925a
] - lib: add comment to script eval _tickCallback (Gibson Fahnestock) #120507347860966
] - lib: clarify the usage of 'else' (Jackson Tian) #11148837ff4ba59
] - lib: remove an unnecessary coverage check (Jeremiah Senkpiel) #120236c803db7b9
] - lib: fix event race condition with -e (Ben Noordhuis) #11958ac92d0249b
] - net: refactor net module to module.exports (Claudio Rodriguez) #116982462fd8009
] - process: maintain constructor descriptor (Bryan English) #930691a2700721
] - readline: rename deDupeHistory
option (Danny Nemer) #119508ab26cf508
] - (SEMVER-MINOR) readline: add option to stop duplicates in history (Danny Nemer) #29826a6c431eec
] - src: use persistent strings from node::Environment (Ben Noordhuis) #11945d0c2d67083
] - src: add native URL class (James M Snell) #11801019a20adb5
] - src: make PercentDecode return void (Timothy Gu) #11922d6da1705cd
] - src: ensure that fd 0-2 are valid on windows (Bartosz Sosnowski) #1186359f71f5661
] - src, buffer: do not segfault on out-of-range index (Timothy Gu) #119274051184106
] - stream_base,tls_wrap: notify on destruct (Trevor Norris) #11947d8b71be183
] - test: fix misleading comment (Franziska Hinkelmann) #120488b2b93f148
] - test: mark child-process-exec-kill-throws flaky (Gibson Fahnestock) #12054948b99deab
] - test: fix broken tests in test-buffer-includes (Alexey Orlenko) #12040d112aad78b
] - test: replace throw with common.fail (Dejon "DJ" Gill) #970041284fbc5b
] - test: cover thrown errors from exec() kill (cjihrig) #11038414df6c93b
] - test: test validity of prefix in mkdtempSync (Luca Maraschi) #120091c0435b1f3
] - test: add regex for expected error message (John F. Mercer) #12011a73dea9499
] - test: add second argument to assert.throws() (Rj Bernaldo) #12016ade64e61cd
] - test: refactor test-cluster-disconnect (Rich Trott) #119813d21bfe6b9
] - test: invalid chars in http client path (Luca Maraschi) #11964e70ed3cb31
] - test: improve test-vm-cached-data.js (Nick Peleh) #11974b48f13af95
] - test: add minimal test for net benchmarks (Rich Trott) #11979764a00e6e5
] - test: add test for url (Yuta Hiroto) #11999bb2de4a5a1
] - test: do not use more
command on Windows (Vse Mozhet Byt) #1195355a112689a
] - test: add test for child_process.execFile() (Rich Trott) #119299ba551f7e3
] - test: fix flaky test-tls-socket-close (Rich Trott) #11921114f9d619d
] - test: add hasCrypto check to tls-socket-close (Daniel Bevenius) #11911169f187f16
] - test: synchronize WPT url setters tests data (Daijiro Wachi) #118874b1b6b85a9
] - timers: fix not to close reused timer handle (Shigeki Ohtsu) #11646fd93622f8a
] - tls: fix SecurePair external memory reporting (Ben Noordhuis) #11896126dcb76af
] - url: name anonymous functions in url (Pedro lima) #9225f6755182e5
] - url: show input in parse error message (Joyee Cheung) #11934c51d925c84
] - url: restrict setting protocol to "file" (Daijiro Wachi) #11887本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/139fa4a6