JavaScript简史
一、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简史相关推荐
- 【前端圭臬】七:JavaScript 简史与面向对象之道
前言 从这篇起我们来一起学习 JS. 在二十一世纪二十年代的今天,想必不会有人再对 JS 作为一门正儿八经的编程语言的合理地位提出质疑了.而想要获得一门编程语言的比较完备的知识,我们就至少需要从文法( ...
- JavaScript 简史
本文转载自:众成翻译 译者:网络埋伏纪事 审校: 为之漫笔 链接:http://www.zcfy.cc/article/2389 原文:https://auth0.com/blog/a-brief-h ...
- JavaScript 第一课 JavaScript简史
1.JavaScript的起源 Java在理论上可以部署在任何环境下,但是JavaScript却更倾向于只应用在Web浏览器.JavaScript是一种脚本语言,通常只能通过Web浏览器去完成一些操作 ...
- JavaScript DOM编程艺术第一章:JavaScript简史
本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...
- JavaScript 简史 1
作者 | 泰斗贤若如 来源 | 泰斗贤若如 这次写一篇对于JavaScript的简介,我们知道的编程语言有很多种,比如Java.C++.Python等等,每种编程语言都有其独具的特色,不论是语法格式还 ...
- JavaScript 简史:从网景到框架 | 技术头条
[CSDN 编者按]从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了.尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够 ...
- JavaScript 简史:从网景到框架
[CSDN 编者按]从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了.尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够 ...
- 《JavaScript高级程序设计》(第2版)上市
本书是技术畅销书<JavaScript高级程序设计> 的第2版,几乎全部更新.重写 了上一版的内容,融入了作者近几年来奋战在前端开发一线的宝贵经验 , 是学习和提高JavaScript ...
- JavaScript高级程序设计(第3版)手写第一天。2019年2月23日,星期六
目录 第一章 Javascript简介 1.1 javascript简史 1.2 javascript实现 1.2.1 ECMAScript 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对旬 ...
最新文章
- 小程序代理加盟实现月入1800到50K
- Android通过ksoap2调用.net(c#)的webservice
- java进入编程界面_java – 编程到界面是什么意思?
- 通过APNIC获取各运营商IP网段
- Java内存图以及堆、栈、常量区、静态区、方法区的区别
- (数学)灯泡亮灭问题
- 2k 幻14_ROG幻14肝游戏有何体验?携RTX系列献上终极光追画面福利
- 电商领袖战:马云虚,东哥实
- arcpy 查看arcgis的产品类型、产品许可与安装信息
- python数字图像处理(6):图像的批量处理
- windows痛苦面具-C盘瘦身法
- 一文带你理解URI 和 URL 有什么区别?
- HSF框架日常问题记录1
- 当KPI说谎:数据科学错误的高昂代价
- 数据交换技术(*):电路交换,报文交换,分组交换的概念,特点和优缺点以及存储转发技术概念
- hello树先生经典台词
- trove mysql 镜像_OpenStack(Queens)制作 Trove 镜像
- Dynamics Ax 微软官方社区地址
- 官方精简版!Windows 10 LTSC 2021 正式发布
- 国庆七连测(一)BREAD
热门文章
- 夹治具设计需要遵循的一些设计准则:
- python opencv BGR2RGB转换原理
- 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器
- markdown编辑器的基本使用
- 关于cuda、cudnn环境配置
- 光线微弯传感器matlab仿真,基于输出光斑旋转的光纤微弯位移传感器
- [PyTorch]——DataLoader Num_workers
- python爬虫遇见needs to review the security of your connection before proceeding绕过 Cloudflare
- srs直播 java开发,使用 SRS/OBS/VLC 快速搭建直播服务系统
- C++递归算法之分成互质组