在这里插入代码片
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);
答案:
//圆周率和半径
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('成年人');
答案:
//声明变量保存任意一个年份,使用短路逻辑,如果是闰年打印'闰年'
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]);
}