共计 2643 个字符,预计需要花费 7 分钟才能阅读完成。
JavaScript 基础语法 4
如果你想成为一名优秀的 java 架构师,看这里 → 乐字节免费公开课(腾讯课堂)
如需要跟多资料请点击右侧(记住入群暗号:66)→ 这是一条不归路,有秃头风险,请慎重选择!
控制语句
我们写的 JavaScript 代码都是按照从上到下依次执行,很多时候我们希望代码按照我们的意愿去执行,比如有选择性地执行某些代码,或者重复地执行某些代码,这就需要使用到流程控制语句。
流程控制语句一共有三种:
1. 流程执行: 从上到下,从左到右
2. 选择执行: 分支选择
3. 循环执行: 重复执行
选择
单选择
if (条件){语句体;}
首先执行条件
如果结果为 true,则执行语句体;
如果结果为 false,则结束 if 语句。
注意:若语句体只有一条语句,可以省略大括号,但不建议省略
双选择
if (条件){语句体 1;}else {语句体 2;}
首先执行条件
如果结果为 true,则执行语句体 1;
如果结果为 false,则执行语句体 2。
多选择
if(比较表达式 1) {语句体 1;}else if(比较表达式 2){语句体 2;}else if(比较表达式 3){语句体 3;}
...
[else {语句体 n +1;}]
switch 结构
多个 if …else 且值为定值时(即 === 在比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换。),可以使用 switch 替换:
switch(表达式) {
case 值 1:
语句体 1;
break;
case 值 2:
语句体 2;
break;
...
default:
语句体 n +1;
[break;]
}
break 防止穿透,如果没有 break, 则继续执行后面的代码,直到遇到 break 或全部执行完毕,但是有些时候会利用穿透。
循环
循环结构用于重复执行某个操作 简单理解就是重复执行同类型的代码,它有多种形式。
while
先判断后执行
基本格式
while(判断条件语句) {循环体语句;}
扩展格式:初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句; // 少了它很容易形成死循环
}
do…while
先执行后判断,至少执行一次
基本格式
do {循环体语句;}while(判断条件语句);
扩展格式:初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
for
for(初始化语句; 判断条件语句; 控制条件语句){循环体语句;}
死循环
条件永远成立,永远为 true, 则会产生死循环,下面是最简单的死循环
while(true){}
for(;;){}
break 与 continue
break: 停止本层循环
continue: 暂停本次循环,继续下一次
数组
数组是按次序排列的一组数据,每个值的位置都有编号(从 0 开始),整个数组用方括号表示。
数组定义
JS 中定义数组的三种方式如下(也可先声明再赋值):
var arr = [值 1, 值 2, 值 3]; // 隐式创建
var arr = new Array(值 1, 值 2, 值 3); // 直接实例化
var arr = new Array(size); // 创建数组并指定长度
基本操作
数组的长度可以通过 length 属性来获取,并可以任意更改
数组名.length
数组名.length = 新长度
数组中的每一个元素都可以被访问和修改,甚至是不存在的元素,无所谓越界
数组名[下标]
数组名[下标] = 新值
数组遍历
数组的遍历即依次访问数组的每一个元素,JS 提供三种遍历数组的方式:
普通的 for 循环遍历
for(var i=0; i<= 数组.length-1; i++){ }
如:for(var idx=0;idx<arr.length;idx++){console.log(arr[idx]);
}
for … in
for(var 下标(名称任意) in 数组名){数组名 [下标] 是获取元素
} // 下标(名称任意)
如:for(var idx in arr){console.log(arr[idx]);
}
forEach
数组名.forEach(function(element,index){// element(名称任意):元素,index(名称任意):下标
})
如:arr.forEach(function(elem,idx){console.log(idx + "-->" + elem);
});
了解
数组在使用的时候建议大家规矩来用。在存放数据时,从下标 0 开始顺序的存放数组元素。如果下标:1. 为非负整数(包括整数字符串):自动从 0 开始, 不存在添加 undefined
2. 为负数、小数、非数字符串:这些内容不计算在长度内,当成 "属性" 处理,相当于自定义属性。数组非常灵活,使用数组元素
1. 下标: 非负整数(包括整数字符串):数组. 下标
数组[下标]
2. 下标:负数、小数、非数字字符串:数组[属性]
* for --> 不遍历属性
* foreach --> 不遍历属性和索引中的 undefined
* for in --> 不遍历索引中的 undefined
数组提供的操作方法
Array 对象为我们提供了一些方法,可以很方便地操作数组
push 添加元素到最后
unshift 添加元素到最前
pop 删除最后一项
shift 删除第一项
reverse 数组翻转
join 数组转成字符串
indexOf 数组元素索引
slice 截取(切片)数组,原数组不发生变化
splice 剪接数组,原数组变化,可以实现前后删除效果
concat 数组合并
var arr = ['1','a',5,'3'];
console.log(arr);
arr.push(10);
console.log(arr);
arr.unshift('b');
console.log(arr);
arr.pop();
console.log(arr);
arr.shift();
console.log(arr);
arr.reverse();
console.log(arr);
console.log(arr.join('\''));
console.log(arr);
console.log(arr.indexOf('a'));
console.log(arr.slice(2,5));
console.log(arr);
arr.splice(1,1,'一','二');
console.log(arr);
var arr1 = [0,'100'];
console.log(arr.concat(arr1));
console.log(arr);
console.log(arr1);
console.log(arr1.(arr));