一、JavaScript起源

1.

W3C(万维网联盟) 批准 DOM(document object model);

微软 在 IE3 发布 VBScript  以JScript命名;

JavaScript 1.0  出现在 1995年的 Netscape Navigator 2浏览器中;

Netscape & Sun 联合 ECMA(欧洲计算机制造协商会): JavaScript标准化 -> ECMAScript;

ECMAScript是JavaScript的另一种名字(同一种语言的另一个名字);

2.

JavaScript起初叫LiveScript,与Sun公司开发的Java没有任何联系!只是让JavaScript听起来有种系出名门的感觉.

3.JavaScript是脚本语言,由Web浏览器解析执行.

4.

DOM:一套对文档内容进行抽象和概念化的方法。

在现实世界中,有"世界对象模型(WOM)",汽车,房子,树,左边第三栋房子……,正是因为大家对抽象世界对象模型有基本共识,人们才能用非常简单的话语表达出复杂的含义并得到对方的理解。

5.处于试验阶段的DOM -> 第0级DOM(DOM Level 0):主要用来翻转图片,验证表单数据。

6.浏览器的战争:

NetScape Navigator 4 诞生于 1997年6月;  IE4 诞生于同年10月;

DHTML(Dynamic HTML,动态HTML):描述HTML,CSS,JavaScript技术组合术语;主要包括:

利用HTML把网页标记为各种元素;

利用CSS设置元素样式和它们的显示位置;

利用JavaScript实时操作页面和改变样式.

<div id="myElement">This is my Element</div>

#myElement{

Position:absolute;

Left:50px;

Top:100px;

}

NN4和IE4解决DOM问题的方式不同。

NN4:  document.layers['myElement'];

IE4:  document.all['myElement'];

找出myElement元素的left位置并把它赋值给变量xpos:

NN4: var xpos = document.layers['myElement'].left;

IE4: var xpos = document.all['myElement'].leftpos;

可笑,分别为NN和IE编写适合它们的DOM脚本!

DHTML逐渐没落,销声匿迹,人们不愿提起.

7.制定标准:

NetScape,微软和其他一些浏览器制造商还能抛开彼此的敌意与W3C携手制定新标准,于1998年10月完成DOM Level 1.  实现大一统(秦王扫六合!)

新标准语法,就是我们熟悉的DOM操作:

var xpos = document.getElementById('myElement').style.left;

8.

API(应用编程接口):一组已经得到有关各方共同认可的基本约定。约定保持不变.

W3C对DOM的定义:一个与系统平台与编程语言无关的接口。程序和脚本可以通过这个接口动态地访问和修改文档内容、结构和样式。

战争结局:微软战胜了NetScape;在wasp标准小组的压力下,下一代浏览器产品对Web标准支持得到了极大的改善。

苹果在2003年发布Safari(基于Webkit),一开始就遵循DOM标准(Chrome也基于Webkit),很多智能手机都在使用Webkit渲染引擎。

现代浏览器对DOM特性的覆盖率基本达到95%,只要遵循DOM标准,就可以放心大胆地去做,真正实现"编写一次。到处运行!"

二、语法要点

1.编写JavaScript脚本只需要一个普通的文本编辑器和一个Web浏览器.

2.最好的做法是把JS存放为扩展名为.js的文件,并把<script>标签放到HTML文档最后,</body>标签之前.这样能使浏览器更快地加载页面.

3.程序设计语言分为解释型和编译型两大类:

Java或C++等语言需要一个编译器(compiler).编译器是一种程序,能够把Java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件;

解释型语言不需要编译器,仅需要解释器.对于JS而言,浏览器中的JavaScript解释器将直接读入源代码并执行.

编译型语言的代码有错误,在编译阶段就能被发现。而解释型代码的错误只能等到解释器执行到有关代码才能被发现.

编译型语言速度往往更快,可移植性更好,学习起来有些难度.

JavaScript优点之一就是相当容易入门,可以完成许多复杂的编程任务。

4.建议每条语句加上分号,而且让每条语句都独占一行,更容易跟踪JavaScript脚本的执行顺序.

first statement;

second statement;

5.单行注释: //comment  ;   多行注释: /*comments*/;

6.var myMood = "happy";

"happy"字面量:直接在JavaScript代码里写出来的数据,除了表示它自己外不表示其他任何东西!

"var"是一个关键字;  myMood则是变量名;

7.强类型语言(Strongly typed):Java,C等等; 弱类型语言(weakly typed):JavaScript;

8.想用双引号包含一个本来就有双引号的字符串,必须用\进行转义,单引号同理,整个脚本保持引号选择的一致性,不要一会儿使用单引号,一会儿使用双引号。

9.对于""空串和false,== 会认为它们是相等的,要进行严格的比较,需要使用 === .

