做前端的童鞋都知道,JavaScript(以下简称JS)是前端入门必学的一个语言,也是前端3件套之一。
但也许你会有这样的疑问:
- JS为什么能够有今天这样的地位呢?
- 发明JS的布兰登·艾克(以下简称布神)是出于什么目的发明它?
- JS和其他语言比,有什么用的优势和劣势?
各中缘由,让我给大家一一道来。
为啥要发明JS?
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。
但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
1995年5月,网景公司相中了布神,他用了10天就把JS设计出来了。
10天是什么概念呢?一般来说,设计一门编程语言都需要1~2年时间,而10天做出JS这样的操作,估计也只有布神才能做到了。
那这门10天就捣鼓出来的语言,有什么样的优势呢?
JS的优点
- 不需要服务器支持。不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行。
- 容易上手,跨平台编程无压力。JS设计之初,就是给那些非专业的开发者使用的。而且在近几年中,Node.js的出世,让JavaScript也具有了一定的服务器功能,且在某些方面比PHP的效果更为显著。
俗话说:慢工出细活。10天捣鼓出来的一门语言,到底有哪些缺陷呢?
JS的缺陷
- 不适合开发大型应用程序。 没有名称空间(namespace),很难模块化。
- 标准库非常小。 只能完成一些基本操作,很多功能都不具备。
- null和undefined容易混淆。 在编程实践中,null几乎没用,根本不应该设计它。
- 全局变量难以控制。 任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。
- 自动插入行尾分号。 如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。
- 数组和对象的区分。 由于Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组,相当麻烦。
不过话说回来,即便JS是一门“草率”开发出来的语言,但是今天却能够有如此的地位,也和互联网的发展密不可分。
随着云计算、5G等科技的发展,前端开发在未来,一定会越来越有价值,无论你是老鸟,还是和我一样刚上路的新手,都一起加油吧!