一、条件控件(做判断)
if
1.if
判断:只能判断条件为真的情况
if(condition){ //condition==true时执行的代码 }
2.if...else
:判断真或者假
if(condition){ //condition==true时执行的代码 }else{ //condition==false时执行的代码 }
3.if...else if...else
:多重条件判断
if(condition){ //condition==true执行的代码 }else if(condition2){ //condition2==true执行的代码 }...[else{ //以上条件都不成立时执行的代码 }]
4.注意:一个if
判断中,最多出现一个else
三元运算符
1.语法格式:condition ? condition==true时执行 : condition==false时执行
2.简化版if...else
switch...case
1.语法格式
switch(变量){ case 值1: //变量===值1执行的代码 break; //满足条件后中断代码,不能省略 case 值2: //变量===值2执行的代码 break; ... default: //变量不等于以上值时执行的代码 }
2.一般用于判断一个变量是否全等于某个值
二、循环控制
1.for
循环
for(开始条件;结束条件-循环成立的条件;变化的条件){ //循环的代码 }
三、其他
1.String()
:将变量转换为字符串类型
2.Number()
:将变量转换为数值类型
数组的函数方法:
<script>
var arr = [1,2,3];
var arr2 = ["a","b","c"];
var newArr=arr.concat(arr2,"n");
console.log(newArr);
//1.push()给数组末尾追加元素
newArr.push(4,5,6);
console.log(newArr);
//2.追加元素方法
newArr[newArr.length]=7;
console.log(newArr);
//3.unshift头部添加
newArr.unshift(0);
console.log(newArr);
//4.pop()删除最后一个数据
newArr.pop();
console.log(newArr);
//5.shift()删除数组第一个元素
newArr.shift();
console.log(newArr);
//6.splice():添加或删除元素
//newArr.splice(1);//删除下标 >=1的所有元素
//newArr.splice(1,2);//删除数组中下标为1,开始的两个元素。
newArr.splice(0,0,"e",null);//从下标0开始,添加"e",null。
newArr.splice(1,1,"f",);//从下标1开始删除1个,然后添加“f”。
//7,every():判断数组中每个元素是否符合要求
var arr2 = [11,33,68,35,12,47,69,87,2]
var res = arr2.every(function(val,index,arr){
return val%2 == 1; //返回每一次的结果
}
);
console.log(res);
//17,.some()数组中只要有一个元素符合,输出turn,全不符合false:
var res3 = newArr.some(function(val){
return val< 0;
});
//8,filter:()过滤所有元素,满足条件的返回。
var eveArr = arr2.filter(function(val){
return val%2 == 0;
});console.log(eveArr);
//9.forEach()将数组中的每个值都执行一次回调
arr2.forEach(function(val){
console.log(val);
});
//10.indexOf():判断元素在不在数组中,从前往后
var index = arr2.indexOf("a");//不在显示-1。
console.log(index);
//11,lastIndexOf()判断元素是否在数组中,从后向前
console.log(arr2.lastIndexOf("a"));//不在显示-1。
//12,isAray()判断是否为数组
console.log(Array.isArray(arr2));
//13,join()将数组中的所有元素使用`sep`连接符组合成一个字符串,默认用`,`
var str = arr2.join("-");
console.log(str);
console.log(arr.join());
console.log(str.split("-"));
//14,map()执行一些操作,返回新数组
console.log(arr2);
var newArr2 = arr2.map(function(val){
if(val%2){
return val + 1;
}else{
return val + 2;
}
});
console.log(newArr2);
//15.reverse():翻转数组
console.log(newArr2.reverse());
//16.slice(start,end):将数组中一部分组成新数组
console.log(newArr2.slice(1,7));//将start开始,到end-1结束
//17,.some()数组中只要有一个元素符合,输出turn,全不符合false:
var res3 = newArr2.some(function(val){
return val< 0;
});
//18.sort()对数组排序,首字升序
var arr3 = [2,5,8,2,4,3,4,9]
arr3.sort();
console.log(arr3);
newArr2.sort(function(a,b){
return a-b;
});//给一个比较函数做参数
console.log(newArr2);
//19.toString()`:将数组转换为字符串,使用`,`连接
var scores = [[12,2,32],[45,85,23],[1,2,3,]];//二维数组
console.log(scores[1][1]);//85
//console.log(newArr);
</script>
1-100之间奇偶数合
//计算1——100奇数和,偶数和
var i = 1;
var odd =0;
var even =0;
while(i<101){
if (i%2==0){
odd +=i;
}else{
even +=i
}
i++;
}
document.write("奇数和:"+odd);
document.write("偶数和:"+even);
//使用do...while实现1--100之间和
var i = 1;
var sum =0;
do{
sum+=i
i++;
}while(i<101);
document.write(sum);
//while和do-while区别
// while先判断再执行;;do-while至少执行一次。
//计算1-100之间的数字之和
// var sum=0;
// var a = Number(prompt("开始数字"));
// var b = Number(prompt("结束数字"));
// for(var a = 1;a<=b;a++){
// sum=sum+a;
// }
// document.write(sum);
//for实现金字塔
for(var i = 1; i < 6;i++){
document.write("<div>");
for( var j = 1; j <=i; j++){
document.write("┗( ▔, ▔ )┛");}
document.write("</div>");
}
数组排序,去重,数组函数方法
<script> //99乘法表 // for(var i=1;i<10;i++){ // for(var n=1;n<=i;n++){ // document.write("<a>"+n+'X'+i+'='+i*n+" "+"</a>") // } // document.write("<br>") // } //判断平年闰年 // var n= prompt("请输入年份~~~"); // if(n%4==0 && n%100!=0 || n%400==0){ // document.write(n+"是闰年~~~~~~") // }else{ // document.write(n+"是平年~~~~~") // } //3.使用`for`循环实现:请用户输入学生的人数,然后依次输入每一位同学的成绩。 输入完毕之后,将总成绩和平均成绩在控制台输出 // var n = Number(prompt("请输入人数~~~")); // var nss=0; // for (var i = 1; i <= n; i++) { // var ns = Number(prompt("请输入成绩~~~")); // nss += ns; // } // console.log(nss); // document.write("平均成绩为:" + nss / n); //1.实现一个数组的元素从小到大排序(冒泡排序,比较排序) // var kong; // var shu=[5,8,2,1,9,6,2,6]; // //比较排序 // for(var i=0;i<shu.length;i++){ // for(var y=i+1;y<shu.length;y++){ // if(shu[i]>shu[y]){ // kong=shu[i]; // shu[i]=shu[y]; // shu[y]=kong; // } // } // } // console.log(shu); // //冒泡排序 // var shu=[5,8,2,1,9,6,2,6]; // function mp(val) { // var kong; // for (var i = 0; i < val.length - 1; i++) { // for (var y = 0; y < val.length - i; y++) { // if (val[y] > val[y + 1]) { // kong = val[y]; // val[y] = val[y + 1]; // val[y + 1] = kong; // } // } // } // console.log(val); // } // mp(shu); //取随机几位英文字母 // function getCode(len=5){ // var code = ""; // var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // for(var i = 0; i < len; i++){ // var key = Math.floor(Math.random()*str.length); // code += str.charAt(key); // } // return code; // } // console.log(getCode()); //数组取最大值 //var shu=[5,8,2,1,9,6,2,6]; // var arr=[]; // for(var i=0;i<shu.length;i++){ // if(arr<shu[i]){ // arr=shu[i] // } // console.log(shu); // } // console.log(arr); //函数做法数组取最大值 // shu.sort(function(a,b){ // return a-b; // }); // console.log(shu.slice(shu.length-1,shu.length)); //自定义函数,要求实现生成一个五位(可以修改)的随机字符串并返回(字符为英文字母) // function getCode(len=5){ // var code = ""; // var str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // for(var i = 0; i < len; i++){ // var key = Math.floor(Math.random()*str.length); // code += str.charAt(key); // } // return code; // } // console.log(getCode()); // 自定义函数,要求实现统计一个数组中每个元素出现的次数,并将结果返回成对象 // var arr = ['a', 'b', 'c', 'd', 'a', 'd', 'c', 'i']; // function getCount(arr) { // var newArr = []; // arr.forEach(function(val) { // if (newArr.indexOf(val) == -1) { // newArr.push(val); // } // }); // console.log(newArr) // var res = {}; // newArr.forEach(function(val) { // res[val] = arr.filter(function(val2) { // return val == val2; // }).length;//res[a] = 2 // }) // console.log(res); // return res; // } // getCount(arr); //5.比较两个数组,返回两个数组之间的差异 例:[1,2,3,4] [1,4,5,6] 输出[2,3,5,6] // var arr1 = [1,2,3,4]; // var arr2 = [1,4,5,6,6]; // //var snm = arr.concat(box);//合成一个数组 // function a() { // return arr1.concat(arr2).filter(function(val, i, arr) { // return arr.indexOf(val) === arr.lastIndexOf(val); // }); // } // console.log(a()); //5.1相互过滤取新数组,再合并新 // var arr1 = [1,2,3,4]; // var arr2 = [1,4,5,6,6]; // //过滤arr1 // var newArr = arr1.filter(function(val){ // return arr2.indexOf(val) == -1; // }) // //过滤arr2 // var newArr2 = arr2.filter(function(val){ // return arr1.indexOf(val) == -1; // }) // //合并新数组 // var defArr = newArr.concat(newArr2); // console.log(defArr); //5.2获取两个数组相同元素,然后合并两个数组,后去重 var arr1 = [1, 2, 3, 4]; var arr2 = [1, 4, 5, 6, 6]; var repeatArr = arr1.filter(function(val) { return arr2.indexOf(val) > -1; });//获取重复元素 var newArr = arr1.concat(arr2);//合并数组 var defArr = newArr.filter(function(val){ return repeatArr.indexOf(val) == -1; }); console.log(defArr); //6,找最大值,组成新数组 // var a=[1,2,3,4]; // var b=[2,3,4,5]; // var c=[3,4,5,6]; // var d=[0,1]; // a.sort(function(a,b){ // return a-b;}); // b.sort(function(a,b){ // return a-b;}); // c.sort(function(a,b){ // return a-b;}); // d.sort(function(a,b){ // return a-b;}); // var q=(a.slice(a.length-1,a.length)); // var w=(b.slice(b.length-1,b.length)); // var e=(c.slice(c.length-1,c.length)); // var r=(d.slice(d.length-1,d.length)); // console.log(q.concat(w,e,r)); //6.1合并为多维数组,然后取最大值 // var arr1=[1,2,3,4]; // var arr2=[2,3,4,5]; // var arr3=[3,4,5,6]; // var arr4=[0,1]; // var newArr = [arr1,arr2,arr3,arr4]; // var maxArr=[]; // newArr.forEach(function(arr){ // for(var i = 1; i < arr.length; i++){ // if(arr[0] < arr[i]){ // var tmp =arr[0]; // arr[0] = arr[i]; // arr[i] = tmp; // } // } // maxArr.push(arr[0]); // }) // console.log(maxArr); </script>