-
本章内容
- 语句
- 变量和数组
- 操作符
- 条件语句与循环语句
- 函数与对象
一、变量
1、变量声明
以下代码:
var a = "123",b = "456";
效果等同于:
var a;
var b;
a = "123";
b = "456";
2、变量命名
JavaScript语言中,变量和其他语法元素的名字注意区分字母 大小写 ;
JavaScript语法里 不允许 变量名中包含 空格 或 标点符号 (美元符号“$”例外)。
建议:一般使用驼峰法命名 函数 ,使用下划线命名 变量 。
二、数据类型
JavaScript是弱类型(weakly typed) 语言,不需要进行类型声明。
1、字符串(string)
字符串由 零个 或 多个 字符构成,字符包括(但不限于)字母、数字、标点符号和空格。字符串必须包在 引号 内。
例:
var a = "asd";//等效于var a = 'asd'; (包在单引号或者双引号内都可以)
var a = "don't ask"; //(当字符串包含单引号时,则将整个字符串包在双引号里)
若想在上述语句中使用单引号包住,则需要使用转义字符(\)加在需要转义的字符前面。
var a = 'don\'t ask'; //don't ask
var b = "about 5'10\" tall"; //about 5'10" tall
2、数值(number)
JavaScript中 不限定 声明的变量为 整数 ,可以为浮点数(任意位数)、负数、负数浮点数等。
例:
var a = 33, b = 33.33, c = -33, d = -33.33;
3、布尔值(boolean)
布尔数据只有两个可选值 true 或 false。布尔值不是字符串,不需要包在引号里。
例:
var a = true;
var b = "true";
//a不等于b
4、数组(array)
数组 是指用一个变量表示一个值的 集合 ,集合中的每个值都是这个数组的一个元素(element)。
数组可以包含任何 JavaScript 值,甚至是包含数组。
例:
在 JavaScript 中,数组可以用关键字 Array 声明,如:
var a = Array(4);
若不确定数组中的元素个数,也可以:
var a = Array();
接下来可以对声明的数组添加元素,即 填充(populating)。
其中 array 为数组名,index 为元素的下标(起始值为0,而非1),element 为元素。
//语法格式: array[index] = element;
var a = Array(4);
a[0] = "1";
a[1] = "2";
a[2] = "3";
a[3] = "4";
或者使用更加简便的方式:
var a = ["1", "2", "3", "4"];
或是
var a = Array("1", "2", "3", "4");
扩展:
var lennon = Array();
lennon["name"] = "John";
lennon["year"] = 1940;
lennon["living"] = false;
这种数组叫做 关联数组 ,由于可以使用字符串来代替数字值,因而代码更具有可读性。
但不推荐使用,本质上,在创建关联数组时,创建的是 Array 对象的属性,我们不应该修改 Array 对象的属性,而是使用通用的 对象(Object)。
5、对象(object)
与数组类似,对象也是使用一个名字表示一组值,对象的每个值都是对象的一个属性。
例:
var lennon = Object();
lennon.name = "John";
lennon.year = 1940;
lennon.living = false;
也可以是使用更简洁的写法:
//语法格式: { propertyName:value, propertyName:value };
var lennon = { name:"John", year:1940, living:false };
内建对象(native object)
JavaScript 中 预定义 对象。
例:
//使用new关键字去初始化一个数组
var beatles = new Array();
//查看数组的元素个数
var len = beatles.length;
//十进制取整
var num = Math.round(1.439);
宿主对象(host object)
由 浏览器 提供的 预定义 对象。
宿主对象包括Form、Images、Element等对象。
三、操作符(operation)
1、算术操作符(arithmetic operation)
加法 操作符:+
减法 操作符:-
乘法 操作符:*
除法 操作符:/
例:
var a = 1;
var b = (a + 1) / 2;
//或者作用于字符串
var c = "Hello " + "World!";
//若要对数值进行变化为1的计算,则可以简写为:
var a = 0;
a++; //数值加1,等同于a = a + 1;
a--; //数值减1,等同于a = a - 1;
//快捷进行“加法和赋值”(或“拼接加赋值”)操作:
var year = 2010;
var msg = "The year is ";
msg += year;
2、比较操作符
大于:>
小于:>
大于或等于:>=
小于或等于:<=
等于:==
不等于:!=
全等于:===
全不等于:!==
注意:
等号(=)和等于(==)的区别:
等号 为 赋值 操作符, 等于 为 比较 操作符。
等于和全等(或不等于和全不等于)的区别:
等于(或不等于)比较的是 值,而全等于(全不等于)比较的是 值 和 类型 。
3、逻辑操作符
与:&&
或:||
非:!
例:
//假设要检查一个已定义变量的值 num 是否在5~10之间,则
if(num >= 5 && num <= 10) {
console.log("yes");
};
if(num >10 || num < 5) {
console.log("no");
};
if(!(num >10 || num < 5)) {
console.log("yes");
};
四、操作语句
1、条件语句(if)
if 条件语句
if语句的基本语法:
/*
if(condition) {
statements;
}
*/
条件必须放在 if 后面的 括号内 ,条件的求值结果永远是一个 布尔值(true或false),且在结果为 true 时才会 执行 花括号内的语句。
if…else… 条件语句
若结果为 false 时需要执行某些语句,则可以使用扩展语法(if…else…):
/*
if(condition) {
statements;
} else {
statements;
}
*/
ps :花括号内仅有一条语句是可以省略花括号,但是这样会降低可读性,所以不建议这么做。
2、循环语句
while 循环
while循环语句的基本语法:
/*
while(condition) {
statements;
}
*/
while循环 跟 if语句 的区别:只要给定条件的求值结果为 true ,则 while循环 会反复执行下去。
例:
var count = 1;
while(count < 11) {
console.log(count);
count++;
}
例子中会执行到 count 的值变为 11 为止。
do…while 循环
若在某些特定情况下,要让 while循环 至少执行一次,则可以使用扩展语法:
/*
do {
statements;
} while (condition);
*/
var count = 1;
do{
console.log(count);
count++;
} while (count < 1);
即使 while 的求值结果为 false ,但是 count 的值会变为 2 ,这就是 do…while 循环 的作用。
for 循环
//for循环语句的基本语法:
for(initial condition; test condition; alter condition) {
statements;
}
for循环是while循环的一种变体,上述while循环例子可改写成:
for(var count = 1;count < 11;count++) {
console.log(count);
}
for循环常用于对某个数组的全部元素进行 遍历 处理。
例:
var beatles = Array("John", "Paul", "George", "Ringo");
for(var count = 0; count < beatles.length; count++) {
console.log(beatles[count]);
}
五、函数(function)
函数
函数就是一组允许在你的代码里随时调用的语句。
例:
function shout() {
var beatles = Array("John", "Paul", "George", "Ringo");
for(var count = 0; count < beatles.length; count++) {
console.log(beatles[count]);
}
};
//当你需要执行这一脚本动作时,随时可以使用下面的语句调用该函数:
shout();
调用函数时,还可以传送 参数(传递给函数的数据)给函数
例:
function msg(num1, num2) {
var txt = num1 + num2;
return txt;
};
//使用该函数
msg(11, 22); //返回值为 33
变量的作用域
全局变量(global variable)可以在脚本的 任何位置 被引用;
局部变量(local variable)只存在于声明它的那个 函数的内部 ,在那个函数的外部时无法引用它的。
例:
function square(num) {
total = num*num;
return total;
}
var total = 50;
var number = square(total);
console.log(total);
例子中的 total 的值会变为 400 ,若不想改变这个全局变量,又要使用这个变量名,则应该在函数内使用var来定义这个同名变量:
function square(num) {
var total = num*num;
return total;
}
var total = 50;
var number = square(total);
console.log(total);
这样 total 的值仍为 50