js基础练习题

在这里插入代码片1.练习:声明多个变量分别保存一个人的姓名,性别,电话,家庭地址。并打印出来

答案:

var ename='然哥';
var sex='未知';
var phone=13838383838;
var addr='石景山区八宝山路444号';
//console.log(ename,sex,phone,addr);

2.//练习:声明变量分别保存语文、数学、总成绩,其中总成绩为空;
把语文和数学相加的和赋给总成绩。最后打印3个变量。

答案:

var chinese=60,math=32,total;
total=chinese+math;
//console.log(chinese,math,total);

  1. 练习:声明常量保存圆周率,声明变量保存圆的半径,计算周长和面积,
    声明变量分别保存圆的面积和周长。

答案:

//圆周率和半径
const pi=3.14;
var r=5;
//声明变量保存周长和面积
var len=2*pi*r;
var area=pi*r*r;
//console.log(len,area);

//console.log(0.1+0.2);

4.练习:交换两个变量的值 a=1 b=2
得到 a=2 b=1

答案:

//交换两个变量
var a=1,b=2;
//准备一个第三方的变量
var c=a;
a=b;
b=c;
console.log(a,b);

5.//练习:假设从数据库获取到了商品的名称和价格,
拼接打印出’商品名称:xxx 价格:xxx’

答案:

var pname='然哥牌煎饼';
var price=80;
//console.log('商品名称:'+pname+'  价格:'+price);

6.//练习:查看以下的运行结果

var c=5;
var d=++c;
console.log(c,d);

7.//练习:查看以下程序的运行结果

var n=7;

var n1=n--;
var n2=--n;
console.log(n1+n2);//12

//以上写法等价于
console.log(n-- + --n);
console.log(n);

8.//练习:声明变量保存输入的用户名和密码,如果用户名为’root’并且密码为’123abc’,
则打印true,否则打印false

答案:

var uname='abc1';
var upwd='123abc';
//console.log( uname==='root' && upwd==='123abc' );

9.//练习:声明变量保存用户输入的值,如果值为root,或者为[email protected]
或者为13838383838,打印true,否则false

答案:

var input='root';
//console.log( input==='root' || input==='[email protected]' || input==='13838383838' );

var b=false;
//console.log( !b );

10.//练习:声明变量保存一个人的年龄,如果满18岁打印’成年人’,使用短路逻辑

var age=11;
age>=18 && console.log('成年人');

  1. 练习
    声明变量保存任意一个年份,使用短路逻辑,如果是闰年打印’闰年’
    闰年的判断:能被4整除,并且不能被100整除,或者能被400整除

答案:

//声明变量保存任意一个年份,使用短路逻辑,如果是闰年打印'闰年'
var year=2020;
//四年一闰,百年不闰,四百年再闰
//能被4整除,并且不能被100整除,或者能被400整除
console.log( year%4===0 && year%100!==0 || year%400===0 );
//如果满足打印闰年
(year%4===0 && year%100!==0 || year%400===0) && console.log('闰年');

//运算符优先级
(1+2)*3

12.//练习:声明变量保存价格,假设打5折,计算结果是多少并打印出来。

答案:

var price=80;

price*=0.5;
//console.log(price);

var str='1';
str+=2;//str=str+2;
console.log(str);

13.//练习:声明变量保存用户输入的用户名和密码,
如果用户名为root并且密码为123456,打印‘登陆成功’,否则‘登陆失败’

答案:

var uname='root';
var upwd='123456';
var res=uname==='root' && upwd==='123456' ? '登陆成功' : '登陆失败';
console.log(res);

14.// 练习:两次弹出提示框,分别输入数字并保存,然后计算两个数字相加的和,
并以警示框的形式弹出。

答案:

var n1=prompt('input number 1');
var n2=prompt('input number 2');

//alert( Number(n1) + Number(n2) );
//计算以上的相乘的结果
alert( n1*n2 );

15.//练习:声明变量保存一个人的年龄,如果满18岁打印成年人

var age=11;
if(age>=18){
  console.log('成年人');
  console.log('终于可以去非洲了');
}

16.//练习:声明变量保存签名内容,如果签名内容为空(空字符),设置’然哥很懒,什么也没留下!’;
最后打印签名内容

答案:

