js学习1----js开始试水

js------es6--------node.js-----express框架----搭建http服务?

前沿

是由ES(ECMAScript)、DOM(浏览器文档对象)、BOM(浏览器对象模型)组成。

其中Node.Js就只有ES,目前浏览器比较流行的版本就是ES6(ES2015),老浏览器的版本基本上都是ES5。所以alert和document不能在Node运行(因为Node没有dom和bom)。
----------------------------------------------------------------------------------------------------------

1js---弱类型客户端脚本语言

js组成部分-----ecmascript(规定语言的语法/类型/关键字)/ dom(文档对象类型)/ bom(浏览器对象类型)

JavaScript由三部分组成: 
ECMAScript(核心)+DOM(文档对象模型)+BOM(浏览器对象模型) 
ECMAScript作为核心,规定了语言的组成部分:语法、类型、语句、关键字、保留字、操作符、对象 
DOM把整个页面映射为一个多层节点结果,开发人员可借助DOM提供的API,轻松地删除、添加、替换或修改任何节点。 
BOM支持可以访问和操作浏览器窗口的浏览器对象模型,开发人员可以控制浏览器显示的页面以外的部分 

ecmascript版本更新1-6,目前最新es6,学习下es6关于js的新特性?

2es6---规定js的语法/类型/关键字

ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称,特指该年发布的正式版本的语言标准。本书中提到“ES6”的地方,一般是指ES2015标准,但有时也是泛指“下一代JavaScript语言”。

3node.js---支支持es,Node.js是一个Javascript运行环境(runtime)。对dom及bom不支持,

因此我们的学习路线是

java--------java8-----jvm(jre)------java的框架spring-----用spring做?

js(es+dom+bom)-----es6----node.js(服务器端js的运行环境)-----node的框架express---用express搭http服务

嗯,类似于v8是执行javascript这种高级语言的虚拟机,jvm是执行java的虚拟机,任何的高级语言都是需要特定平台的虚拟机进行执行的,最终由底层机器进行二进制执行,js这门语言也不例外,他的虚拟机是v8,以前js只能做前端的时候,v8这种虚拟机只是封装在浏览器内,但是现在,javascrit这种语言呢,用于做服务端,那么我们就产生了这样一种需求,使得js可以运行于服务端 ,运行在客户端使用的是浏览器,运行在服务端不能再使用浏览器,因此我们说就要产生另外一种技术,使得js再服务器端也可以运行,那么我们直接将js的v8直接拿来用就好了,再客户端v8依赖的是浏览器,再服务器端v8依赖的是node.js。。

那么有了可以在服务器端执行js的工具,我们其实还可以向下哦,就是那基本上呢,所有的服务器端语言,甚至是所有的语言,他都有自己的封装库,想php,有自己的函数库,类库,想java,有自己的类库,亦或是c++都会有着自己的库函数,因此我们明白一点,弱项方便开发,是吧那就需要前辈留给我们一些封装好的库,这样我们开发的时候难度大大降低,因此js也一样,他也有许多的库,他叫库为模块,用这种封装好的模块进行快速开发,想java的库一样,js的 常用的标准库也是安装在node.js中,java也是安装在jdk中,基本上可以说node.js就是开发js服务端的工具,类似于java的jdk,因此我们学,js/es6/nodejs/各种js的框架。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

java运行环境jre,java的虚拟机jvm,用于执行java的字节码,jre=jvm+java api库

javascript运行环境node.js,js的虚拟机v8,用于执行js,v8内置于浏览器中,现在也内置于node.js中 node.js=v8+js的api库

node.js不是一门语言,也不是一种特殊的JavaScript方言 - 它仅仅就是用于运行普通JavaScript代码的东西

  • 所有浏览器都有运行网页上JavaScript的JavaScript引擎。Firefox有叫做Spidermonkey的引擎,Safari有JavaScriptCore,Chrome有V8
  • node.js就是带有能操作I/O和网络库的V8引擎,因此你能够在浏览器之外使用JavaScript创建shell脚本和后台服务或者运行在硬件上

分析:很容易看出,前端和后端的js相同点就是,他们的语言基础都是ECMAScript,只是他们所扩展的东西不同,前端需要操作页面元素,于是扩展了DOM,也需要操作浏览器,于是就扩展了BOM。而服务端的js则也是基于ECMAScript扩展出了服务端所需要的一些API,稍微了解后台的童鞋肯定知道,后台语言有操作系统的能力,于是扩展os,需要有操作文件的能力,于是扩展出file文件系统、需要操作网络,于是扩展出net网络系统,需要操作数据,于是要扩展出database的能力。

这么一对比,相信很多小伙伴对nodejs更加了解了,原来前端和服务端的js如此相似,他们的基础是相同的,只是环境不同,导致他们扩展出来的东西不同而已。

本质:

     Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行

     Node.js是一个可以快速构建网络服务及应用的平台,是用Javascript语言构建的服务平台,可用于后端建立服务器

区别:

      Javascript 主要应用前端    是编程语言    客户端编程语言(需要浏览器的javascript解释器进行解释执行)

        node.js    主要应用后端      1个平台        运行环境(一个基于Chrome JavaScript运行时建立的平台,它是对Google V8引擎进行了封装的运行环境)

简单的说node.js就是把浏览器的解释器封装起来作为服务器运行平台,用类似javascript的结构语法进行编程,在node.js上运行。

Node.js适用场景?Node.js不适用的场景?

适用场景:

1.JSON APIL ——构建一个Rest/JSON API服务,node.js可以充分发挥其非堵塞IO模型以及javascript对JSON的功能支持

2.单页面、多Ajax请求应用——前端有大量的异步请求,需要服务器后端有极高的响应速度

3.基于node.js开发Unix命令行工具——node.js可以大量产生子进程,并以流的方式输出

4.流式数据——传统的web应用,通常会将HTTP 请求喝响应看成是原子事件。而node.js会充分利用流式数据这个特点,构建非常酷的应用

不适用场景:

cpu使用率较重、io使用率较轻的应用



 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值