js发展历史
网景公司 布兰登.艾奇 10天时间搞出来了JavaScript,以前叫 LiveScript
后来网景公司被Sun公司收购,处于营销方面的考虑,把名字该为JavaScript。
编程语言分为3个历史阶段:
1 | 1. 机器语言:直接使用由“0”和“1”组成的二进制指令控制计算机,二进制是计算机的语言的基础。 |
高级语言:
首先,按照运行原理,分为编译型和解释型(脚本型)。
编译型:在程序执行之前,有一个单独的编译过程,将程序的所有源代码都编译为可执行代码(机器语言),再执行编译之后的可执行代码。(c,c++,java)
解释型:程序在运行的过程中:一边编译,一边执行(编译一行,执行一行)(javascript,python,php,c#)。
理论上,编译型语言比解释型语言执行效率高。按照数据类型是否强制,可以分为强类型语言和弱类型语言。
强类型:程序中变量、参数、函数返回值,都必须指明类型,不同类型的变量不能相互赋值。(c,java,c++,c#)
弱类型:变量、参数、函数返回值不需要指定类型,一个变量的类型是不固定的。(js,vb)按照编程范式,可分为面向对象语言和面向过程语言。
面向过程:将函数作为程序的基本单元,着重程序流程的开发。(c,js,pascal,vb)。
面向对象:类和对象是程序的基本单元,函数不能独立存在,着重类和对象的开发。(c++,java,objective-C)。
例题:把大象装进冰箱需要几步
面向过程:1.打开冰箱门。 2.把大象装进冰箱。 3.关上冰箱门。
面向对象:
冰箱有三个功能: 1.打开冰箱门。2.把“某物”装进冰箱。3.关上冰箱门。 告诉冰箱执行这三个功能,冰箱会自动打开门,然后把大象装进去,最后关门。
JavaScript
- JS是具有函数优先的轻量级脚本语言(是一种弱类型的解释型语言,支持多范式开发“既可以面向过程也可以面向对象”)。
- JS作为一门脚本语言,没有自己的独立运行环境,只能依附于其他的程序运行“浏览器”。直到nodeJs “js的服务器” 发布后JS才有了自己的独立运行环境,才能够操作系统功能。
- JS的作用:实现浏览器和用户的交互以及动态样式交互 (交互:一问一答)
- 在JS眼中国页面上所有的东西都是数据“data”,在JS眼里万物万事都是对象,所以程序员天天面对对象但是找不到对象。
- JS的兼容性问题:每个浏览器对JS的解析程度不同。
- JavaScript的优点和缺点
优点:
1.使用JS可以在客户端进行数据验证,节省服务器端的资源。
2.可以方便的操作各个方面的对象,使页面更加友好。
3.使多种任务仅在客户端可以完成而不需要网络和服务器的参与,从而支持分布式运算和处理。
缺点:
1.兼容性:互联网上有很多浏览器,但是各种浏览器支持JS的程度不一样,所有JS在各个浏览器上运行出来的结果会有一定差距,有时甚至会显示不出来。
2.JS不能打开:读写和保存用户计算机上的文件。
JavaScript 和 Java 的关系
- JavaScript 和 Java是两种不同的语言。他们语法上很类似 但 本质有着很大的区别。Java是比JS更加复杂的程序语言,而JS相对于Java来说很容易上手,但二者之间没有关系。
- JS和Java的关系好比“雷锋和雷峰塔的关系”,(1995年,网景公司的布兰登.艾奇“Brendan Eich”开发的LiveScript,在sun公司收购后改名为JavaScript,原因是当时Java语言非常红火,所以借Java的名气来推广JS“但事实上除了语法类似之外没有任何关系”)。
ECMAScript 和 JavaScript 的关系
一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?
1 | - 要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。 |
ECMAScript 的历史
1 | ECMAScript 1.0 是 1997 年发布 |
浏览器分为渲染引擎和js引擎
- 渲染引擎(也就是浏览器内核),用来解析html 和 css。
- js引擎(解释器)解析js代码。
js的组成
- js基础语法
- DOM对象模型 /文档对象模型(DOM:Document Object Model)
- BOM对象模型 /浏览器对象模型(B:Broswer Object Model)
HTML,CSS 和 JavaScript的关系
- HTML决定了页面上的内容(用户看到的内容“标签”)。
- CSS决定了页面中内容的样式(对页面的美化)。
- JavaScript决定了页面的事务逻辑(添加交互,动态效果)。
Author: 李金帅
Link: https://lijinshuai21.github.io/Li_JinShuai_Blog/2021/02/01/js%E7%AE%80%E4%BB%8B/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.