js由来
 
     95年那时,绝大多数因特网用户都使用速度仅为28.8kbit/s 的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加。为完成简单的表单验证而频繁地与服务器交换数据只会加重用户的负担。想象一下:用户填写完一个表单,单击“提交”按钮,然后等待30秒钟,最终服务器返回消息说有一个必填字段没有填好......当时走在技术革新最前沿的 Netscape(网景)公司,决定着手开发一种客户端语言,用来处理这种简单的验证。
 
 与Java并无关系
     JavaScript与Java并没有关系,是网景公司在第一版发布之前为了搭上媒体热炒 Java 的顺风车,临时把 LiveScript 改名为 JavaScript。
 
 IE发布克隆版引发标准问题
     JavaScript 1.0 获得成功,网景预备发布1.1 版,恰巧那个时候微软决定进军浏览器,发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与网景潜在的许可纠纷)。微软步入 Web 浏览器领域的这重要一步虽然令其声名狼藉,但也成为 JavaScript 语言发展过程中的重要一步。
 
     在微软进入后,有 3 种不同的 JavaScript 版本同时存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是,JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。
 
     标准制定
     1997 年,以 JavaScript 1.1 为蓝本的建议被提交给了欧洲计算机制造商协会。该协会指定 39 号技术委员会,由来自 Netscape、Sun、微软、Borland 及其他关注脚本语言发展的公司的程序员组成,经过数月完成了 ECMA-262——定义一种名为 ECMAScript的新脚本语言的标准。 第二年,国标标准化组织和国际电工委员会也采用了 ECMAScript 作为标准。 自此以后,浏览器开发商就开始致力于将 ECMAScript 作为各自 JavaScript 实现的基础,也在不同程度 上取得了成功。
 
 
BOM注释:
 
     XMLHttpRequest 对象用于在后台与服务器交换数据。
    activeXObject 微软扩展,打开微软应用程序,例Excel,word等
 
 
JS引用方式:
 
          推荐将<script>放置在<body>页面内容的后面,或</body>标签之后的原因:
 
按照传统的做法,所有<script>元素都应该放在页面的<head>元素中,意味着必须等到全部JS代码都被下载、 解析和执行完成以后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。所以对于需要很多JS代码的页面来说,无疑会导致浏览器在呈现页面时出现明显的延迟,延迟期间的浏览器窗口中将是一片空白。为了避免这个问题,现在一般都把全部JS的引用放在<body>元素中页面内容的后面。
 
 
JS代码标准:
 
语句必须以分号作为结束符,不要忽略分号的原因:
 
var sum = a + b  // 即使没有分号也是有效的语句——不推荐
var sum = a - b;  // 有效的语句——推荐
 
虽然语句结尾的分号不是必需的,但建议任何时候都不要省略它。因为加上分号可以避免很多错误(例如不完整的输入),开发人员也可以放心地通过删除多余的空格来压缩JS代码(代码行结尾处没有分号会导致压缩错误)。另外,加上分号也会在某些情况下增进代码的性能,因为这样解析器就不必再花时间推测应该在哪里插入分号了。
     
 
函数参数:
     
          与其他程序语言不同,ECMAScript不会验证传递给函数的参数个数,是否等于函数定义的参数个数,并且不会引发任何错误,因为ECMAScript中的参数在内部是用数组来表示的,函数接受到的始终是这个数组,而不关心数组中包含哪些参数,任何遗漏的参数都会以 undefined传递给函数,多余的参数函数也会忽略。

