JavaScript基础
# 发展历史
1995年由Netscape网景公司的Brendan Eich布兰登·艾奇开发
最初命名为LiveScript,1995年12月与Sun公司合作,改名为JavaScript
后来Sun被Oracle收购,JS版权也归Oracle所有。
1996年,微软推出JScript在IE3.0中使用,11月Netscape将JavaScript提交给ECMA成为了国际标准,用于对抗微软。
2003年之前,JavaScript一般用来制作网页上的广告,弹窗等等。所以很多浏览器推出了屏蔽广告功能。
2004年,JavaScript命运开始改变,这一年,google开始带头使用Ajax技术,提升用户体验。
2007年乔布斯发布了第一款iPhone,这一年开始,用户就多了一种访问互联网的途径,就是移动端上网。JavaScript在移动网页中,也是不可或缺的 并且这一年,互联网开始标准化,按照W3C的标准三层分离,JavaScript越来越被重视。
时间来到2010年,人们更加了解HTML5技术,HTML5推出了一个东西叫做Canvas(画布),工程师可以在Canvas上进行游戏制作,利用的就是JavaScript。
2011年,Node.js诞生,使JavaScript能够开发服务器程序了。
如今,WebApp已经非常流行,就是用 网页技术开发手机应用。手机系统有iOS、安卓。比如公司要开发一个“携程网”App,就需要招聘三队人马,比如iOS工程师10人,安卓工程师10人,前端工程师10人。共30人,开发成本大;而且如果要改版,要改3个版本。现在,假设公司都用web技术,用html+css+javascript技术就可以开发App。也易于迭代(网页一改变,所有的终端都变了)。
虽然目前WebApp(Web应用)在功能和性能上的体验远不如Native App(原生应用),但是“在原生App中内嵌一部分H5页面”已经是一种趋势。
小知识
由于当时Java这个语言特别火,所以为了傍大牌,就改名为JavaScript。如同“北大”和“北大青鸟”的关系。“北大青鸟”就是傍“北大”大牌。
同时期还有其他的网页语言,比如VBScript、JScript等等,但是后来都被JavaScript打败了,所以现在的浏览器中,只运行一种脚本语言就是JavaScript。
JavaScript是世界上用的最多的脚本语言。
# JS的特点
- 解释型语言
- 弱类型
- 单线程
- ECMAScript标准
- ECMAScript不是一门语言,而是一个标准。ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
# JS的组成
- ECMAScript:JavaScript的
语法标准。包括变量,表达式,运算符,函数,if语句,for语句等。 - DOM:Document Object Model(文档对象模型),
操作页面上的元素的API。比如让盒子移动、变色、改变大小、轮播图等等。 - BOM:Browser Object Model(浏览器对象模型),操作浏览器部分功能的API。通过BOM可以操作浏览器窗口,比如弹框、控制浏览器跳转、获取浏览器分辨率等等。
ECMAScript 是 JS 的语法;DOM 和 BOM 浏览器运行环境为 JS提供的API。
# 基础的语法规则
学习程序,是由规律可循对的。程序会有相同的部分,这些部分就是一种规定,不能更改,我们称之为:
语法
- JavaScript对换行,缩进,空格不敏感。
- 严格区分大小写
- 注释
- 单行注释
//注释内容1- 多行注释
/* 注释内容1 注释内容2 */1
2
3
4
补充
- 语句后加不加分号,看个人习惯以及项目风格(目前我了解的情况是这样 🤣)
- 所有符号都是英文的,例如括号,引号,分号。
- 三种书写方式
- 行内式
<input type="button" value="btn" onclick="alert('行内式写法')">1- 内嵌式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> // 在这里写 js 代码 alert('内嵌式'); </script> </body> </html>1
2
3
4
5
6
7
8
9
10
11
12
13- 引用外部JS文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 引入外部的 js 文件 --> <script src="tool.js"></script> </body> </html>1
2
3
4
5
6
7
8
9
10
11项目开发中一般采用外部引用JS方式(解耦,结构化)
# 补充知识点
# 编程语言类型
# 翻译器
计算器不能直接理解任何除了机器语言之外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才可以执行程序。 程序语言翻译成机器语言的工具,被称为翻译器
由此可见,所谓的“翻译”,指的是翻译成计算机能够执行的指令。
翻译器翻译的方式有两种:一种是编译,另一种是解释。两种方式之间的区别在于翻译的时机不同。
编译器:在代码执行之前,事前把所有的代码一次性翻译好,生成中间代码文件,然后整体执行。
解释器:边翻译,边执行(在代码执行时进行及时翻译,并立即执行)。当编译器以解释的方式运行时,也称之为解释器。
# 编译型语言
定义:事先把所有的代码一次性翻译好,然后整体执行。
优点:运行更快。
不足:移植性不好,不跨平台。
编译型语言举例:c、c++
c语言的代码文件是.c后缀,翻译之后文件是.obj后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是.java后缀,翻译之后的文件是.class后缀
# 解释型语言
定义:边翻译边执行(翻译一行,执行一行),不需要事先一次性翻译。
优点:移植性好,跨平台。
缺点:运行更慢。
解释型语言举例:JavaScript、php、Python。
😞 现在实在是看不懂,留坑日后回来补 编译型语言或解释型语言的问题