1.运算符
(1)算术运算符
(2)赋值和扩展运算符
(3)比较运算符
(4)逻辑运算符
(5)三目运算符
2.控制语句
流程控制语句一共有三种:
流程执行:从上到下,从左到右
选择执行:分支选择
循环执行:重复执行
(1)单选择
if(条件) {
语句体;
}
首先执行条件,如果结果为true,则执行语句体;如果结果为false,则结束if语句。
注意:
若语句体只有一条语句,可以省略大括号,但不建议省略。
(2)双选择
if(条件) {
语句体1;
}else {
语句体2;
}
首先执行条件,如果结果为true,则执行语句体1;如果结果为false,则执行语句体2。
(3)多选择
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}······
else {
语句体n+1;
}
(4)switch结构
多个if...else且值为定值时(即===在比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换),可以使用switch替换。
switch(表达式) {
case 值1:
语句体1;
break;case 值2:
语句体2;
break;······
default:
语句体n+1;
[break;]
}
break防止穿透,如果没有break,则继续执行后面的代码,直到遇到break或全部执行完毕,但是有些时候会利用穿透。
(5)循环结构
while(先判断后执行):
基本格式:
while(判断条件语句) {
循环体语句;
}扩展格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句; // 少了 它很容易形成死循环
}
do...while(先执行后判断,至少执行一次):
基本格式:
do {
循环体语句;
} while(判断条件语句);扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
for:
for(初始化语句; 判断条件语句; 控制条件语句) {
循环体语句;
}
break和continue:
break:停止本层循环;
continue:暂停本次循环,继续下一次。
3.数组
数组是按次序排列的一组数据,每个值的位置都有编号(从0开始),整个数组用方括号表示。
(1)定义数组
注意:也可先声明再赋值。
(2)基本操作
数组的长度可以通过length属性来获取,并可以任意更改。
数组名.length
数组名.length = 新长度
数组中的每一个元素都可以被访问和修改,甚至是不存在的元素,无所谓越界。
数组名[下标]
数组名[下标] = 新值
(3)数组遍历
for循环遍历:
for(var i=0; i<=数组.length-1; i++) {
}
for...in:
for(var 下标(名称任意) in 数组名) {
数组名[下标]是获取元素
} // 下标(名称任意)
forEach:
数组名.forEach(function(element, index) {
// element(名称任意): 元素,index(名称任意): 下标
})
(4)数组提供的方法
push:添加元素到最后
indexOf:数组元素索引
join:数组转成字符串
split:字符串方法:将字符串转换成数组
unshift:添加元素到最前
pop:删除最后一项
shift:删除第一项
reverse:数组翻转
slice:截取(切片)数组,原数组不发生变化
splice:剪接数组,原数组变化,可以实现前后删除效果
concat:数组合并
4.函数
即方法,一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值。函数也是对象。
(1)函数的定义
函数声明语句:
function 函数名([参数列表]) {
}
注意:该方式定义的函数具有声明提升的效果。
函数定义表达式(很少用):
var 变量名 = function ([参数列表]) {
}
变量名();
Function构造函数:
var add = new Function('x', 'y', 'return (x + y)');
// 等同于
function add(x, y) {
return (x + y);
}
add();
注意:
JS中的函数没有重载,同名的函数,会被后面的函数覆盖。
JS中允许有不定数目的参数。
(2)函数的参数
函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参数,定义时的参数称为形参,调用时的参数称为实参。
实参可以省略,那么对应形参为undefined。
若函数形参同名(一般不会这么干),在使用时以最后一 个值为准。
可以给参数默认值:当参数为特殊值时,可以赋予默认值。
参数为值传递,传递副本;引用传递时传递地址,操作的是同一个对象。