javascript 流程控制,数组【知识点整理】
javascript
- JS 流程控制
- 条件控制语句
- 循环语句
- 跳转语句:
- 异常处理:
- JS 数组
- 数组的方法
JS 流程控制
条件控制语句
-
if 语句:用于在满足特定条件时执行代码块。
if (condition) {// 如果条件为真,则执行代码块 }
-
if…else 语句:在条件为真时执行一段代码,条件为假时执行另一段代码。
if (condition) {// 如果条件为真,则执行代码块 } else {// 如果条件为假,则执行代码块 }
-
if…else if…else 语句:用于多个条件的判断。
if (condition1) {// 如果条件1为真,则执行代码块 } else if (condition2) {// 如果条件1为假且条件2为真,则执行代码块 } else {// 如果条件1和条件2都为假,则执行代码块 }
-
switch 语句:用于多个条件的判断,比多个 if…else 更清晰。
switch (expression) {case value1:// 如果表达式等于value1,则执行代码块break;case value2:// 如果表达式等于value2,则执行代码块break;// ...default:// 如果表达式不等于任何case的值,则执行代码块 }
循环语句
-
for循环:用于在满足特定条件时重复执行代码块。
for (initialization; condition; final-expression) {// 代码块 }
打印二维表格:
document.write("<table border='1'>");for(var i = 0; i<4 ;i++){document.write("<tr>");for(var j = 0 ;j<8 ; j++){document.write("<td>第"+(i+1)+"行</td>")}document.write("</tr>");}document.write("</table>");
九九乘法表:
for(var i = 1 ; i < 10 ; i++){for(var j = 1 ; j<=i ;j++){document.write(" "+j +"*"+ i +"="+ (i*j));}document.write("<br/>")}
-
while循环:当条件为真时重复执行代码块。
while (condition) {// 代码块 }
-
do…while 循环:至少执行一次代码块,然后检查条件是否为真,如果为真则继续循环。
do {// 代码块 } while (condition);
-
for…in 循环:遍历对象的属性。
for (variable in object) {// 代码块 }
-
for…of 循环:遍历可迭代对象(如数组、字符串等)的值。
for (value of iterable) {// 代码块 }
跳转语句:
break
语句:终止switch
语句或循环的执行。continue
语句:跳过当前循环的剩余代码,并开始下一次迭代。return
语句:从函数中返回一个值,并终止函数的执行。throw
语句:抛出一个错误,终止程序的执行。
异常处理:
try
块:尝试执行代码块。catch
块:如果try
块中抛出错误,则执行catch
块。finally
块:无论是否抛出错误,都会执行finally
块中的代码。
try {// 尝试执行的代码块
} catch (error) {// 如果try块中抛出错误,则执行catch块
} finally {// 无论是否抛出错误,都会执行finally块
}
JS 数组
JavaScript中的数组是一种特殊的对象,用于存储多个值的有序集合。数组可以包含任意类型的值,包括数字、字符串、对象、函数,甚至是其他数组。以下是一些常用的数组操作方法:
-
创建数组:
var arr = new Array(); // 空数组 arr[0] = "lee"; //赋值 arr[1] = 12;var arr = new Array(10); // 长度为10的数组,初始值为undefined var arr = [1, 'Kimi', true, {name: 'Moonshot'}];
-
访问数组元素:
var arr = ['a', 'b', 'c']; console.log(arr[0]); // 输出 'a'
-
数组长度:
var arr = ['a', 'b', 'c']; console.log(arr.length); // 输出 3
数组的方法
-
添加元素:
push()
:在数组末尾添加一个或多个元素,并返回新的长度。
unshift()
:在数组开头添加一个或多个元素,并返回新的长度。javascript
var arr = [1, 2]; arr.push(3); // [1, 2, 3] arr.unshift(0); // [0, 1, 2, 3]
-
删除元素:
pop()
:删除数组的最后一个元素,并返回被删除的元素。
shift()
:删除数组的第一个元素,并返回被删除的元素。var arr = [1, 2, 3]; arr.pop(); // [1, 2] arr.shift(); // [2]
-
遍历数组:
forEach()
:对数组中的每个元素执行一次提供的函数。
map()
:创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
filter()
:创建一个新数组,包含通过所提供函数实现的测试的所有元素。
reduce()
:对数组中的值进行汇总,将其减少为单个返回值。var arr = [1, 2, 3, 4]; arr.forEach((item, index) => console.log(item, index)); // 遍历数组 let squares = arr.map(item => item * item); // [1, 4, 9, 16] var even = arr.filter(item => item % 2 === 0); // [2, 4] var sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0); // 10
-
数组排序:
sort()
:对数组元素进行排序。var arr = [4, 2, 5, 1, 3]; arr.sort((a, b) => a - b); // [1, 2, 3, 4, 5]
-
数组查找:
indexOf()
:返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
lastIndexOf()
:返回在数组中可以找到一个给定元素的最后一个索引,如果不存在,则返回-1。let arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3)); // 2 console.log(arr.lastIndexOf(3)); // 2
-
数组合并:
concat()
:用于合并两个或多个数组。var arr1 = [1, 2]; var arr2 = [3, 4]; var combined = arr1.concat(arr2); // [1, 2, 3, 4]
-
数组切片:
slice()
:提取原数组的片段,并返回一个新的数组。var arr = ['a', 'b', 'c', 'd', 'e']; var sliced = arr.slice(1, 3); // ['b', 'c']
这些是JavaScript数组的一些基本操作。数组是JavaScript中非常强大的数据结构,支持许多其他方法和操作。
<script>// 冒号排序// var arr = [46,24,50,35,17,98];// for(var i = 0; i<=arr.length-1 ; i++){// for(var j = 0 ; j<arr.length-i ; j++){// if(arr[j]>arr[j+1]){// var temp = arr[j];// arr[j] = arr[j+1];// arr[j+1] = temp;// }// }// }// console.log(arr);// 选择排序// var arr = [7,5,6,3,9,10,100,26,6];// var minIndex ,temp;// for(var i = 0 ; i<arr.length-1 ; i++){// minIndex = i;// for(var j = i+1 ; j<arr.length; j++){// if(arr[minIndex]>arr[j]){// minIndex = j;// }// }// temp = arr[i];// arr[i] = arr[minIndex];// arr[minIndex] = temp;// }// console.log(arr)// 判断字符串中那个字符出现的最多和次数// var str = "jahdjaskkkkkkkkkkkkkkkk;;pkmAss";// var obj = {};// for(var i = 0 ; i < str.length ; i++){// if(!obj[str[i]]){// obj[str[i]] = 1;// }else{// obj[str[i]]++;// }// }// console.log(obj);// var word = "";// var count = 0;// for(var key in obj){// if(count<obj[key]){// count = obj[key];// word = key;// }// }// console.log("出现最多的字符:"+word+" 出现次数:"+count);//数组去重// var arr = ["e",1,4,2,1,"e",6,"bb"]// var obj = {};// for(var i = 0 ; i<arr.length ;i++){// obj[arr[i]] = "";// }// arr = [];// var i = 0;// for(var k in obj){// arr[i] = isNaN(k)? k: Number(k);// i++;// }// console.log(arr);<!--输出数组中两个值的和为目标值的下标-->// var arr = [1,2,4,6,7,3];// var indexs = [];// var target = 10;// var flag = false;// for(var i = 0 ; i<arr.length ; i++){// for(var j = 0 ; j<arr.length ; j++){// if(arr[i]+arr[j] == target){// indexs = [i,j];// flag = true;// break;// }// }// if(flag == true) break;// }// console.log(indexs);// 法二var arr = [1,2,4,6,7,2];target = 10;obj = {};indexs = [];for(var i = 0 ; i<arr.length ; i++){if(obj[arr[i]] === undefined){var x = target - arr[i];obj[x] = i;}else{indexs = [obj[x],i];}} console.log(indexs);</script>