关于JS历史拓展的更多相关文章

  1. Node.js 历史

    Node.js 是在 2009年5月份创建的,是属于典型的 Git 和 GitHub 时代最初孕育的项目.另外需要先说明一点,那就是回顾 Node.js 的历史,并不是仅仅为了给大家回味,而是想找到在 ...

  2. js 历史

    原文http://javascript.ruanyifeng.com/introduction/history.html JavaScript的诞生 JavaScript 因为互联网而生,紧随着浏览器 ...

  3. JS历史

    JavaScript伴随着互联网的发展一起发展.互联网周边技术的快速发展,刺激和推动了JavaScript语言的发展. 2006年,jQuery函数库诞生,作者为John Resig.jQuery为操 ...

  4. arcgis api 4.x for js 图层拓展篇之mapvLayer(附源码下载)

    因为在项目开发过程中,使用的arcgis js api版本是4.7,并不能支持客户端渲染热力图,想到arcgis js api 4.x的渲染是基于canvas,故琢磨着是否能借助类似于mapV.ech ...

  5. 关于JS历史

      js由来        95年那时,绝大多数因特网用户都使用速度仅为28.8kbit/s 的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加.为完成简单的表单验证而频繁地与服务器交换数据只 ...

  6. Relation.js——基于pixi.js的拓展模块之人物关系图谱

    出于[重构基于D3的关系图谱项目]的目的,在看完pixi.js之后,并且网上又没有现成的基于webgl的关系图谱js库,于是,本人决定自己写一个. 因为平常要工作的原因,进度可能有点慢,但是githu ...

  7. 我的JS历史知识

    话说在那long long ago的1995以前,绝大多数因特网用户都使用速度仅28.8kbit/s的猫(调制调解器)上网,人们注册成为某个网站的用户时,填写好资料,发送给服务器去验证,如果某一资料填 ...

  8. Backbone.js 历史&文档

    历史: 0.1.0版本产生于  ‘— Oct 13, 2010 — Docs’ 文档: https://www.html.cn/doc/backbone/#changelog

  9. js原生拓展网址——mozilla开发者

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript https://developer.mozilla.org/zh-CN/docs/Web ...

随机推荐

  1. InnoDB概览

    InnoDB 采用了MVCC来支持高并发,并且实现了四个标准的隔离级别.其默认级别是REPEATABLE READ(可重复读) ,并且,通过间隙锁(next-key locking)策略防止幻读的出现 ...

  2. [转载] HDFS and Erasure Codes (HDFS-RAID)

    The Hadoop Distributed File System has been great in providing a cloud-type file system. It is robus ...

  3. python 安装中的错误解决

    最近使用python3.5,其中遇到安装中的错误,现在记录下来,提个醒 1 安装setuptools 出现缺少 zlib模块 解决: 1 yum install zlib 2 yum install ...

  4. NGINX关于配置PATHINFO

    最近在群里发现有很多小白不会配置pathinfo现贴出来配置代码照着配置就可以了     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 ...

  5. 《python基础教程》笔记之 基础知识

    数字相关 在Python程序前加上 from __future__ import division 或者在解释器里面直接执行它,或者通过命令行运行Python时使用命令开关-Qnew,会使单斜线不再整 ...

  6. iOS中常用的四种数据持久化方法简介

    iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...

  7. angularjs 1.3 综合学习 (one way bind , ng-if , ng-switch , ng-messages, ng-form ,ng-model )

    主要讲解1.3后的一些新功能,和一些以前没有介绍的小功能 (ng-if,ng-switch). 1.one way bind 这个之前的版本已经有人自己实现了,但是在1.3之后,angularjs 有 ...

  8. Altium Designer规划电路板

           所谓规划电路板就是根据电路的规模以及用户的需求,确定所要制作电路板的物理外形尺寸和电气边界.电路板规划的原则是在满足用户要求的前提下,使板面美观而且利于后面的布线工作. 1. 定义板的外 ...

  9. 如何判断一个C++对象是否在堆栈上(通过VirtualQuery这个API来获取堆栈的起始地址,然后就可以得到答案了),附许多精彩评论

      昨天有人在QQ群里问到如何判断一个C++对象是否在堆栈上, 我在网上搜索了下, 搜到这个么一个CSDN的帖子http://topic.csdn.net/t/20060124/10/4532966. ...

  10. COJ 0999 WZJ的数据结构(负一)

    WZJ的数据结构(负一) 难度级别:D: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 输入N个模板串Pi和文本串T,输出每个模板串Pi在T ...