- 语句
- 变量和数组
- 操作符
- 条件语句和循环语句
- 函数与对象
-------------------------------------------------------------
准备:
编写JavaScript脚本只需要一个普通地文本编辑器和一个Web浏览器就足啦。
用JavaScript编写的代码必须通过HTML/XHTML文档才能执行,有两种方式可以做到这点。
1、第一种是将JavaScript代码放到文旦<head>标签中的<script>标签之间:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script>JavaScript goes here</script>
</head>
<body>Mark-up goes here...
</body></html>
2、一种更好的方式是将JavaScript代码存为一个扩展名为.js的独立文件。典型的做法是在文档的<head>部分放一个<script>标签
并把它的src属性指向该文件:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title><script src = "file.js"></script>
</head>
<body>Mark-up goes here...
</body></html>
3、但是最好的做法是把<script>标签放在HTML文档的最后,</body>标签之前:
<!DOCTYPE html>
<html lang = "en">
<head><meta charset = "utf-8"/><title>example</title></head>
<body>Mark-up goes here...<script src = "file.js"></script>
</body></html>
这样可以更快的加载页面。why?
程序设计语言分为:解释型和编译型两大类。
java或c++等语言需要一个编译器(compile)。编译器是一种程序,能够把用Java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。
解释型程序设计语言不需要编译器----它们仅需要解释器。对于JavaScript语言,在互联网环境下,Web浏览器负责完成有关的解释和执行工作。浏览器中的JavaScript解释器将直接读入源代码并执行。浏览器中如果没有解释器,JavaScript代码就无法执行。
编译型程序设计语言(Java、c) | 解释性程序设计语言(JavaScript、Python) |
需要编译器(Compiler)编译器是一种程序,能够把用Java等高级语言编写出来的源代码翻译为直接在计算机上执行的文件。 | 不需要编译器,仅需要解释器,Web浏览器负责完成有关的解释和执行工作。浏览器中的JavaScript解释器将直接读入源代码并执行。 |
在代码编译阶段可以发现错误 | 等到解释器执行到有关代码时才发现 |
速度快,可移植性好 | |
在语法方面,JavaScript与Java和C++极为相似。
注释:在HTML文档中,使用<!-这是JavaScript中的注释->方式来进行注释。在JavaScript使用//或/* */进行注释。
变量:提前声明变量是一种良好的编程习惯。例如:var mood; (var 是一个关键字)
变量名的要求:区分大小写,不允许包含空格或标点符号(美元符号"$"除外)。允许包含字母、数字、美元符号和下划线(但第一个数字不允许是数字)。可采取驼峰式命名法(camel case)。
数据类型:
必须明确数据类型声明的语言称为强类型(strong typed)语言。JavaScript不需要进行类型声明,因此他是一种弱类型(weakly typed) 语言。这意味我们可以在任何阶段改变变量的数据类型。就是说对于一个变量,JavasScript并不在意它是一个字符串还是一个数或是一个布尔值。
JavaScript数据类型分为:字符串、数值、布尔值
1、字符串:包含零个或多个字符组成,字符包括(不限于)字母、数字、标点符号和空格。字符串必须包在引号里,可以是单引号或是双引号,期间可能会使用到转义字符(反斜线\),反斜线并不是字符串的一部分。一个好的编程习惯是使用双引号来保住字符串。
2、数值:浮点、整数、负数、、
3、布尔值:两个可选值、true或者是false。
从某种意义上将,计算机设计程序就是与布尔值打交道,所有的电子电路只能识别和使用布尔数据:电路中有还是没有电流。
布尔值不是字符串。
数组:
字符串、数值还是布尔值都是标量(scalar),如果某个变量是标量,它在任意时刻就只能有一个值。
数组可以用一个变量来存储一组值,在JavaScript中,数组可以用关键字Array声明。声明数组的同时可以指定数组的长度(length)例如:var beatles = Array(4);
另外也可以不声明数组的长度,例如:var beatles = Array();
我们甚至用不着明确我们是在创建数组。例如: var beatles = ["John","Paul","George",“Ringo”];
对象
数组是使用一个名字表示一组值,对象的每个值都是对象的属性。例如:
var lennon = Object();
lennon.name = "Jonh";
lennon.year = "1940";
lennon.living = "false";
创建对象使用Object关键字。它不使用方括号和下标来获取元素,而是像任何JavaScript对象一样,使用点号来获取属性。
创建对象还有更简洁的语法:就是花括号语法:
{propertyName:value,prpertyName:value}
lennon对象也可以写成下面这样: var lennon = {name:"John",living:false};
对象是一种非常重要的数据类型,对象是自包含的数据集合,包含在对象里的数据通过两种形式访问:属性(property)和方法(method):
属性就是隶属于某个特定对象才能调用的变量;
方法是只有某个特定对象才能调用的函数。对象就是由一些属性和方法组合在一起而构成的一个数据实体。
在JavaScript里,属性和方法都使用“点”语法来访问:
Object.property
Object.method()
JavaScript中提供了一系列预先定义好的对象,这些可以拿来用的对象就称为内建对象(native object)。
数组就是一个内建对象,当我们使用new关键字去初始化一个数组时,其实就是在创建一个Array对象的新实例:
var beatles = new Array();
我们可以使用Array对象的length属性来获得数组的长度:beatles.length;
Array对象只是诸多JavaScript内建对象的一种,其他例子包括Math对象和Date对象,它们分别提供了非常有用的方法供人们处理数值和日期值,例如:Math对象的round方法可以把十进制数值舍入为一个与之最接近的整数:
var num = 7.561;
var num = Math.round(num);
alert(num);
Data对象可以用来存储和检索于特定日期和时间有关的信息。创建Date对象的新实例时,JavaScript解释器将自动地使用当前日期和时间对它进行初始化:
var current_data = new Date();
Date对象提供了getDay()、gethHours()、getMonth()等一系列方法;以供人们用来检索于特定日期有关的信息。例如:
getDay()方法可以告诉我们给定日期是星期几:
var today = current_data.getDay();
宿主对象
除了内建对象,还可以在JavaScript脚本里使用一些已经预先定义好的其他对象。这些对象不是由JavaScript语言本身而是由它的运行环境提供的。具体到Web应用,这个环境就是浏览器。由浏览器提供的预定义对象称为宿主对象(host object)。
宿主对象包括Form、Image和Element 等。我们可以通过这些对象去获取网页上表单、图像和各种表单元素等信息。
另一种宿主对象也是用来获得网页上的任何一个元素的信息,就是document对象。