JavaScript的利与弊

JavaScript的诞生

1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司,同时也遇到了一个特别严重的问题,就是浏览器不具备与访问者互动的能力,所以当时网景公司就雇用了JS之父Brendan Eich来设计一个脚本语言来实现这个功能,由于当时Brendan Eich对这个语言不是很感兴趣,所以只花了10天出了一个设计稿应付公司,也导致了很长一段时间内,JavaScript代码十分混乱,不够严谨。
在1995年,Sun公司将Oak语言改名为Java,正式向市场推出,Java推出时,Sun公司曾许诺语言可以"一次编写,到处运行",所以当时网景公司就心动了,希望借Java的名气来推广这个新脚本,所以取名为JavaScript,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系,实际上它的语法风格与Self及Scheme较为接近。
JavaScript的创建于1995年,但是在10年的时间内,发展也十分缓慢。它真正的兴起是由于谷歌邮件,即我们熟知的Gmail面世。它很可能是第一个将JavaScript提升到另一个高度的应用。Gmail用JavaScript来动态提取你在在浏览器中查看的内容。原本你需要在点击收信箱内的邮件后等待新的网页加载,但现在谷歌在背景使用JavaScript捕捉你想要浏览的内容然后呈现给你。再也不需要等待一整个新网页加载了,让用户和开发者眼前一亮,在这时,JavaScript开始兴起了。
在2010年瑞安·达尔(Ryan Dahl)在2010年向世界介绍了Node.js.,一个可以在浏览器外部执行JavaScript代码的运行环境。但是又出现了一个问题,就是当一个项目依赖的代码越来越多,如何去下载什么版本的依赖包变得特别麻烦,所以在2010年,一个拥有三大美德的程序员 Isaac Z. Schlueter 用 JavaScript 写的了 npm(Node Package Manager),用于管理第三方依赖包。刚好Node.js缺一个包管理器,于是他和 npm 的作者一拍即合、抱团取暖,最终 Node.js 内置了 npm,从此前端工程师也能愉快的写后端应用了,此时JavaScript就爆发了,进入了高速发展阶段,到今天JavaScript成为所有浏览器的语言,没有人能够逃避它。

JavaScript的特点

  1. 脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
  2. 基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
  3. 简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
  4. 动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
  5. 跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。

JavaScript的利与弊

优点
  1. 所有浏览器都支持,且容易上手
  2. 可以给网页元素分配特定的事件,如单击或鼠标悬停
  3. JS可以跨多个浏览器、平台等工作
  4. 使用JS验证输入并减少手动数据检查的需要
  5. 它比其他编程语言更快、更轻量级
缺点

由于JS的流行以及JS是一种客户端语言,黑客、骗子和其他恶意第三方就会有额外的动机去寻找漏洞和安全漏洞,容易受到攻击。在JS设计上的问题,引用阮一峰的文章,以下列出了几种我认同的几点:

  1. 不适合开发大型程序(没有名称空间,很难模块化)
  2. 非常小的标准库 (很多功能都不具备)
  3. 全局变量难以控制 (任何一个函数内部都可以生成全局变量,加剧了程序的复杂性)
  4. 自动插入行尾分号 (导致出现难以发现的错误)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值