JavaScript 诞生记
- JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
- JavaScript最初由Netscape的Brendan Eich设计,最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。
JavaScript 的历史
- 布兰登临危受命:公司要求给浏览器添加一个脚本功能必须蹭java的流量,他花十天的时间设计了JS最初的版本(不是实现)
- JS的命名:浏览器一开始就支持Java和JavaScript,后来JS胜了(在浏览器上)
- 浏览器大战 :先后经过微软的跟进、网景的反击、网景被收购 、IE6如日中天、Chrome横空出世
- 移动市场兴起:智能手机崛起
- ECMAScript标准的制定:1999年12月第三版发布,这个版本使用最广;2015年6月第六版发布,新浏览器都支持这一版。
- JavaScript兴起:2004年,谷歌发布Gmail在线网页;2005年,Jesse将谷歌用到的技术命名为AJAX,从此前端技术正式出现;2006年,jQuery发布,是目前最长寿的JS库。
- 中国的前端:2021年左右,中国才有专门的前端岗位
- JavaScript爆发:Chrome的JS引擎叫做V8,2009年,Ryan基于V8创建了Node.js;2010年,Isaac 基于Node.js写出了npm;1前端工程师可以在浏览器之外执行JS了,Node.js快速风靡;同年,TJ受Sinatra启发,发布了Express.js;从此,前端工程师可以愉快地写后端应用了!
JavaScript 的10个设计缺陷
一、为什么Javascript有设计缺陷? 这里有三个客观原因,导致Javascript的设计不够完善。 1.设计阶段过于仓促 2.没有先例 3.过早的标准化
二、Javascript的10个设计缺陷
- 不适合开发大型程序
- 非常小的标准库 Javascript提供的标准函数库非常小,只能完成一些基本操作,很多功能都不具备。
- null和undefined null属于对象(object)的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。在编程实践中,null几乎没用,根本不应该设计它。
- 全局变量难以控制
- 自动插入行尾分号 Javascript的所有语句,都必须以分号结尾。但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。
- 加号运算符 +号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。
- NaN NaN是一种数字,表示超出了解释器的极限。与其设计NaN,不如解释器直接报错,反而有利于简化程序。
- 数组和对象的区分 由于Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组,相当麻烦。
- == 和 === ==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。因此,推荐任何时候都使用"==="(精确判断)比较符。
- 基本类型的包装对象 Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。