var str='恒河的水真好喝!';
//判断是否为空
if(!str){ // str===''
  str='然哥很懒,什么也没留下!';
}
console.log(str);

17.//练习:声明变量保存年份,如果是闰年打印’闰年’,否则打印’平年’

答案:

var year=2100;
//是否为闰年
if(year%4===0 && year%100!==0 || year%400===0){
  console.log('闰年');
}else{
  console.log('平年');
}

18.//练习:声明变量保存性别的值(1/0),如果是1打印男,否则打印女(分别使用if-else 和 三目运算符)

答案:

var sex=0;
if(sex){
  console.log('男');
}else{
  console.log('女');
}

var r=sex ? '男' : '女';
console.log(r);

19.//练习:声明变量保存订单的状态码,根据订单的状态码打印对应的汉字状态
//1-等待付款 2-等待发货 3-运输中 4-已签收 5-已取消 其它-无法追踪

答案:

var status=6;
if(status===1){
  console.log('等待付款');
}else if(status===2){
  console.log('等待发货');
}else if(status===3){
  console.log('运输中');
}else if(status===4){
  console.log('已签收');
}else if(status===5){
  console.log('已取消');
}else{
  console.log('无法追踪');
}

20.//练习:声明变量保存一个人的成绩,根据分数做出评判
//90~ 优秀
//80~90以下 良好
//70~80以下 中等
//60~70以下 及格
//60以下 不及格

答案:

var score=-100;
//当分数在0~100之间才可以进行评判,否则打印‘非法的成绩’
if(score>=0 && score<=100){

if(score>=90){
  console.log('优秀');
}else if(score>=80){ //score<90
  console.log('良好');
}else if(score>=70){  //score<80
  console.log('中等');
}else if(score>=60){ //score<70
  console.log('及格');
}else{ // score<60
  console.log('不及格');
}

}else{
  console.log('非法的成绩');
}

21.//练习:声明变量保存一个城市的名称,根据城市名称打印对应的旅游景点

答案:

var city='郑州';
switch(city){
  case '北京':
	console.log('八宝山煎饼');
    break;
  case '杭州':
	console.log('西湖醋鱼');
    break;
  case '郑州':
	console.log('羊肉烩面');
    break;
  case '武汉':
	console.log('小龙虾');
    console.log('热干面');
	break;
  default:
	console.log('白米饭');
}

22.)练习:两次弹出提示框分别输入商品的单价和数量,计算出总价;假设满1000打9折,
当前会员卡内有余额1200,如果足以支付商品,警示框弹出’pay success’,
否则警示框弹出’pay error’

答案:

var price=prompt('input price');
var num=prompt('input num');
//计算出总价
//乘法具有隐式转换为数值
var total=price*num;
console.log(total,typeof total);
//如果满1000打九折
if(total>=1000){
  total*=0.9;
}
console.log(total);
//声明变量保存会员卡的余额
var card=1200;
//如果足以支付
if(card>=total){
  alert('pay success');
}else{
  alert('pay error');
}

23.//练习:打印50~40之间所有的整数

答案:

var i=50;//初始值
while(i>=40){//循环条件
  //循环体
  console.log(i);
  //步长:控制循环幅度
  i--;
}

24.//练习:打印70 75 80 85 90

答案:

var i=70;
while(i<=90){
  console.log(i);
  //步长:每次加5
  i+=5;//i=i+5
}

25.//练习:打印1~100之间所有的偶数(使用if判断是否为偶数)
//产生1~100之间所有整数

答案:

var i=1;
while(i<=100){
  //i代表1~100之间所有整数
  //判断i是否为偶数
  if(i%2===0){
    console.log(i);
  }
  i++;
}

26.//练习:计算1~100之间所有整数的和

答案:

//准备一个变量保存所有整数的和
//产生1~100之间所有的整数
var i=1;
//如果初始化的为字符串变成拼接
var sum=0; //用于保存所有数字的和
while(i<=100){
  //i是所有整数
  //把每次产生的整数加到sum中
  sum+=i;// +1+2+3...  sum=sum+1
  //每加入一个数字打印一次
  //console.log(sum);
  i++;
}
//打印最终的结果
console.log(sum);

27.//练习:计算1~100之间所有奇数的和

答案:

