1.准备工作
JavaScript编写的代码需要通过HTML/XHTML文档才能执行。
有两种方式可以实现这点。
第一种: 将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>
第二种:把JavaScript代码存为一个扩展名为.js的独立文件。可将<head>中<script>中的src属性指向.js文件。或者把<script>放在HTML文档的最后,</body>之前。
<!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>
<!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>
2.语法
1. 语句
JavaScript编写的脚本是由一条条语句组成的。JavaScript语法要求每个语句分隔开来。有几种方法可以将分隔开。
第一种:将各个语句放在不同的行
first statement
second statement
第二种:将多个语句放在同一行时需要用分号分隔。
first statement;second statement
第三种:在每条语句的末尾就加上分号(建议)
first statement;
second statement;
2.注释
注释是JavaScript解释器忽略掉的信息,给代码加上注释可以帮助理解代码的流程和作用
在JavaScript脚本中插入注释,也有多种方式。
第一种:在每行注释前加上//
//自我提示
//有注释是好事
第二种:在注释内容的开头与结尾分别加上/*和*/
/*自我提醒:
有注释是件好事*/
第三种(HTML风格):仅适用于单行注释,在注释开头加<!--。
如果是HTML文档中的注释,在注释结尾还需加-->,且允许注释跨越多行
<!--这是JavaScript中的注释
<!--这是HTML中的注释-->
3.变量
JavaScript允许直接对变量赋值不需要事先声明变量。如果在对某个变量赋值之前未声明,赋值操作将自动声明该变量。
声明变量:
var mood;
var age;
也可以一个语句一次声明多个变量
var mood,age;
最有效率的做法就是,同时对变量声明与赋值
var mood="happy",age=33;
JavaScript语言,变量与其他语法元素的名字都是区分字母大小写。JavaScript变量名允许包含字母、数字、美元符号和下划线。(但第一个字符不允许是数字)
为了让比较长的变量名更易理解,有两种方式。第一种:在变量名中的适当位置添加下划线。第二种:在变量后面的新单词改用大写字母开头。
var my_mood="happy";
var myMood="happy";
4.数据类型
类型声明(typing):需要在声明变量同时声明变量的数据类型。
必须明确类型声明的语言叫做强类型语言,而不需要进行类型声明的语言叫做弱类型语言(如JavaScript)。
JavaScript中几种重要的数据类型:
1.字符串:需要包含在引号里面(单引号,双引号都可)。
如果字符串中包含双引号,则将整个字符串放在单引号里面。
如果字符串中包含单引号,则将整个字符串放在双引号里面。
如果想要把包含双引号(单引号)的字符串放在双引号(单引号)里,需要对字符串中的双引号(单引号)进行转义(在双引号\单引号 前加反斜线\
var height="about 5'10\" tall";
var mood='don\'t ask';
2.数值
可以给变量赋整数值、浮点数、负数值、负数浮点数。
3.布尔值
布尔数据只有两个可选值:false 或 true。
布尔值不是字符串,不需要用引号将布尔值括起来。
var married=true;
5.数组
字符串、数值和布尔值都是标量。如果变量是标量,则它在任意时刻只能有一个值。
数组:可以用一个变量存储一组值。
声明数组:需要在变量前用关键字Array,也可同时声明数组初始元素的个数。(即数组的长度 )
var beatles=Array(4);
也可以在声明数组时不给出元素的个数
var beatles=Array();
填充数组: 向数组添加元素的操作。
array[index]=element;
声明和填充beatles的全过程:
var beatles=Array(4);
beatles[0]="John";
beatles[1]="Paul";
beatles[2]="Geroge";
beatles[3]="Ringo";
在声明数组的同时对其填充:
var beatles=Array("John","Paul","George","Ringo");
无需明确表明是在创建数组:用一对方括号把各个元素的初始值括起来
var beatles=["John","George","Paul","Ringo"];
//数组元素为字符串
var years=[1940,1941,1942,1943];
//数组元素为数值
var lemon=["Jonh",1940,false];
//将三种数据类型混合
var name="John";
beatles[0]=name;
//数组元素还可以是另一个变量
var name=["John","George","Paul","Ringo"];
beatles[1]=name[3];
//数组元素还可以是另一个数组元素
var beatles=[];
beatles[0]=lemon;
//数组还可以包含其他数组
关联数组
可以通过在填充数组时为每个新元素明确地给出下标来改变这种默认行为。
在为新元素给出下标时不必局限于整数数字,还可以用字符串。
本质上,在创建关联数组时,创建的是Array对象的属性。如下图代码是给lennon数组添加了name、year和living三个属性。在理想情况,不应该修改对象的属性,而应该使用通用的对象(Object)
var lennon=Array();
lennon["name"]="John";
lennon["year"]=1940;
lennon["living"]=false;
6.对象
对象可以使用一个名字表示一组值,每个值都是对象的一个属性。
var lennon=Object();
lennon.name="John";
lennon.year=1942;
lennon.living=false;
创建对象:
使用关键字Object。
不使用方括号和下标获取元素,而是使用点号来获取属性。
另一种更简洁的语法:花括号语法。
{propertyName:value,propertyName:value}
//比如,lennon对象也可以这样写
var lennon={name:"John",year:1940,living=false};
用对象代替数组的意义:
可以通过对象的名字来引用它们。
var beatles={};
beatles.vocalist=lennon;
//beatles.vocalist.name的值是"John"
//beatles.vocalist.year的值是1940
//beatles.vocalist.living的值是false