JavaScript 的诞生

2021-05-28  本文已影响0人  Sharp丶TJ

I:JS的历史

JavaScript最初由网景公司的Brendan Eich设计,最初将其脚本语言命名为LiveScript,其目的也只是作为网景旗下浏览器的一个插件。后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自SelfScheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。


II:JS的缺陷

一、JavaScript为什么有缺陷?

(1)设计时间过于仓促

由于网景最初的目的只是想制作一个自身浏览器的插件,还没预见到JavaScript在未来会如此风靡。设计者布兰登仅仅用了数十天便向公司交了差。

(2)没有参考对象

因为JavaScript同时结合了函数式编程和面向对象编程的特点,这导致JavaScript在当年没有任何“前辈”的经验可以借鉴参考,这导致在问题上没有先例可寻,解决问题困难重重。

(3)标准化时间太快

JavaScript由于在当时的风靡,导致他的发展可以说是飞速的。

1995年5月,设计方案定稿;10月,解释器开发成功;12月,向市场推出,立刻被广泛接受,全世界的用户大量使用;1996年8月,微软公司推出自己的脚本语言Jscript;同年的11月,网景公司决定申请JavaScript的国际标准;1997年6月,第一个国际标准ECMA-262正式颁布。

这前后仅仅两年的时间,JavaScript就从推出到了国际化。而JavaScript在其缺陷还未暴露的情况下过早的的国际化,导致今后的更改修正困难重重。

二、JavaScript的十大缺陷

1. 不适合大型开发

由于JavaScript没有名称空间很难模块化。没有如何将代码分布在多个文件的规范。允许同名函数的重复定义,后面的定义又能覆盖前面的定义,很不利于模块化加载。

2. 非常小的标准库

JavaScript提供的标准函数库非常小,只能完成一些基本操作,很多功能都不具备。

3. null和undefined

null属于对象的一种,意思是该对象为空;undefined则是一种数据类型,表示未定义。

4. 全局变量难以控制

JavaScript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。

5. 自动插入行尾分号

Javascript的所有语句,都必须以分号结尾。但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。

6. 加号运算符

+号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。

7. NaN

NaN是一种数字,表示超出了解释器的极限。

8. 数组和对象的区分

由于Javascript的数组也属于对象,所以要区分一个对象到底是不是数组,相当麻烦。

9. == 和 ===

==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。

10. 基本类型的包装对象

JavaScript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。

上一篇 下一篇

猜你喜欢

热点阅读