//产生1~100之间所有的整数
var i=1;
var sum=0
while(i<=100){
  //i是1~100之间所有整数
  //判断i是否为奇数
  if(i%2===1){
    //i是所有奇数,再求和
    sum+=i;
  }
  i++;
}
console.log(sum);

28.//练习:使用死循环计算1~10之间所有整数的乘积

答案:

var i=1;
var s=1;//初始化变量用于记录乘积
while(true){
  //i就是1~10所有的整数
  //把所有整数乘以到s中
  s*=i; //s=s*i;//1*2*3...10
  //当i为10的时候,强制结束循环
  if(i===10){
    break;
  }
  i++;
}
console.log(s);

29.//练习:打印40~30之间所有的整数

答案:

var i=40;//初始值
do{
  //循环体
  console.log(i);
  i--;//步长
}while(i>=30);//循环条件

30.//练习:打印60 63 66 69 72 75(步长每次加3)

答案:

var i=60;
do{
  console.log(i);
  //步长
  i+=3;
}while(i<=75);

31.//练习:打印1~100之间所有的奇数(判断是否为奇数)

答案:

var i=1;
do{
  //i就是所有整数
  //判断是否为奇数
  if(i%2===1){
    console.log(i);
  }
  i++;
}while(i<=100);

32.//练习:计算1~100之间所有能被3整除的数字的和

答案:

var i=1;
var sum=0;
do{
  //判断是否能被3整除
  if(i%3===0){
    //求和
	sum+=i;
  }
  i++;
}while(i<=100);
console.log(sum);

33.//练习:计算1~50之间所有能被4整除的数字的乘积

答案:

var i=1;
var s=1;
do{
  //是否能被4整除
  if(i%4===0){
    //求乘积
	s*=i;
  }
  i++;
}while(i<=50);
console.log(s);

34.//练习:在死循环的循环体中执行弹出提示框,假设密码为123456,如果输入正确则结束循环。

答案:

do{
  //保存用户输入的密码
  var str=prompt('input password');
  //如果输入正确,则结束循环
  if(str==='123456'){
    break;
  }
}while(true);
*/
do{
  var str=prompt('input password');
}while(str!=='123456');
//如果输入的密码是123456为false,结束循环
//如果输入的密码不是123456为true,继续执行循环

35.//练习:打印80 75 70 65 60

答案:

for(var i=80;i>=60;i-=5){
  console.log(i);
}

36.//练习:计算1~100之间所有能被7整除的数字的和

答案:

//var sum=0;
for(var i=1,sum=0;i<=100;i++){
  //判断是否能被7整除
  if(i%7===0){
    //求和
	sum+=i;
  }
}
console.log(sum);

37.练习://打印2000~2050年之间所有的闰年

答案:

//产生所有的年份
for(var i=2000;i<=2050;i++){
  //判断i是否为闰年
  if(i%4===0 && i%100!==0 || i%400===0){
    console.log(i);
  }
}

38.//练习:假设然哥有10000元,银行的利率是4%,5年后然哥一共能拿到多少钱

答案:

//一年后的钱 = 前一年的本金+利息
var ran=10000;
for(var i=1;i<=5;i++){
  //每一年的钱=前一年的本金+利息
  ran = ran + ran*0.04;
}
console.log(ran);

39.//练习:打印1~100之间所有的偶数,(遇到奇数就跳过)

答案:

for(var i=1;i<=100;i++){
  //判断i是否为奇数
  if(i%2===1){
    continue;
  }
  console.log(i);
}

40.//练习:打印1~100之间所有整数,遇到能被3或者4整除就跳过

答案:

for(var i=1;i<=100;i++){
  //如果能被3或者4整除,就跳过
  if(i%3===0 || i%4===0){
    continue;
  }
  console.log(i);
}

41.//练习:打印 *****

答案:

for(var i=1,str='';i<=5;i++){
  //初始化为字符串,拼接 +=
  //每次拼接一个字符串*
  str+='*';//''+'*'+'*'...
}
console.log(str);

