服务端开发 node.js

前言:

什么是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

官网:https://nodejs.org/en/

中文网站: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操作。

为什么 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)不是内部运行命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值