Node概述
1. node.js 是一个开发平台,就像Java开发平台、.Net开发平台、PHP开发平台、Apple开发平台一样。
何为开发平台?有对应的编程语言、有语言运行时、有能实现特定功能的API (SDK: Software Development Kit)
2.该平台使用的编程语言是JavaScript 语言。
3. node.js 平台是基于Chrome V8 JavaScript 引擎构建。
4.基于node.js 可以开发控制台程序(命令行程序、CLI程序)、桌面应用程序(GUI) (借助node-webkit、 electron等框架实现)、Web 应用程序(网站)
PHP 开发技术栈: LAMP - Linux Apache MySQL PHP
node.js全栈开发技术栈: MEAN-MongoDB Express Angular Node.js
特点
1、Node是一个构建于Chrome V8引擎(只有堆和调用栈)之上的一个Javascript 运行环境
Node是-个运行环境,作用是让js拥有开发服务端的功能
"Chrome V8引擎(只有堆和调用栈)所以说:没有浏览器提供的一些API,例如:DOM、BOM等"
2、Node使用事件驱动(当事件被触发时,执行传递过去的回调函数)、非阻塞IO模型(异步读写,当执行I/0操作时,不会阻塞线单线程)使得它非常的轻量级和高效。
Node中绝大多数API都是异步(类似于ajax) ,目的是提高性能
3、js为单线程(一个调用栈便是一个单线程),node提供多线程处理
4、Node中的NPM是世界上最大的开源库生态系统(类似于github)
5、Node本身就是个web容器(服务器),所以无需要 Apache、IIS等。
node.js 中的单线程-非阻塞IO
补充知识:
代码演示,例如:
console.log("1")
function fun(){
setTimeout(function(){
console.log("2")
},500)
}
function funny(){
setTimeout(function(){
console.log("3")
},200)
}
fun()
funny()
console.log("4")
JavaScript 是单线程工作,这意味着两段脚本不能同时运行,而是必须一个接一个地运行。我们人类是多线程工作。你可以使用多个手指打字,可以一边开车一边与人交谈。唯一会妨碍我们的是打喷嚏,因为当我们打喷嚏的时候,所有当前进行的活动都必须暂停(只是举例,不包括心跳啥的)。JavaScript由于单线程限制,防止阻塞,只能通过异步函数的调用方式,把需要延迟处理的事件放入事件循环队列。到目前为止,回调(callback)是编写和处理JavaScript程序异步逻辑的最常用方式。
可以自己进行编写代码,来去参考浏览器(与node.js运行原理相同)演示动画地址:http://latentflip.com/loupe
REPL介绍
1. REPL 全称: Read- Eval-Print-Loop (交互式解释器)
R读取-读取用户输入,解析输入了Javascript数据结构并存储在内存中。
E执行-执行输入的数据结构
P打印-输出结果
L循环-循环操作以上步骤直到用户两次按下ctrl-c 按钮退出。
2.在REPL中编写程序(类似于浏览器开发人员工具中的控制台功能)
直接在控制台输入、node 命令进入REPL环境
3.按两次Control + C退出REPL界面或者输入、.exit~ 退出REPL界面
按住control 键不要放开,然后按两下c键
转载请注明原文地址:https://ipadbbs.8miu.com/read-16362.html