//循环5次,每次的循环体,打印*****
//外层循环:控制循环的行数
for(var j=1;j<=9;j++){
//内层循环:控制每一行循环的列数
for(var i=1,str='';i<=9;i++){
  //初始化为字符串,拼接 +=
  //每次拼接一个字符串*
  str+='*';//''+'*'+'*'...
}
console.log(str);

42.)练习
计算1~100之间所有整数的和,一旦当总和超过4000,结束循环,并打印当前的和
打印2000~2100之间的前10个闰年
打印九九乘法表

答案:

for(var i=1;i<=9;i++){
	for(var j=1,str='';j<=i;j++){
		str+=j+'*'+i+'='+j*i+' ';
	}
	console.log(str);
}

43.练习://计算1~100之间所有整数的和,一旦当总和超过4000,结束循环,并打印当前的和

答案:

for(var i=1,sum=0;i<=100;i++){
  sum+=i;
  //判断是否超过4000
  if(sum>4000){
	console.log(sum);
    break;	
  }
}

44.练习://打印2000~2100之间的前10个闰年

答案:

for(var i=2000,count=0;i<=2100;i++){
  //判断是否为闰年
  if(i%4===0 && i%100!==0 || i%400===0){
    console.log(i);
	//每打印一个闰年,count值加1
	count++;
	//如果当count为10的时候,结束循环
	if(count===10){
	  break;
	}
  }
}
console.log(count);

45.//练习:创建函数getSum,封装计算1~100之间所有整数的和并打印出来。调用3次。

答案:

function getSum(){
  //函数体
  for(var i=1,sum=0;i<=100;i++){
    sum+=i;
  }
  console.log(sum);
}
getSum();
getSum();
getSum();

46.// 练习:创建函数getSum,计算1~任意数字之间所有整数的和并打印出来,调用多次。

答案:

function getSum(n){
  //计算1~n之间所有整数的和
  for(var i=1,sum=0;i<=n;i++){
    //i是所有整数
	sum+=i;
  }
  console.log(sum);
}
//getSum(100);
//getSum(1000);
//getSum(500);

47.//练习:创建函数getRun,计算任意两个年份之间所有的闰年个数并打印出来,调用多次

答案:

function getRun(n1,n2){
  //循环产生n1~n2之间所有的年份
  //提前声明变量用于记录闰年的个数。
  for(var i=n1,count=0;i<=n2;i++){
    //i所有的年份
    //找闰年
	if(i%4===0 && i%100!==0 || i%400===0){
	  //如果是闰年,个数加1
	  count++;
	}
  }
  //当循环结束后,打印闰年的个数
  console.log(count);
}
getRun(2000,2100);
getRun(1949,2020);

48.//练习:创建函数getMax1,传递任意两个参数,返回最大值。

答案:

function getMax1(a,b){
  /*
  if(a>b){
    return a;
  }else{
    return b;
  }*/
  return a>b ? a : b;
}
var res=getMax1(3,5);
//console.log(res);

49.//练习:创建函数getMax2,传递任意三个参数,返回最大值

答案:

function getMax2(a,b,c){
  /*
  //声明变量,用于保存前两个的最大值
  var max;
  //前两个比较产生最大值
  if(a>b){
    max=a;
  }else{
    max=b;
  }
  //再用max和第三个数比较,结果直接返回
  if(max>c){
    return max;
  }else{
    return c;
  }
  
  var max=a>b ? a : b;
  return max>c ? max : c;
  */
  //如果a大于b,并且a大于c,则返回a
  if(a>b && a>c){
    return a;
  }else if(b>c){
    return b;
  }else{
    return c;
  }
}
var res=getMax2(2,7,8);
//console.log(res);

50.//练习:创建函数getStatus,传递订单的状态码,返回对应的汉字状态 switch-case
//1-等待付款 2-等待发货 3-运输中 4-已签收 5-已取消 其它-无法追踪

答案:

function getStatus(n){
  switch(n){
    case 1: 
	  return '等待付款';
	  //break;
	case 2:
	  return '等待发货';
	  //break;
	case 3:
	  return '运输中';
	  //break;
    case 4:
	  return '已签收';
	  //break;
	case 5:
	  return '已取消';
	  //break;
	default:
	  return '无法追踪';
  }
}
var res=getStatus(1);
//console.log(res);

51.//练习:创建函数isRun,传递任意一个年份,返回布尔型的值,是闰年true,不是false; 应用闰年判断函数,如果是打印366,不是打印365

