1、概要
1.1、变量表示值的一个符号名字
//变量通过var关键字声明
var x; //声明一个变量
//赋值
x = 0;
//多种数据类型
x = 5;
x = 0.2; //整数和浮点数共用一种类型
x = "Hello"; //双引号字符串
x = \'World\'; //单引号字符串
x = true; //布尔值
x = false;
x = null; //空值
x = undefined; //未定义值
1.2、对象类型
//对象是键值对集合
var book = { //对象由花括号
topic: "Javascript", //属性 topic 的值为字符串 "Javascript"
fat: true //多个属性,逗号分隔
};
//通过.或[]访问对象属性
book.topic; //=>"Javascript"
book["fat"];
//通过赋值创建一个新的属性
book.author = "Flang";
//属性的值为另一个对象
book.content = {}; //{}表示空对象
1.3、数组类型
var array = [1, 2, 3, 4]; //四个值的数组,[]划定边界
array[0]; //=>1,数组第一个值
array.length; //=>4,数组长度
array[4] = 5; //赋值添加新元素和改变元素值
var empty = []; //空数组
1.4、数组和对象中都可包含其它数组和对象
var points = {
point1 : { x: 0, y:1 },
point2 : { x: 1, y:0 } //对象的属性是一个对象
};
var data = {
a1: [[1, 2], [3, 4]], //对象属性是一个数组
a2: [[5, 6], [7, 8]] //数组中的元素也是数组
}
1.5、表达式运算
3 + 2; //=>5,加
5 - 3; //=>2,减
2 * 3; //=>6,乘
3 / 2; //=>1.5,除
"3" + "2"; //字符串连接
var count;
count++; //自增
count--; //自减
count += 2; //自增2
count *= 2; //自乘
//比较运算符
var x = 3, y = 3;
x == y; //相等
x != y; //不等
x < y; //=>false,都返回布尔值
x <= y;
x > y;
x >= y;
"two" == "three"; //字符串相等
"two" > "three"; //tw在字母表中的索引顺序大于th
//逻辑运算符
(x == 3) && (y == 2); //与运算
(x < y) || (x > y); //或运算
!(x == y); //非运算
1.6、函数,一次定义多次调用
function plus1(num) {
return num + 1;
}
plus1(2); //=>3
//当函数用来操作对象属性时,称之为”方法“
var aa = [];
aa.push(1, 2, 3); //push()方法向数组中添加元素
aa.reverse(); //反转数组元素
//对象定义自己的方法,方法内使用this作为对象本身的引用
var one = {
p1: { x: 2, y: 3 },
p2: {x: 4, y: 5}
}
one.count = function () {
var r1 = this["p1"]; //this代表one对象
var r2 = this["p2"]; //提取对象中对象
//计算两点之间的距离
var a = r1.x - r2.x;
var b = r1.y - r2.y;
return Math.sqrt(a*a + b*b); //调用Math.sqrt()方法计算平方根
}
one.count(); //=>2.828
//JavaScript是一种面向对象的语言,但又与面向对象语言有所不同
//定义一个构造函数
function Point(x, y) {
this.x = x;
this.y = y;
}
//new关键字创建一个实例
var p1 = new Point(1, 2);
//通过构造函数的protoype对象赋值,构造方法
Point.prototype.r = function () {
return Math.sqrt(this.x * this.x + this.y * this.y);
}
//返回x^2 + y^2的平方根
p1.r();
1.7、三个重要核心定义类
日期(Date)类定义了代表日期的对象。
正则(RegExp)类定义了表达了正则表达式的对象。
错误(Error)类定义了JavaScript程序运行时的错误和异常对象。
1.8、内存管理机制,JavaScript有自己的内存管理机制,当不再有引用指向对象时,自动回收内存资源,程序员不需要担心对象的销毁和内存回收。
1.9、JavaScript变量是无类型的,变量可以被赋予任何类型的值,JavaScript采用词法作用域,不在任何函数内定义的变量成为全局变量,函数内部声明的变量具有函数作用域。
2、字符集
JavaScript语言区分大小写,变量名、关键字、函数名和所有标识符都必须采取一致的大小写形式,如关键字while、online等必须保持小写形式。
需要注意的是,HTML并不区分大小写,许多标签和属性名可以是大写或小写,在JavaScript必须是小写,如onclick等。
3、注释
// 单行注释
/* 多行注释
* 注释
*/
4、标识符和保留字
标识符用来对变量和函数进行命名,或者用作JavaScript代码中某些循环语句中的跳转位置的标记,必须以字母、下划线和美元符开始。
JavaScript把一些标识符作为关键字,不可以用作标识符,列举如下:
基本关键字
Java关键字
JavaScript预定义全局变量和函数
5、换行处分号填补
和其他许多语言一样,JavaScript使用分号(;)将语句分隔开,在JavaScript中也可以省略分号,换行使会自动填补分号。
var a
a
=
3
console.log(a);
注意的是,并不是所有换行都会填补分号,只有在缺少了分号而无法正常解析代码时,JavaScript才会填补分号,上述列子解析后为:var a; a = 3; console.log(a); 。