前言:
什么是JavaScript
Javascript是一门运行在浏览器端的脚本语言。
JavaScript的运行环境是?
浏览器
javaScript 可以用来做什么
在浏览器端,主要是使用js来实现DOM操作。
- 表单验证
- 实现一些特性和动画
- 更好的组织页面的结构(tab选项卡、轮播图)
- 可以使用ajax来提升用户体验
- 页游
换句话说,就是JavaScript脱离了浏览器,上述功能也就不存在了。
浏览器中的JavaScript 不可以做什么?
作为一门编程语言,js和其他语言(c、c++、c#、java、php)相比,它不能干什么?
-
文件操作
-
网络编程
-
os相关操作
-
数据库操作
-
…
于是在2009年,Ryan正式推出了基于JavaScript语言和V8引擎的开源Web服务器项目,Node.js。Node第一次把JavaScript带入到后端服务器开发。
因为node的出现,JavaScript可以脱离浏览器运行,浏览器的一些限制当然也没有了,部分功能也就不存在了,比如:操作dom!
运行在node上的JavaScript可以做什么呢?
- 可以制作命令行工具(所谓命令行工具就是通过dos命令来操作的软件)
- 可以做服务端的开发 (基于node可以开发服务器应用,就像php一样)
什么是Node.js
中文网站:http://nodejs.cn/
-
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
-
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
-
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
node.js是一个运行环境,和浏览器是同等地位。node.js这个运行环境是基于chrome v8引擎的,在浏览器端写的那些和浏览器环境无关的代码,在node.js中,也是同样支持的。
Node.js可以做什么?
使用Node.js可以轻松的进行服务器端应用开发。
具体来说,体现在两个方面:
-
webapp(网站)
-
命令行(包括命令行工具和交互式终端程序)
既然已经有了java、PHP等后台语言,为何还需要Node.js?
- io密集型 — 异步io操作
- 实时web应用 ---- socket.io
实时web应用:双十一、12306、游戏、在线客服/咨询
nodejs的特点
- 单线程 (JavaScript 特点:程序按照连续顺序排下来,前面的必须处理好,后面才会执行。)
- 异步式I/O(非阻塞式) (当有多个任务需要执行,所需耗时为多个任务中最高耗时(同步编程,为多个任务耗时总和)
- 事件驱动机制 (根据当前出现的事件,调动资源进行相关的处理)
- 跨平台
JavaScript 和 node.js 区别
过去js有两个名称:
- ECMAScript版本号 (官方)
- Javascript(民间)
ECMAScript才是语言本身。
ECMAScript语言在不同的环境中,分别对应于不同的叫法:
- 在浏览器端执行的ECMAScript,称之为javascript
- 在服务端执行的ECMAScript,称之为node.js
- 在flash palyer中执行的ECMAScript,称之为ActionScript
一般说js,就是指浏览器端的javascript(ecmascript)
一般说node.js,就是指服务端的javascript(ecmascript),但是node.js本身是运行环境。
小结:
Node.js是一个基于chrome v8引擎的运行环境。在运行环境中,可以执行js代码,同时结合这个环境提供的api,就可以实现服务端的编程。
和浏览器端的js对比:
浏览器端是一个运行环境,在这个运行环境中,可以执行js代码,同时结合这个环境提供的api(就是BOM和DOM),就可以实现DOM操作。
关键词:
非阻塞:https://blog.csdn.net/TalonZhang/article/details/88414752
为什么 JavaScript 是单线程 ?
JavaScript 语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript 不能有多个线程呢 ?这样能提高效率啊。
JavaScript 的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript 同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?
i/o 是指 input/output,输入和输出,文件操作。
掌握命令行基础指令
cls
md
cd
dir
PATH
- cls 清屏
- md 创建文件夹 make directory
- rmdir 删除空文件夹 remove directory
- dir 查看文件目录
- cd 转换路径
- cd … 转到上一级目录
- path 查看当前全局环境中的所有路径
命令行运行程序过程
当在命令行输入一个命令(node)的时候,首先在命令行定位的路径下查找输入的命令程序(node.exe|node.cmd|node.bat|node.shell)找到就运行它,找不到就去全局环境变量path存储的路径中依次查找,如果没有就报错了(node)不是内部运行命令
关键词:
非阻塞:https://www.jianshu.com/p/22c27f827304
结束语:
你的微笑定格成永久,你的笑声 刻在我心头,我就站在 滚滚红尘的洪流,依然等着你回眸。