答案:

function isRun(year){
  /*
  if(year%4===0 && year%100!=0 || year%400===0){
	//return 阻止往后执行,可以省略else
    return true;
  }
  return false;
  */
  return year%4===0 && year%100!=0 || year%400===0;
}
//判断2020是否为闰年
//var res=isRun(2020);
//console.log(res);

//传递年份过去,返回是否为闰年
//判断2021是否为闰年
if( isRun(2022) ){
  console.log(366);
}else{
  console.log(365);
}

52.练习
斐波那契数列
第1项和第2项的值都是1,从第3项开始没项的值是前边两项相加的和
1 1 2 3 5 8 13 21 34 55 89…
创建函数fib,传递一个参数,返回任意一项的值。(提示:使用循环)
例如 fib(5) 5 fib(10) 55

答案:

//创建函数fib,传递一个参数,返回任意一项的值。
function fib(n){
  //第一项的值和第二项的值默认是1
  var n1=1,n2=1;
  //如果想要得到第n项的值,需要把n1和n2不断往后挪动,当挪动到第n项就结束,此时n2就是所求项的值
  //每次挪动都是从第3项开始
  //范围 3~n
  for(var i=3;i<=n;i++){
    //每次挪动,n1的值就成了上一次n2的值;n2的值是上一次n1和n2相加的和
	//先把n1存下来
	var c=n1;
	n1=n2;
	n2=c+n2;
  }
  //把最终的结果n2返回,就是所求项的值
  return n2;
}
console.log( fib(60) );

53.//练习:使用递归计算1~任意数字之间所有整数的和

答案:

function getSum(n){
  //当n为1的时候,返回1
  if(n===1){
    return 1; //返回1的同时,会阻止往后执行
  }
  //1~第n项的和=当前n的值+前n-1项的和
  return n+getSum(n-1);
}
//console.log( getSum(100) );

54.//练习:使用递归查看斐波那契数列第n项的值
//第n项的值=前两项相加的和;当n为1或者2的时候,返回1 10 20 50

答案:

function fib(n){
  //跳出条件:当n为1或者2的时候,返回1
  if(n===1 || n===2){
    return 1;
  }
  //前一项 n-1
  //再前一项  n-2
  return fib(n-1)+fib(n-2);
}
console.log( fib(5) );

55.//练习:使用函数表达式创建函数,计算任意两个数字之间所有整数的和,并返回结果。

答案:

//只是提升变量的声明
var getSum=function(n1,n2){
  //计算n1~n2之间所有整数的和
  for(var i=n1,sum=0;i<=n2;i++){
    //i就是所有数字
    sum+=i;//求和
  }
  //返回总和
  return sum;
}
console.log( getSum(1,100) );

56.//练习:创建匿名自调用,把轮播图2中的代码封装起来,假设传递参数5.

答案:

(function(a){
  //函数体
  var n1=2;
  console.log(n1,a);
})(5);

57.//练习:创建图书对象,包含的属性有编号,标题,价格,出版社。

答案:

var book={
  bid:1001,
  title:'如何摊好煎饼',
  price:160,
  'place-in':'八宝山人民出版社'
};

//访问对象中的属性
//console.log(book.title,book['place-in']);
//console.log(book['price']);
//console.log( book.author );//undefined
//重新赋值
book.price=200;
//添加属性
book.author='然哥';
//console.log(book);

58.//练习:创建商品对象,包含有商品的名称,价格,颜色,品牌;修改价格属性,添加重量属性,最后打印对象。

答案:

var phone={
  pname:'P30',
  price:2999,
  color:'黑色',
  brand:'华为'
};
phone.price=2799;
phone['weight']='300g';
console.log(phone);

59.//练习:创建一个员工对象,包含属性有姓名,性别,生日,工资

答案:

var emp=new Object();
emp.name='然哥';
emp.sex='男';
emp.birthday='1977-3-3';
emp.salary=30000;
//console.log(emp);
//访问对象中的所有属性
//遍历属性:依次访问对象中的每一个属性
//for in
for(var key in emp){
  //key 代表要每一个属性名
  //emp[key]  属性名对应的属性值
  //emp.key  此时的key不是变量
  console.log(key,emp[key]);
}

你可能感兴趣的:(js基础练习题)