网道JavaScript教程 学习记录 第一章 入门篇

一 导论

1.什么是JavaScript语言?

script language 是“脚本语言”,它不具备开发操作系统的能力(这里可以对比c++等语言能够开发操作系统主要是因为它们可以直接和内核交流),而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。
JavaScript是嵌入式的,它本身提供的核心语法较少,只能用来做一些数学和逻辑运算。没有提供与系统I/O相关的API(接口)。
它要靠调用宿主的API来完成具体的功能。主要的宿主包括:
(a)浏览器,浏览器可以提供以下三大类接口:
1.用来操作浏览器的浏览器控制类
2.用来操作网页中各种元素的DOM类
3.实现互联网的各种功能的Web类
(b) 服务器(如node平台),服务器环境下可以提供很多操作系统API,包括但不限于:
1.文件操作API
2.网络通信API

2.为什么学习JavaScript

2.1 操空浏览器的能力

作为通用的浏览器脚本语言,可以让网页呈现各种特效、各种机遇浏览器的功能、前后端之间紧密高效的联系。

2.2 广泛的使用领域

目前JavaScript已经开始通往系统领域发展了。
(1)浏览器的平台化
浏览器不仅仅是用来浏览网页,正成为一个平台,可以实现注入调用摄像头和麦克风等丰富的功能。
(2)Node
Node项目使得JavaScript可用于后端开发。
(3)数据库操作
NoSQL数据库本身就是在JSON(JavaScript Object Notation)格式的基础上诞生的,大部分NoSQL数据库运行用JavaScript直接操作。
(4)移动平台开发
许多人征再努力地使她成为各平台通用的开发语言。
(5)内嵌脚本语言
很多其他的应用程序把他作为内嵌脚本语言,如Adobe的PDF阅读器、Linux桌面环境GNOME 3。
(6)跨平台的桌面应用程序
有些操作系统支持JavaScript编写应用程序,如win8,chromium OS等。

2.3 易学性

只要有浏览器和文本编辑器就可以编码和运行了。
语法也较简单。但是它有很大的功能都是基于外部API,这些API组件五花八门难以统一之。另外,它本身也存在一些缺陷,乃至于有基于它的改进语言如CoffeeScript、TypeScript等。

2.4 强大的性能

(1)灵活的语法,表达力强:支持类似于c语言的过程式编程和灵活的函数式编程,可用来写并发处理。很适用于异步编程。

JavaScript中的所有值都是对象。可以很方便的按需随时创建数据结构,不用麻烦的预定义。(但是,我感觉这样比较难找到某个值术语哪些类)
(2)支持编译运行:虽然它是解释性语言但也支持编译后运行,而且现代浏览器一般都是这么做的。有一种WebAssembly格式,它是JavaScript引擎的中间码格式,全都是二进制。其他语言(如C和C++)可以编译成WebAssembly,就可以在浏览器运行。
(3)事件驱动和非阻塞设计:这个特性很适合在服务器端高并发环境,使得普通硬件就可以承受很大的访问量。

2.5 开放性

ECMA-262是国际标准;该标准的主要实现如(V8和SpiderMonkey)都是开放的,这样就很少出现版权问题。

2.6社区支持和就业机会

有很多学习资源和开发资源(库等)。

3 实验环境

浏览器和编辑器

二 历史

1. 诞生

它是随着浏览器而生的。Netscape(网景)是先驱。他们认为浏览器需要一种可以嵌入网页的脚本语言,用来控制浏览器行为。当时网速慢网费贵,有些操作不宜在服务器端完成,如,进行简单的浏览器端表单验证等功能。
1995 年,网景公司的程序员开发了这种语言,以Scheme语言为蓝本实现。
初期版本开发有Brendan Eich用10天就完成了,它的语法借鉴了很多其他语言是一个大杂烩。
为了保持简单,这种脚本缺少一些关键的功能,比如块级作用域,模块,子类型(subtyping)等,但是可以用现有功能找出解决办法。开发者需要学习各种解决问题的模式

2. JavaScript与java的关系

JavaScript(JS)借鉴了很多java的特性,比如基本语法和对象体系,但是没有采用其静态类型。JS的函数是一种独立的数据类型,JS采用基于原型对象(prototype)的继承链。

3. JavaScript与ECMAScript的关系

ECMAScript只用来标准化JS这种语言的基本语法结构,与部署环境相关的标准都由其他标准规定,比如DOM的标准就是由W3C组织制定的。

4. JS版本

主要是ECMAScript的版本历史

5. 周边大事记

包括CSS、HTML、DOM(Document Object Model 文档对象模型),允许JS发送HTTP请求的XMLHttpRequest接口、Ajax、JSON,jQuery函数库、V8编译器、Node.js项目、CoffeeScript 、Chrome OS和FireFox OS、单页面应用框架(single-page app framework)如AngularJS项目和Ember项目、TypeScript语言被设计成JS的超集、JSON的国际标准,UI框架库React使得UI层可以用组件开发、React Native项目可以在手机端开发App,他会将JS转为Object-C代码或Java代码、Angular框架等等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值