【语言】JavaScript学习笔记(首)


配合《【前端】前端及其技术栈》一起看更佳。

1)什么是JavaScript?

JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript驱动的。简单地说,JavaScript是一种运行在浏览器中的解释型的编程语言

JavaScript和Java的关系?

背景:

  • 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。网景公司急需一种网页脚本语言,使得浏览器可以与网页互动
  • 1995年Sun公司将Oak语言改名为Java,正式向市场推出。Sun公司大肆宣传,许诺这种语言可以"一次编写,到处运行"(Write Once, Run Anywhere),它看上去很可能成为未来的主宰。
  • 当时的形势就是,网景公司的整个管理层,都是Java语言的信徒,Sun公司完全介入网页脚本语言的决策。因此,Javascript后来就是网景和Sun两家公司一起携手推向市场的,这种语言被命名为"Java+script"并不是偶然的
  • 1995年5月,网景公司做出决策,未来的网页脚本语言必须"看上去与Java足够相似",但是比Java简单,使得非专业的网页作者也能很快上手。这个决策实际上将Perl、Python、Tcl、Scheme等非面向对象编程的语言都排除在外了。

Brendan Eich被指定为这种"简化版Java语言"的设计师。他说:“Java(对Javascript)的影响,主要是把数据分成基本类型(primitive)和对象类型(object)两种,比如字符串和字符串对象,以及引入了Y2K问题。这真是不幸啊。”

设计思路:

  • 借鉴C语言的基本语法;
  • 借鉴Java语言的数据类型和内存管理;
  • 借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;
  • 借鉴Self语言,使用基于原型(prototype)的继承机制。

所以,Javascript语言实际上是两种语言风格的混合产物 --(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。


2)什么是ES(ECMAScript)?

因为网景开发了JavaScript,一年后微软又模仿JavaScript开发了JScript,为了让JavaScript成为全球标准,几个公司联合ECMA(European Computer Manufacturers Association)组织定制了JavaScript语言的标准,被称为ECMAScript标准

  • 所以简单说来就是,ECMAScript是一种语言标准,而JavaScript是网景公司对ECMAScript标准的一种实现。

由于JavaScript的标准——ECMAScript在不断发展,所以讲到JavaScript的版本,实际上就是说它实现了ECMAScript标准的哪个版本

ES就是ECMAScript的缩写,ES6, ES7, ES2015, ES2016, ES2017等都是指不同版本的ECMAScript标准,JS是基于ECMAScript标准做的实现,但包含超出ECMAScript的功能。

版本的含义

严格来说,ES6是指2015年6⽉发布的ES2015标准,但是很多⼈在谈及ES6的时候,都会把 ES2016、ES2017等标准的内容也带进去,所以严谨的说,在谈论ECMAScript标准的时候,⽤年份更好⼀些。但是也⽆所谓,纠结这个没多⼤意义。而ESNext是⼀个泛指,它永远指向下⼀个版本。

  • 由于浏览器在发布时就确定了JavaScript的版本,加上很多用户还在使用IE6这种古老的浏览器,这就导致你在写JavaScript的时候,要照顾一下老用户,不能一上来就用ES6标准写,否则,老用户的浏览器是无法运行新版本的JavaScript代码的。
  • ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代 JS 语言标准,包含ES2015、ES2016、ES2017、ES2018等。
  • 现阶段在绝大部分场景下,ES2015默认等同ES6。ES5泛指上一代语言标准。ES2015可以理解为ES5和ES6的时间分界线

为什么要学ES6?ES6的用处是什么?

ES5不能满足目前前端越来越复杂,庞大的现状,可以说已经过时了,ES6是对ES5的增强和升级

  • 主流的浏览器都已经全面支持ES6
  • 行业内较新的前端框架都已经全面使用ES6的语法
  • 微信小程序,uni-app等都是基于ES6的语法
  • 从就业出发,中小型公司,全栈,简历上多一个技能,试用期也能更快的上手

3)快速入门

廖雪峰JavaScript教程:https://www.liaoxuefeng.com/wiki/1022910821149312/1023020895584256
web开发之JavaScript教程:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript

具体可移步《【语言】JavaScript学习笔记(一)》。



【部分内容参考自】

  • Javascript诞生记:http://www.ruanyifeng.com/blog/2011/06/birth_of_javascript.html

  • JavaScript教程:https://www.liaoxuefeng.com/wiki/1022910821149312

  • 前端Day6: ES6/ESNext规范,以及api详解:https://zhuanlan.zhihu.com/p/30981251

  • ES6 面试题精选:http://interview.html5.wiki/section/4-ES6%E6%A8%A1%E5%9D%97.html#es6-%E9%9D%A2%E8%AF%95%E9%A2%98%E7%B2%BE%E9%80%89

  • 什么是ES6? 为什么要学习ES6?:https://blog.csdn.net/HHDTBJ/article/details/105627114

  • *js非常的混乱怎么学才能入门呢?:https://www.zhihu.com/question/421725755

  • JavaScript中的严格模式:https://segmentfault.com/a/1190000004394829

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值