小编这周学了JS函数基础知识跟运算!!下面就迫不及待跟大家分享一下
【switch case的结构写法】
结构写法:(略)2注意事项: ①switch结构()中的表达式。可以使用各种js支持的数据类型; ②switch结构 在进行判断的时候,使用的===判断; ③case后面的表达式可以是各种数据类型,但是值要求各不相同,否则也只会执行第一个case; ④break作用:执行完case代码后,跳出当前switch结构: 缺少break的后果:从第一个正确的case项开始后,执行后面所有的case和default:原因⑤ switch结构在进行判断的时候,只会判断一次正确答案,当遇到正确的case之后,将不会再判断后续的项目。 ⑥:switch结构的执行效率要比多重if快,在多路分支结构中,推荐优先使用switch;
举个列子:
var month =prompt("请输入月份:"); switch(<--true--> parseFloat(month)){ //case num>=1&&num<=3: case 1: case 2: case 3: document.write("第一个季度"); break; //case num>=4&&num<=6: case 4: case 5: case 6: document.write("第二个季度"); break; //case num>=7&&num<=9: case 7: case 8: case 9: document.write("第三个季度"); break; //case num>=10&&num<=12: case 10: case 11: case 12: document.write("第四个季度"); break; default: document.write("case不成立,执行default"); break; } |
switch跟case后面的条件写法很多,这是小编自己总结的两种方法!!!
var year = parseInt(prompt("请输入一个数字:")); var month = parseInt(prompt("请输入一个数字:")); var day = parseInt(prompt("请输入一个数字:"));1 首先声明三个变量,年,月,日。我们首先要明确1,3,5,7,8,10,12月份是31天!4,6,9,11月份是30天!如果闰年2月份29天,否则28天;
var days = 0;声明变量var days=0,使用switch结构 switch(month-1){month-1即使减去当前月份!例如现在8月份,前面7个月过完了!!8月份并未完结! case 11: days += 30; case 10: days += 31; case 9: days += 30; case 8: days += 31; case 7: days += 31; case 6: days += 30; case 5: days += 31; case 4: days += 30; case 3: days += 31; case 2: if(year%4==0&&year%100!=0 || year%400==0)判断是否是闰年 days += 29; else days += 28; case 1: days += 31; case 0: days += 0; }days += day; // 将当前月份的天数,加上alert(days);这题要求随便输入一个日子 既可以求出这天是这一年的第几天!包括闰年!
输入年,月;日
|
【循环结构的执行步骤】
1.声明循环变量: 2.判断循环条件 3.执行循环体操作 4.更新循环变量 然后.循环执行2-4,直到条件不成立时,跳出循环。 while循环()中额表达式,运算结果可以是各种类型,但是最终结果都会转为真假,转换规则同if结构 具体看if结构
例如:
var num=1; //1.声明循环变量;
while (num<=10){//2 .判断循环条件 document.write(+num+"<br>"); //3.执行循环体操作 num++;
while循环的栗子:
我们计算1--N的和var num=parseFloat(prompt("请输入一个数字:")); 手动输入变量num!! var i= 1; var sum= 0;声明i跟sum变量!!! while (i<=num){()里面声明条件!可以看出跟if结构相似 sum += i;//1//3//6//10//15 i++;//2//3//4//5 } document.write(sum);打印结果 |
while 先判断在执行
do-while:先执行在判断,即使初始条件不成立,do-while也至少执行一次;
var num = 10; 声明num的值等于10; 先执行一轮在进行判断!!输出10,然后进行num--!! do{ document.write(num+"<br>");num --;执行完一轮后,进行判断!符合条件继续进行 }while(num>0);继续输出num document.write(num);最简单的的一个例子:最终结果就是10,9,8,7,6,5,4,3,2,1,0 |
do-while机构嵌套if,else结构 var COUNT =5; 声明变量 var COUNT=5; do{ var num = prompt("请输入一个数字:"); if(num>COUNT){ alert("输入过大"); }else if(num<COUNT){ alert("输入过小"); }else{ alert("恭喜!猜对了!"); } }while(num!=COUNT);从题目可以看出本题求得是如果输入数字=5将是输入正确!将if结构嵌入do-while结构 while里面的判断条件是输入的num!=5将会继续,等于5会终止 |
[for 循环有三个表达式]
1 for三个表达式:1声明循环变量 2 判断循环条件 3 更新循环变量 三个表达式之间用;分割,for循环三个表达式都可以省略,但是两个;缺一不可
2 for循环的两个特点:先判断,在执行,与while相同3 for循环三个表达式都可以有多部分组成:第二部分多个判断条件用&& || 链接,第1,3部分用逗号分隔;
for (var num = 1; num<=10; num++){ document.write(num+"<br>")在()里面声明三个表达式!{}里面直接输出变量!
|
{循环控制语句}
1 break: 跳出本层循环,继续执行循环后面的语句; 如果循环有多层嵌套,则break只能跳出一层。 2 continue:跳过本次循环剩余的代码,继续执行下一次循环; ①对于for循环。continue之后执行的语句,是循环变量更新的语句i++; ②对于while. do-while循环,continue之后执行的语句,是循环条件判断! 因此,使用这两个循环时;必须将continue放到i++之后使用,否则,continue将跳过i++导致死循环;
求 1--100的和 可以同时输入2个变量! 我们可以看出(1+100)+(2+99).。。。(50+51)方法比较简单 var sum = 0;求和变量!先声明一个var sum=0变量! for (var i=1,j=100;i<j;i++,j--) { sum += (i+j);同时输入两个变量!i=1,j=100! 我们可以看出最后结果是50+51!所以i<j ;并且i从1开始++,j从100开始--进行求和 if(i<50) document.write("("+i+"+"+j+")+"); else document.write("("+i+"+"+j+")="); }
document.write(sum);
|
【循环嵌套的规律】
①:外层循环控制行数,内层循环控制每行的个数;
②:【图形题做题的思路】 1确定图形一共有几行,行数即为外层循环的次数;2确定每行中有几种元素组成,有几种元素即表示为有几个内层循环, 3 确定每种元素的个数,个数即为每个内层循环的次数; tips:如果每种元素的个数不固定,则找出每种个元素的个数,与行号的关系,这个关系表示式,即为内层循环 的最大值,(循环变量从1开始)
这个并不是很重要,主要用于开发思维,给大家简单介绍一下就好!
for(var i=1;i<=5;i++){
for(var j=1;j<=5;j++){ document.write("*") } document.write("<br>"); }
5行5列的长方形!!
for(var k=1;k<=5;k++){
for(var l=1;l<=k;l++){ document.write("*") } document.write("<br>"); }
三角形
1.函数的声明格式:
function 函数名(参数1,参数2,.......){ //函数体代码 return 返回值; }函数的调用: ①:直接调用:函数名(参数1的值,参数2的值。。。。。。); ②:事件调用方式,在HTML标签中,使用事件名字,等于函数名* <button οnclick="saySb('hahaha','yellow')">点击按钮,打印内容</button> 2 函数的注意事项: ①:函数名必须要符合小驼峰法则!!(首字母小写,之后每个单词的首字母大写) ②:函数名后面的()中可以有参数,也可以没有参数,分别称为有参函数和无参函数: ③:声明函数时候的参数列表,称为形参列表,形参函数(变量的名字) function saySb(str,color) 调用函数时候的实数列表,称为实参列表,实参列表(变量的赋值) saySb("姜浩真丑!哈哈哈"," red"); ④:函数的实参列表个数与形参列表个数没有关系, 函数的参数个数,取决于实参列表; 如果参数列表的个数《形参列表,则未赋值的参数,将为Undefined;》* ⑤:函数可以有返回值,使用return返回结果;使用函数时;可以使用一个变量接受函数的返回结果,如果函数的没有返回 值,则接受的结果为undefined: function func(){ return "haha" } var num = func(); //num ="haha" ⑥:函数中函数的作用域:在函数中,使用var声明的变量为局部变量,只能在函数内部访问, 不用var声明的变量为全局变量,在函数外面也能访问 函数的形参列表默认为函数的局部变量,只能在函数内部使用; ⑦:函数的声明跟函数的调用没有先后之分 ,即,可以再声明函数前,调用函数。 func(); //声明func之前调用也是可以的; function func(){}栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子栗子
输入三个数比较大小,熟悉函数
var a =prompt("输入一个数"); var b =prompt("输入一个数"); var c =prompt("输入一个数");根据上面的要求先输入三个数 function num(str,str,str){首先输入function 函数名(参数1,参数2,.......参数没有什么么特殊要求,用a,b,c也行) if(a>b){ if(a>c){ maxNum=a; }else{ maxNum=c;} }else { if(b>c){ maxNum=b; }else{ maxNum=c; }里面嵌套IF ELSE结构判断大小!!maxNum=a,亦可以换成return a; } return maxNum; }var i=num(a,b,c); alert(i);给num声明一个变量,输出开即可! 可以都用return输出!! var a =prompt("输入一个数") var b =prompt("输入一个数") var c =prompt("输入一个数") function num(str,str,str ){ if(a>b){ if(a>c){ return a; }else{ return c;} }else { if(b>c){ return b; }else{ return c; } } } num(); var i =num(a,b,c); |
var a = prompt("请输入用户名:"); var b = prompt("请输入用密码:"); function num(a,b){ if(a=="jredu",b==1234){ return "true"; }else{ return "false"; } } num(); var i=num(a,b); alert(i); |
多层函数的嵌套:
栗子很多,简单做一个我自己做的
这个题好玩在哪?不输入符号,输入两个数,点击符号进行输出 var num1=parseFloat(prompt("请输入第一个操作数:")); var num2 = parseFloat(prompt("请输入第二个操作数:")); function num3(a,b){ alert(num1+num2); } function num4(c,d){ alert(num1-num2); } function num5(e,f){ alert(num1*num2); } function num6(g,h){ alert (num1/num2); }
<body> <button οnclick="num3(num1,num2)">+</button> <button οnclick="num4(num1,num2)">-</button> <button οnclick="num5(num1,num2)">*</button> <button οnclick="num6(num1,num2)">/</button> </body> |
[匿名函数的声明使用]
1.声明一个匿名函数,直接赋值给某一个事件; window.onload = function(){} 2.使用匿名函数表达式。 将匿名函数赋值给一个变量。 声明:var func=function(){} 调用: func(); 3:自执行函数: ① !function(){}();//可以使用多种运算符开头,但一般用! !function(形参列表){}(实参列表); ②(function(){}());//使用()将函数和函数后面的括号包裹* ③ (function(){})()使用()只包裹函数部分!! 三种写法的特点①:使用!开头,结构清晰,不容易混乱,推荐使用: ②:能够表明匿名函数与调用的()为一个整体。官方推荐使用! ③:无法表明函数与之后的()的整体性,不推荐使用 注意:使用匿名函数表达式时,函数的调用语句,必须放在声明语句之后,!!!!!!(与普通函数的区别!!!)
集中写法!
(function(num){
alert(num); }("xxxx")); !function(num){ alert(num); }("历经归250");
[函数的内部属性]
1 。Arguments对象 ①:作用:用于储存调用函数的所有实参, 》》》当我们调用函数,并用实参赋值时候。实际上参数列表已经保存到arguments数组中。, 可以再函数中。使用arguments[n]的形式调用。n从0开始 ②:arguments数组的个数,取决于实参列表,与形参无关; 一旦第N个位置的形参,实参 arguments都存在时候,形参将于arguments绑定,同步变化, (即在函数中,修改形参的值,arguments也会改变,反之,亦成立) ③:arguments.callee是arguments的重要指标,表示arguments所在的函数的引用地址 在函数里面。亦可使用arguments.callee()调用函数本身; 在函数内部,调用函数自身的写法,叫做递归 递归分为2部分,递和归 ,以递归调用的语句为界限,可以将函数分为2部分 递:当函数执行上半部分调用自身的语句是,继续投入内层函数,在执行上半部分,直到执行完最内层函数。 归:当最内层函数执行完以后,再从最内层函数开始,逐渐执行函数的下半部分! 当最外层和那个函数执行时,遇到自身的调用语句,会进入内层执行,而外层函数的后半部分暂不执行, 直到最内层函数执行完以后,在逐步向外执行; 先声明2个变量var num = 1; var sum = 0;函数做法,输入函数 function func1(){ sum += num; num++;求和,先执行上半部分!如果有递没有归。可以看出没有函数声明,只能输出1, if(num<=10){ arguments.callee() } }有了归,才能正确输出 声明函数必不可少! func1(); alert(sum); |
求1!+2!。。。10! var num=1; var sum=0; function func1(){ var i=1; var jie = 1; !function(){ jie *= i; i++; if(i<=num){ arguments.callee(); } }(); sum += jie; num++; if(num<=10){ arguments.callee();} } func1(); alert(sum);函数嵌套!至于要将里面的运算嵌套在第一个里面即可! |