IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 《JavaScript 的诞生》 -> 正文阅读

[JavaScript知识库]《JavaScript 的诞生》

JavaScript 的历史

JavaScript(简称“JS”)诞生于1995年。布兰登 ? 艾奇(Brendan Eich,1961年~),JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

JavaScript 诞生记

一般来说,完整的JavaScript包括以下几个部分:

  • ECMAScript,描述了该语言的语法和基本对象(ECMAScript是纸上标准,JavaScript是浏览器的实现,纸上标准一般落后于浏览器)。
  • 文档对象模型(DOM),描述处理网页内容的方法和接口。
  • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
  1. 一开始JavaScript的名字是Mocha,原因是Java也是由一种咖啡变化而来的名字,1995年9月在Netscape Navigator 2.0的Beta版中改名为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript。浏览器一开始就支持Java与JavaScript,后来JS胜了。
  2. 1996年8月IE 3发布,并且支持JScript。同年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。
  3. 1997年6月,第一版ECMAScript发布。
  4. 1999年12月,第三版发布,这个版本使用最广泛。
  5. 第四版由于设计功能与实现不符,故流产。
  6. 2009年12月,第五版发布,增加了一些功能。
  7. 2015年6月,第六版发布,新浏览器都支持这一版本,之后每年发布一版,版本号以年份命名。

JavaScript 的设计缺陷

为什么Javascript有设计缺陷?

这里有三个客观原因,导致Javascript的设计不够完善。

  1. 设计阶段过于仓促
  2. 没有先例
  3. 过早的标准化

JavaScript 的10个设计缺陷

  1. 不适合开发大型程序
Javascript没有名称空间(namespace),很难模块化;
没有如何将代码分布在多个文件的规范;
允许同名函数的重复定义,后面的定义可以覆盖前面的定义,很不利于模块化加载。
  1. 非常小的标准库
非常小的标准库 Javascript提供的标准函数库非常小,
只能完成一些基本操作,很多功能都不具备。
  1. null和undefined
null属于对象(object)的一种,意思是该对象为空;
undefined则是一种数据类型,表示未定义。
在编程实践中,null几乎没用,根本不应该设计它。
  1. 全局变量难以控制
Javascript的全局变量,在所有模块中都是可见的;
任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。
  1. 自动插入行尾分号
Javascript的所有语句,都必须以分号结尾。
但是,如果你忘记加分号,解释器并不报错,而是为你自动加上分号。
有时候,这会导致一些难以发现的错误。
  1. 加号运算符
+号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。
如果一个操作项是字符,另一个操作项是数字,则数字自动转化为字符。
这样的设计,不必要地加剧了运算的复杂性,完全可以另行设置一个字符连接的运算符。
  1. NaN
NaN是一种数字,表示超出了解释器的极限。它有一些很奇怪的特性:
与其设计NaN,不如解释器直接报错,反而有利于简化程序。
  1. 数组和对象的区分
数组和对象的区分 由于Javascript的数组也属于对象(object),
所以要区分一个对象到底是不是数组,相当麻烦。
  1. == 和 ===
==用来判断两个值是否相等。
当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
因此,推荐任何时候都使用"==="(精确判断)比较符。
  1. 基本类型的包装对象
基本类型的包装对象 Javascript有三种基本数据类型:字符串、数字和布尔值。
它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。
与基本数据类型对应的对象类型,作用很小,造成的混淆却很大。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:43:22  更:2021-08-02 10:44:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 6:06:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码