《JavaScript 闯关记》之语句

表达式在 JavaScript 中是短语,那么语句就是整句命令。表达式用来计算出一个值,语句用来执行以使某件事发生。从本质上看,语句定义了 JavaScript 中的主要语法,语句通常使用一或多个关键字来完成给定任务。语句可以很简单,例如通知函数退出;也可以比较复杂,例如指定重复执行某个命令的次数。下表列出了 JavaScript 大部分语句的语法和用途:

语句 语法 用途
break break [label]; 退出最内层循环或者退出 switch 语句,又或者退出 label 指定的语句
case case expression: switch 语句中标记一条语句
continue continue [label]; 重新开始最内层的循环或重新开始 label 指定的循环
debugger debugger; 断点器调试
default default; switch 中标记默认的语句
do-while do statement while(expression); while 循环的一种替代形式
empty ; 什么都不做
for for(init;expr;incr) statement 简写的循环结构
for-in for(var in object) statement 遍历一个对象的属性
function function name([param[],...])
{statement}
声明一个函数
if-else if (expression) statement1
[else statement2]
执行 statement1 或者 statement2
label label:statement statement 指定一个名字 label
return return [expression]; 从函数返回一个值
switch switch(expression){statement} case 或者 default 语句标记的多分支语句
throw throw expression; 抛出异常
try try {statement}
[catch {handler statement}]
[finally {cleaup statement}]
捕获异常
use strict "use strict" 对脚本和函数应用严格模式
var var name=[=expr][,...]; 声明并初始化一个或多个变量
while while(expression) statement 基本的循环结构
with with(object) statement 扩展作用域链

阅读更多

《JavaScript 闯关记》之表达式和运算符

表达式

表达式是由数字、运算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。JavaScript 表达式主要有以下几种形式:

  • 原始表达式:常量、变量、保留字。
  • 对象、数组初始化表达式:var obj={a:1,b:2};var arr=[1,2,3];
  • 函数定义表达式:var fn=function(){}
  • 属性访问表达式:Math.abs
  • 调用表达式:alert('hello');
  • 对象创建表达式:new object();

运算符

JavaScript 中的运算符用于算术表达式、比较表达式、逻辑表达式、赋值表达式等。需要注意的是,大多数运算符都是由标点符号表示的,比如 +=。而另外一些运算符则是由关键字表示的,比如 typeofinstanceof,关键字运算符和标点符号都是正规的运算符。

下表列出了 JavaScript 中所有的运算符,并按照运算符的优先级排序的,前面的运算符优先级要高于后面的运算符优先级,被空行分隔开来的运算符具有不同的优先级。标题为 A 的列表示运算符的结合性(Associativity),L 表示从左至右、R 表示从右至左,标题为 N 的列表示操作数的个数(Number)。

阅读更多

《JavaScript 闯关记》之变量和数据类型

当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量,值的类型称作数据类型。

变量

JavaScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存值的占位符而已。定义变量时要使用关键字 var 来声明的,如下所示:

1
var message;

这行代码定义了一个名为 message 的变量,该变量可以用来保存任何值(像这样未经过初始化的变量,会保存一个特殊的值 undefined)。JavaScript 也支持直接初始化变量,因此在定义变量的同时就可以设置变量的值,如下所示:

1
var message = "hello";

此时,变量 message 中保存了一个字符串值 "hello"。像这样初始化变量并不会把它标记为字符串类型,因此,可以在修改变量值的同时修改值的类型。如下所示:

1
2
var message = "hello";
message = 100; // 有效的语句,不好的写法

在这个例子中,变量 message 一开始保存了一个字符串值 "hello",然后该值又被一个数字值100取代。虽然我们不建议修改变量所保存值的类型,但这种操作在 JavaScript 中完全有效。

阅读更多

《JavaScript 闯关记》之语法

JavaScript 的语法大量借鉴了 C 及其他类 C 语言(如 Java 和 Perl)的语法。因此,熟悉这些语言的开发人员在接受 JavaScript 更加宽松的语法时,一定会有种轻松自在的感觉。本章主要按照 ECMAScript 3 介绍这门语言的基本概念,并就 ECMAScript 5 的变化给出说明。

字符集

JavaScript 程序是用 Unicode 字符集编写的,Unicode 是 ASCII 和 Latin-1 的超集,并支持地球上几乎所有在用的语言。ECMAScript 3 要求 JavaScript 的实现必须支持 Unicode 2.1及后续版本,ECMAScript 5 则要求支持 Unicode 3及后续版本。

扩展阅读「Unicode 与 JavaScript 详解」
http://www.ruanyifeng.com/blog/2014/12/unicode.html

区分大小写

JavaScript 是区分大小写的。也就是说,关键字、变量、函数名和所有的标识符(identifier)都必须采取一致的大小写形式。比如,关键字 while 必须写成 while,而不能写成 While 或者 WHILE。同样,onlineOnlineOnLineONLINE 是4个不同的变量名。

但需要注意的是,HTML 并不区分大小写。由于它和客户端 JavaScript 联系紧密,因此这点区别很容易混淆。许多客户端 JavaScript 对象和属性与他们所表示的 HTML 标签和属性名相同。在 HTML 中,这些标签和属性名可以使用大写也可以是小写,而在 JavaScript 中则必须是小写。例如,在 HTML 中设置事件处理程序时,onclick 属性可以写成 onClick,但在 JavaScript 代码中,必须使用小写的 onclick

阅读更多

《JavaScript 闯关记》之初探

当学习一门新的编程语言的时候,应该边学边做,反复演练以加深理解。因此,你需要一个 JavaScript 解释器。幸运的是,每一个 Web 浏览器都包含一个 JavaScript 解释器。

可以通过在 HTML 文件里写一个 <script> 元素来嵌入 JavaScript 代码,当浏览器加载 HTML 文件的时候,它会自动执行这段代码。如果运行的是一小段 JavaScript 代码,则不必每次都这样做。我们可以利用 Chrome 浏览器的「开发者工具」来运行这些小段代码,通常按 F12 或者 Ctrl+Shift+J 快捷键可以唤醒控制台。

现代浏览器可以使用函数 console.log() 来向控制台输出消息,通过这种方式可以非常方便地调试代码。

<script> 元素

使用 <script> 元素的方式有两种:

  • 直接在页面中嵌入 JavaScript 代码。
  • 包含外部 JavaScript 文件。

使用 <script> 元素嵌入 JavaScript 代码时,只需为 <script> 指定 type 属性。然后,像下面这样把 JavaScript 代码直接放在元素内部即可:

1
2
3
4
5
<script type="text/javascript">
function sayHello(){
console.log("Hello!");
}
</script>

阅读更多