导论
JavaScript 语言的定义
JavaScript
是一种轻量级的脚本语言。所谓“脚本语言”(script language)
,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。目前,已经嵌入JavaScript
的宿主环境有多种,最常见的环境就是浏览器
,另外还有服务器环境,也就是Node 项目
。
为什么学习 JavaScript
- 操控浏览器的能力
- 广泛的使用领域
- 浏览器的平台化
- Node
- 数据库操作
- 移动平台开发
- 内嵌脚本语言
- 跨平台的桌面应用程序
- 易学性
- 强大的性能
- 开放性
- 社区支持和就业机会
历史
诞生
JavaScript 因为互联网而生,紧跟着浏览器的出现而问世。回顾它的历史,就要从浏览器的历史讲起。1995年9月改为 LiveScript。12月,Netscape 公司与 Sun 公司(Java 语言的发明者和所有者)达成协议,后者允许将这种语言叫做 JavaScript。这样一来,Netscape 公司可以借助 Java 语言的声势,而 Sun 公司则将自己的影响力扩展到了浏览器。
JavaScript 与 Java 的关系
JavaScript 的基本语法和对象体系,是模仿 Java 而设计的。但是,JavaScript 没有采用 Java 的静态类型。正是因为 JavaScript 与 Java 有很大的相似性,所以这门语言才从一开始的 LiveScript 改名为 JavaScript。基本上,JavaScript 这个名字的原意是“很像Java的脚本语言”。
JavaScript 与 ECMAScript 的关系
1997年7月,
ECMA(European Computer Manufacturers Association)
组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript。这个版本就是 ECMAScript 1.0 版。之所以不叫 JavaScript,一方面是由于商标的关系,Java 是 Sun 公司的商标,根据一份授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 已经被 Netscape 公司注册为商标,另一方面也是想体现这门语言的制定者是 ECMA,不是 Netscape,这样有利于保证这门语言的开放性和中立性。因此,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。
基本语法
变量
var
标识符
下面这些都是合法的标识符。
arg0
_tmp
$elem
π
下面这些则是不合法的标识符。
1a // 第一个字符不能是数字
23 // 同上
*** // 标识符不能包含星号
a+b // 标识符不能包含加号
-d // 标识符不能包含减号或连词线
中文是合法的标识符,可以用作变量名。
var 临时变量 = 1;
if 结构
注意,if
后面的表达式之中,不要混淆赋值表达式(=)
、严格相等运算符(===)
和相等运算符(==)
。尤其是赋值表达式不具有比较作用。
var x = 1;
var y = 2;
if (x = y) {
console.log(x);
}
// "2"
switch 结构
多个if...else
连在一起使用的时候,可以转为使用更方便的switch
结构。
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
三元运算符 ?:
语法
(条件) ? 表达式1 : 表达式2
var even = (n % 2 === 0) ? true : false;
do…while 循环
do…while循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件。
do {
语句
} while (条件);
var x = 3;
var i = 0;
do {
console.log(i);
i++;
} while(i < x);
while 循环
语法
while (条件) {
语句;
}
var i = 0;
while (i < 100) {
console.log('i 当前为:' + i);
i = i + 1;
}
for 循环
语法
for (初始化表达式; 条件; 递增表达式) {
语句
}
var x = 3;
for (var i = 0; i < x; i++) {
console.log(i);
}
// 0
// 1
// 2
标签(label)
JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label:
语句
标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。
标签通常与break语句和continue语句配合使用,跳出特定的循环。
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
上面代码为一个双重循环区块,break命令后面加上了top标签(注意,top不用加引号),满足条件时,直接跳出双层循环。如果break语句后面不使用标签,则只能跳出内层循环,进入下一次的外层循环。
参考
- https://wangdoc.com/javascript/index.html