流程控制单分支if当条件为真时执行if中的代码:?letage=19;if(age>18){console.log("你是成年人");?}双分支ifelse示例:?letage=17;if(age>18){//如果年龄大于18console.log("Youareanadult");?}else{//否则console.log("YouStillachild");}多分支if(条件1){//如果为真,执行false执行条件2?}elseif(条件2){//如果为真,执行false执行条件n}elseif(条件n){//如果为真,则执行为假,执行条件else}else{//所有条件都不满足,执行?}Scope全局作用域:将变量声明为全局的,不包含在任何声明中的局部作用域:声明的语句中的变量是局部范围。语句的嵌套子级可以使用父级的局部声明变量。注意:如果有局部变量,就使用局部变量。错误。变量名可以在不同作用域使用switch,相当于多分支。代码清晰,执行效率高于ifelseif...switch(){caseA:break;caseB:break;...default://默认break;//跳出大小写匹配执行的全等匹配循环需要执行多次的代码块,考虑使用循环for:测试前的语句for(initialization;test;incrementanddecrement){loopbody}for(表达式1;表达式2;表达式3){表达式4}执行步骤:1-2-4-32-4-32-4-32-4-3...例子:for(i=0;i<=10;i++){consolelog("i")12345678910}while:while(condition){代码块}功能:如果条件为真,则执行括号内的代码untiltheconditionisfalse注意:可以改变条件来防止死亡Loopleti=0?while(i<3){?loopbody;?我++;?}?示例:让数字=1;?while(number<5){?number++;?}?console.log(number)//5dowhile:测试后语句do{code}whlie(condition)注意:代码块至少执行一次,如果条件为真则执行第二次,结束循环直到它是假的。做{循环体;}while(测试语句);例子:让数字=1;做{数字++;}而(假);console.log(number)//2arraybasic:numbernullundefinedstringbooleansymbolcomplex:object数据结构:计算机存储、组织数据的一种方法。数组:有序排列的数据集合。数组中的每个值称为项目元素,每个元素在数组中都有唯一的位置。位置用数字表示,称为下标||indexindex创建一个数组字面量:letarr=[]constructor:letarr=newArray()typeofarr//objectarrayassignment:1.arr[index]=valuearr[0]="zhangsan";arr[item1,item2,...]数组的长度:arr.length查看(访问)数组元素:arr[index]数组中的每个值都会有对应的下标(index),可以通过下标获取值对应数组,下标起始值为0。构造函数声明:letF70=newArray();字面量和构造函数的区别:字面量的解析比构造函数快原因:字面量属于JSON格式,可以直接被JS解析。构造函数需要先调用构造函数。进行JS解析解构es6:将复杂数据类型的值拆解为简单数据类型。保持=左右数据结构相同。示例:letarr=[1,2,3]let[a,b,c]=arrconsole.log(a,b,c)//1,2,3letarr=[1,2,3]let[a,,c]=arrconsole.log(a,b,c)//1,3是不需要的值,跳过直接遍历数组:例如:letarr=[1,2,3,4,5]for(leti=0;ia-b)升序arr.sort((a,b)=>b-a)descendingarr.concat()示例:letarr2=[1,2,3]letarr1=[4,5,6]letarr3=arr.concat(arr2,arr1)//[1,2,3,4,5,6]arr.indexof()从后往前查找下标arr.lastindexof()例子:letarr=[1,2,3,4,5,6]console.log(arr.indexof('1'))//[0]If下标不存在,打印-1letarr=[1,2,NaN,4,5,6]console.log(arr.indexof(NaN))//-1console.log(arr.lastindexof(NaN))//-1console.log(arr.includes(NaN))//truestr.split("delimiter")字符串转数组时不包含分隔符例子:letstr="tangkechao"letstrs=str.split("a")consloe.log(strs)//["t"ngkech"o"]whenstr.split("-")consloe.log(strs)//['t','a','n','g','k','e','c','a','o']consloe.log(strs)whenstr.split("")//['tangkecao']例子:让str="123";让arr=[];arr=[...str];console.log(arr)//[1,2,3]arr.join(delimiter)array字符串转换示例:letarr=[1,2,3,1]letarrs=arr.join("-")console.log(arrs)//1-2-3-1letarr=[1,2,3,1]letarrs=arr.join(",")console.log(arrs)//1,2,3,1让arr=[1,2,3,1]让arrs=arr。join("")console.log(arrs)//1231findarr.includes(value)返回布尔值例子:letarr=[1,2,3,4]console.log(arr.includes("1"))//trueconsole.log(arr.includes("5"))//falsearr.map(function()){...}同时遍历和操作,返回新数组,旧数组常量示例:letarr=[1,2,3]letarrs=arr.map(function(item)){returnitem*2}console.log(arr)//[1,2,3]console.log(arrs)//[2,4,6]filterarr.filter(function()){.....}返回条件为真的项目示例:让arr=[1,2,3,4]让arrs=arr.filter(function(item)){returnitem%2=0;//返回值}console.log(arr)//[1,2,3,4]console.log(arrs)//[2,4]//调用不会留下未定义的面试题letarr=[0,1,2]//[0,1,2,undefined,undefined,5]arr[5]=5//添加下标:[undefined][undefined][5]letarrs=arr.filter(function(item)){返回项目==undefined;//当item为下标时==undefined});console.log(arrs)//[][]arr.some()arr.every()返回布尔值letarr=[1,2]letarrs=arr.every(function(item){returnitem%2==0;})console.log(arrs)//false如果你用一些//true扩展运算符替换每个。..letarr=[1,2,3]letarr1=[3,2,1]letarr2=[...arr...arr1]console.log(arr2)//[1,2,3,3,2,1]ES6新数据结构Set集合一,deduplication.size数组。lengthset.sizes.add(value)不会包含重复值,不会数据类型转换链调用settoarray2,Mapmapping1.`区别arr.map()`2.letm=newMap()类似于objects,键可以是任何数据类型lets=newSet(arr);s.add(4);s.add(4);s.add(4);s.add("4");三、链式调用s.add(4).add(4).add(4).add("4");arr=[...s];console.log(arr);console.log(s);让tempArr=[];for(letitemofs){```tempArr.push(item);```}console.log(tempArr如有异议,请联系我