交换两个变量的值:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var a=10
var b=20
console.log(a,b)
var t=a
a=b
b=t
console.log(a,b)
var c=10
var d=20
console.log(c,d)
c=c+d
d=c-d
c=c-d
console.log(c,d)
</script>
</body>
</html>
数据类型:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
/*数据类型:1:基本数据类型
1:数值类型(整形、浮点型)
2:布尔类型(逻辑类型)
3:字符串(string)
4:undefiend(只定义未赋值)
5:null(空对象指针)
2:引用类型
1:对象
2:数组
3:函数
(数组和函数都是对象的一种)*/
// /*数值类型 Number*/
// var num1=23.456
// var num2=90
// /*运算符 typeof 判断基本数据类型*/
// console.log(typeof(num1));
// // undefined 只定义,没有赋值
// // null 空对象指针(空引用)
//数据类型转换:
// string boolean numm undefined-->number
// 1:转换为数值类型的方法:number()
Number("23.456")
Number(true)
Number(undefined)// NaN :not a number isNaN() is not a number?判断这个值是否是数值,如果是数值就返回false,不是的话返回true。
Number(null)//结果为0
Number('1234def')// NaN
// 2:parseInt()-->其他类型(字符串、浮点型)转整数
parseInt(23.456)
parseInt("123")
parseInt("123asd198")// 结果为123
// 3:parseFloat()--->转浮点
parseFloat(34)// 34
parseFloat("321.56")// 321.56,可以把字符串类型转为浮点型
parseFloat("321.45ab")// 321.45
// 其他类型转布尔类型
// 哪些值可以转换为0值? 怎么转换? Boolean()
Boolean("")
Boolean(0)
Boolean(null)
Boolean(flase)
Boolean(undefined)
// 结果都为false
// 其他类型转字符串:对象。toString()、String()
var a=10
a.toString()// "10"
true.toString()// "true"
//toString()不能转换null、undefined
String(null)// "null"
String(undefined)// ""undefined
// 运算符:
// 1.算数运算符:+-*/%
// 2.逻辑运算符:&& || or
// var a=10
// a>10&&a=20 表达式1已经为false,所以表达式2不执行
// console.log(a)// 10
// !0=1,!1=0
// 3.关系运算符:== != >= <= ===(全等) !==(全不等)
// ==只是值相等即可,可以类型不相同,===值和类型均相等
// 4:赋值运算符:+= -= %= /= = 右结合性
// 5:自加自减:i++先执行语句后加一 ++i先加一后执行语句 i-- --i
//三大结构:三大结构
// 1.顺序结构:输入语句,输出语句赋值语句
// 2.选择结构:if switch(if更加全面,switch更加清晰)
// if(判断条件){满足条件时执行的语句; }
// 3.循环结构:for while do-while
// 三要素:1:初始值,2:循环控制条件,3:步长增量
// for(赋初值;控制条件;步长){循环体;}
// 赋初值;while(控制条件){循环体;步长} (先判断后执行)
// 区别for和while:for用在循环次数明确的情况,while用在循环次数不明确的情况(如二分查找)
// 赋初值;
// do{
// 循环代码;
// 增量
// }while(控制条件);
// d0-while()先执行后判断
</script>
</body>
</html>
分支语句:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
// var input=parseInt(prompt("请输入星期数"));
// // 返回字符串类型
// if (input<=0||input>7){
// alert("智障,不能输入小于等于0大于7的数字")
// }
// else{
// // 1-5输出workday,67输出weekend
// if(input<6){
// alert("workday")
// }
// else{
// alert("weekend")
// }
// }
//算法五大特性:1:输入(个数大于等于0)输出(个数大于等于1)
// 2:确定性
// 3:可行性
// 4:有穷性
//算法四大要求:健壮性(if elseif else)、可读性、正确性、时间效率高存储量低
// switch 清晰,处理流程清晰的选择
// switch(条件){条件最终结果只能是整形或字符串,(===)
// case 表达式1:
// 代码;
// break;
// case 表达式2:
// 代码;
// break;
// 。。。。。
//
// default:相当于else,处理所有剩余情况
// } case、default的位置可以互换,且default可有可无
var a=parseInt(prompt('请输入'))
switch (a){
case 10:
console.log("自走棋")
break;
case 5:
console.log("飞行棋")
break;
case 1:
console.log("五子棋")
break;
default:
console.log("滚去学习")
}
</script>
</body>
</html>
循环练习:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
// var i=0
// var sum=0
// for(i=0;i<=100;i++){
// sum+=i;
// }
// alert(sum)
//
//
// while(i<=100){
// sum+=i;
// i++
// }
// alert(sum)
//
//
// do{
// sum+=i;
// i++
// }while(i<=100)
// alert(sum)
//
//
var input1= parseInt(prompt("首项"))
var input2= parseInt(prompt("首项"))
sum=(input1+input2)*((input2-input1+1)/2)
alert(sum)
</script>
</body>
</html>
switch练习:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var a=parseInt(prompt("请输入成绩"))
// switch (a){
// case (90||91||92||93||94||95||96||97||98||99||100):
// alert("等级为A")
// break
// case (80||81||82||83||84||85||86||87||88||89):
// alert("等级为B")
// break
// case (70||71||72||73||74||75||76||77||78||79):
// alert("等级为C")
// break
// case (60||61||62||63||64||65||66||67||68||69):
// alert("等级为D")
// break
// default:
// alert("遣送回家")
// }
// switch(parseInt(a/10)){
// case 10:
// alert("等级为A")
// break
// case 9:
// alert("等级为A")
// break
// case 8:
// alert("等级为B")
// break
// case 7:
// alert("等级为C")
// break
// case 6:
// alert("等级为D")
// break
// default:
// alert("遣送回家")
// }
</script>
</body>
</html>
n的k次幂:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var n=parseInt(prompt("请输入数字"))
var k=parseInt(prompt("请输入幂数"))
var i=1
for (var j=1;j<=k;j++){
i=i*n
}
alert(n+"^"+k+"是"+i)
</script>
</body>
</html>
循环实现斐波那契:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var a=0//上个月的兔子数
var b=1//本月兔子数
var i=parseInt(prompt("请输入月份"))
for (var j=2;j<=i;j++){
t=a
a=b
b=t+b
}
alert(i+"月份的兔子数是"+b)
</script>
</body>
</html>
猴子吃桃:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--猴子每天吃比前一天的一半还多一个的桃子,第十天还剩一个,求第一天的桃子数-->
<script>
var x1=0
//第day天吃前还剩下x1个
var x2=1
//第day天吃完还剩下x2个
for (day=9;day>=1;day--){
x1=(x2+1)*2
x2=x1
// 第day-1天吃完的数量等于第day天吃之前的数量
}
alert(x1)
</script>
</body>
</html>