介绍
后端的编程语言,与之类似有 php c# java ,python,go。不但是后端的编程语言,还可以搭建服务器,如:apche等。
nodeJS就是ECMAScirpt。在原来学习的ES的基础上增加了后端相关的API,如:HTTP,fs,URL等等。让javascript还可以做后端的开发,即一门语言搞定前后端,即全栈。
优势
性能高,方便、对于前端人员来说入门难度低、大公司都在用(BAT)。
坊间传说:一台node的服务器顶得上86台php服务器。特别是在处理并发的场景,尤为明显。
特点:
单线程:nodeJS是单线程的,那么如何面对并发,靠的是事件循环。
事件循环
非阻塞 :
NodeJS在访问高IO(input/output)操作后不会等待其完成,而是立即去执行其他代码,操作完成后会使用回调函数返回,保证高效的利用当前线程的cpu 不造成硬件浪费。跟异步差不多。
事件驱动:
通过事件来驱动整个程序的进行, 由于是单线程,所以把高IO的操作 就会移动到事件队列中等待完成,完成后通过回调函数的方式返回给线程来进行处理。这个循环处理的过程称之为:事件循环
前端js代码在浏览器上运行;后端js代码在node环境里运行的。