JavaScript基础知识(4)
来源:互联网 发布:java工资待遇如何 编辑:程序博客网 时间:2024/06/01 07:39
回顾:
方法参数:是方法内处理逻辑必须的数据。参数仅限方法内部使用,方法外无法访问方法的参数变量。参数名称自定义。
返回值:调用者是否需要获得方法的执行结果决定是否需要返回值。
function add(a,b){
var sum=a+b;
return sum;
}
调用方法1:add(5,10);
调用方法2:
var a=5;
var b=10;
var r=add(a,b);
方法完成之后,内部作用域及其局部变量都销毁!
分支结构:
if结构:1件事,可做可不做;
if..else..:2件事,必须二选一;
if...else if...[else...]:多件事,多选一执行。
正课:
switch...case...多条分支,根据条件判断,选择执行
语法:
switch(表达式){
case 表达式1:
代码段1; //如果表达式的值===表达式1的值
case 表达式n:
代码段n; //如果表达式的值和所有case都不相等
default:
默认代码段;
}
例:
var score=parseInt(prompt("请输入分数"));
switch(true){
case score>=90:
console.log("A");
break;
case score>=80:
console.log("B");
break;
case score>=60:
console.log("C");
break;
default:
console.log("D");
}
switch...case...运行机制:如果找到与表达式值匹配的case,不但执行当前case下的代码,而且之后所有代码都被触发,不会再判断而直接执行后面所有的代码!
break:退出当前结构,后面的代码都不会执行。
当两个条件使用同一个处理的时候,前面的条件后面不需要加break;即多个条件共用同一套执行逻辑时,不加break。
switch...case...的效率不高,在js中使用的少。要先算出比较比较的条件值,再和条件相比较。
js中的switch里面的()和case后面的条件,可以放任何东西,不仅仅是数字!这是和其他语言不同的。
switch表达式和表达式之间的比较,是严格相等,没有自动类型转换!===数值和数据类型都要相等。
var num=parseInt(prompt("请选择服务种类:"));
switch(num){
case 1:
console.log("余额查询中");
break;
case 2:
console.log("取款进行中");
break;
case 3:
console.log("转账进行中");
break;
case 0:
console.log("退出系统");
break;
default:
console.log("输入有误");
}
prompt输进去的都是字符串!!
循环结构:程序反复执行同一套代码段,但是遇到结束条件会结束执行。如果没有循环结束条件,就会永远循环执行,这叫死循环。
循环三要素:
1.循环条件:循环继续执行的条件。一旦循环条件不满足,循环立刻退出。
2.循环变量:用于循环条件中做判断的变量。循环变量都会向着循环退出的趋势变化(不满足循环条件的趋势)。也叫循环计数器。
3.循环体:每次循环要做的事情
while循环:当满足条件时,就继续循环做...事
语法:
var 循环变量;
while(循环条件){
循环体;
迭代变化循环变量;
}
例:
var round=0;
while(round<3){
if(round==2){
console.log("晕");
break;
}
console.log("转"+round+"圈");
round+=1;
}
console.log("停车");
while中何时用break:循环条件不满足之前,希望强行退出循环。
如何使用break?可以放在任何需要退出循环的位置。
例:
var n=10;
var input= -1;
while(input!=n&&input!="exit"){
input=prompt("你猜:");
if(input!=""){
if(input=="exit"){
console.log("放弃了");
break;
}else{
input=parseInt(input);
if(n>input){
alert("小了");
}else if(n<input){
alert("大了");
}else{
alert("猜对了");
document.write("正确答案:"+n);
}
}
}else{
alert("请重新输入");
}
}
取随机数:Math.random():0<=n<1
取任意min-max之间取随机数公式:parseInt(Math.random()*(max-min+1)+min)
例:取60到100之间的随机数:
0<=n<1
0<=n*41<41
60<=n*41+60<101
60<=parseInt(n*41+60)<=100
parseInt(Math.random()*(max-min+1)+min)
循环三要素:
1.循环条件:判断继续循环的条件
2.循环变量:循环条件中用于比较的变量。--循环计数器
3.循环体:
break:退出当前结构,继续运行后续程序
while:如果第一次循环条件不满足,
var 循环变量;
while(循环条件){
循环体;
迭代变换循环变量;
}
do-while循环:先做,再判断。先执行一次循环体,再判断是否继续!和while循环的差别就是,do-while循环如果循环条件不满足,循环体至少可以执行1次。
语法:
var 循环变量;
do{
循环体;
迭代变换循环变量;
}while(循环条件);
例:
var n=10;
do{
var input=prompt("你猜");
if(input=="exit"){
console.log("放弃了");
break;
}else{
input=parseInt(input);
if(n>input){alert("小了");
}else if(n<input){alert("大了");
}else{alert("猜对了");
}
}
}while(input!=n);
js的循环语句中,变量声明提前:相同作用域内,var...无论出现在什么位置,解析时,优先提取到js开始位置“声明”!
但是在方法中,声明的变量不能在其他地方使用,因为不在相同作用域内。
function fun(){
var card=10;
}
fun();
console.log(card); //出错!
while vs do while:
如果第一次条件就可能不成立,也想执行一次,必须用do while;如果第一次条件一定满足,do while等效于while。
for循环语句:完全等效于while循环。
for循环使用条件:循环变量变化规律固定,循环次数已知/固定。
for循环语法:
for(声明并初始化循环变量;循环条件;迭代循环变量){
循环体;
}
和while循环一样,for循环的迭代循环变量是在循环体之后执行的。
例:
var sum=0;
for(var n=1;n<=100;n++){
sum+=n;
}
console.log(sum);
for循环是一个结构,不是一个完整的功能,不能和函数那样实现完整的功能。只有function才有作用域,for里面的参数是没有作用域的。
上述例子可以用下面的写法实现:
for(var n=1,sum=0;n<=100;sum+=n++);
console.log(sum);
可以同时声明多个变量,用逗号隔开;简写循环体到圆括号里面。for循环可以有多种写法的,从而实现更高效率。
for语句中声明初始化变量是可以拿出来,迭代循环变量也可以拿出来的。但是没有循环变量的循环就是死循环!
break在任何循环中都可以使用的。
continue:跳过本轮循环,继续执行下一轮循环;
例:
var bao=4;
for(var box=1;box<=9;box++){
if(box==bao){
continue;
}
console.log("跳到"+box);
}
例:找出2000年以后的5个闰年并输出
var count=0;
var year=2001;
while(count<5){
if((year%4==0&&year%100!=0)||(year%400==0)){
console.log(year);
count++;
}
year++;
}
上述例子可以用下面的方法实现,year+=4可以提高效率
var count=0;
var year=2001;
while(count<5){
if((year%4==0&&year%100!=0)||(year%400==0)){
console.log(year);
count++;
}
if(count>0){
year+=4;
}
year++;
}
九九乘法表:
第一步:做出第9行的:
var str="";
for(var a=1;a<=9;a++){
str+=a+"*9="+(a*9)+" ";
}
console.log(str);
第二步:从简单办法中找规律:
for(var n=1;n<=9;n++){
var str="";
for(var a=1;a<=n;a++){
str+=a+"*"+n+"="+(a*n)+" ";
}
console.log(str);
}
遇到复杂的问题:先用简单办法做最简单的事情,从简单办法中找规律!
类似的打印星星:
for(var n=1;n<=9;n++){
var str="";
for(var a=1;a<=n;a++){
str+="*";
}
console.log(str);
}
例:
var sum=0;
var count=0;
do{
var input=parseInt(prompt("请输入成绩:"));
if(input==-1){
break;
}else{
sum+=input;
count++;
}
}while(true);
console.log("平均分"+(sum/count).toFixed(2));
水仙花数,也叫自恋数
for(var num=100;num<=999;num++){
var one=num%10; //个位
var ten=parseInt((num%100)/10);//
var hd=parseInt(num/100); //百位
if(num==hd*hd*hd+ten*ten*ten+one*one*one){
console.log(num);
}
}
0 0
- Javascript-基础知识(4)
- JavaScript基础知识(4)
- JavaScript基础知识4
- JavaScript(一、基础知识)
- Javascript基础知识(1)
- Javascript基础知识(2)
- javascript(js)基础知识
- Javascript-基础知识(1)
- Javascript-基础知识(3)
- Javascript-基础知识(5)
- Javascript-基础知识(6)
- javascript基础知识(数组)
- JavaScript基础知识(一)
- JavaScript基础知识(2)
- JavaScript基础知识(3)
- javascript基础知识(一)
- JavaScript基础知识(一)
- JavaScript基础知识(2)
- [DP](JZOJ)【USACO Open 2012银】书架Bookshelf
- Centos安装SZRZ进行文件传输
- BZOJ 1697: [Usaco2007 Feb]Cow Sorting牛排序
- 【新手】Numpy axis理解
- eclipse搭建ssh框架(一)
- JavaScript基础知识(4)
- Android 模拟QQ空间小加号+用popupWindow制作spinner
- 欢迎使用CSDN-markdown编辑器
- MX30100血氧心率传感器 使用Note
- 代理模式
- Pycharm5.0.4(win10)配置opencv2.4.9
- MOM的架构 JMS消息模型
- JavaScript基础知识(5)
- 图解列数据库存储