10.函数:如果需要多次使用同一段代码,可以把它们封装成一个函数(function),函数就是一组允许在你的代码里随时调用的语句。每个函数实际上是一个短小的脚本.作为一个良好的编程习惯,应当先定义函数,然后再调用它们.

函数的命名建议: 变量名用下划线来区分和命名,例如user_age,user_name;

而函数则用驼峰命名法:setName,getName.

function square(num){

let total = num * num

return total

}

let total = 50

let number = square(20)

console.log(total)

记住,函数在行为方面应当像一个自给自足的脚本,在定义一个函数时,我们一定要把它内部的变量全都明确地声明为局部变量。在函数里总是用var或let关键字来定义变量,就可以避免任何形式的二义性隐患.

11.JavaScript里的对象分类:

(1)用户自定义对象(user-defined object);

(2)内建对象(native object):例如Array,Date,JavaScript里预先定义好的对象;

(3)宿主对象(host object):Form,Image,Element等,由浏览器提供的预定义对象.

JavaScript简史相关推荐

  1. 【前端圭臬】七:JavaScript 简史与面向对象之道

    前言 从这篇起我们来一起学习 JS. 在二十一世纪二十年代的今天,想必不会有人再对 JS 作为一门正儿八经的编程语言的合理地位提出质疑了.而想要获得一门编程语言的比较完备的知识,我们就至少需要从文法( ...

  2. JavaScript 简史

    本文转载自:众成翻译 译者:网络埋伏纪事 审校: 为之漫笔 链接:http://www.zcfy.cc/article/2389 原文:https://auth0.com/blog/a-brief-h ...

  3. JavaScript 第一课 JavaScript简史

    1.JavaScript的起源 Java在理论上可以部署在任何环境下,但是JavaScript却更倾向于只应用在Web浏览器.JavaScript是一种脚本语言,通常只能通过Web浏览器去完成一些操作 ...

  4. JavaScript DOM编程艺术第一章:JavaScript简史

    本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...

  5. JavaScript 简史 1

    作者 | 泰斗贤若如 来源 | 泰斗贤若如 这次写一篇对于JavaScript的简介,我们知道的编程语言有很多种,比如Java.C++.Python等等,每种编程语言都有其独具的特色,不论是语法格式还 ...

  6. JavaScript 简史:从网景到框架 | 技术头条

    [CSDN 编者按]从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了.尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够 ...

  7. JavaScript 简史:从网景到框架

    [CSDN 编者按]从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了.尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够 ...

  8. 《JavaScript高级程序设计》(第2版)上市

      本书是技术畅销书<JavaScript高级程序设计> 的第2版,几乎全部更新.重写 了上一版的内容,融入了作者近几年来奋战在前端开发一线的宝贵经验 , 是学习和提高JavaScript ...

  9. JavaScript高级程序设计(第3版)手写第一天。2019年2月23日,星期六

    目录 第一章 Javascript简介 1.1 javascript简史 1.2 javascript实现 1.2.1 ECMAScript 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对旬 ...

最新文章

  1. 小程序代理加盟实现月入1800到50K
  2. Android通过ksoap2调用.net(c#)的webservice
  3. java进入编程界面_java – 编程到界面是什么意思?
  4. 通过APNIC获取各运营商IP网段
  5. Java内存图以及堆、栈、常量区、静态区、方法区的区别
  6. (数学)灯泡亮灭问题
  7. 2k 幻14_ROG幻14肝游戏有何体验?携RTX系列献上终极光追画面福利
  8. 电商领袖战:马云虚,东哥实
  9. arcpy 查看arcgis的产品类型、产品许可与安装信息
  10. python数字图像处理(6):图像的批量处理
  11. windows痛苦面具-C盘瘦身法
  12. 一文带你理解URI 和 URL 有什么区别?
  13. HSF框架日常问题记录1
  14. 当KPI说谎:数据科学错误的高昂代价
  15. 数据交换技术(*):电路交换,报文交换,分组交换的概念,特点和优缺点以及存储转发技术概念
  16. hello树先生经典台词
  17. trove mysql 镜像_OpenStack(Queens)制作 Trove 镜像
  18. Dynamics Ax 微软官方社区地址
  19. 官方精简版!Windows 10 LTSC 2021 正式发布
  20. 国庆七连测(一)BREAD

热门文章

  1. 夹治具设计需要遵循的一些设计准则:
  2. python opencv BGR2RGB转换原理
  3. 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器
  4. markdown编辑器的基本使用
  5. 关于cuda、cudnn环境配置
  6. 光线微弯传感器matlab仿真,基于输出光斑旋转的光纤微弯位移传感器
  7. [PyTorch]——DataLoader Num_workers
  8. python爬虫遇见needs to review the security of your connection before proceeding绕过 Cloudflare
  9. srs直播 java开发,使用 SRS/OBS/VLC 快速搭建直播服务系统
  10. C++递归算法之分成互质组