关系运算符
和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
(1)两个操作数都是数值,则数值比较
(2)两个操作数都是字符串,则比较两个字符串对应的字符编码值:
如果是两个单个字符进行比较,直接比较字符的ASIIC码值
逐位,进行比较,如果比较出大小,就直接得出结果
(3)两个操作数有一个是数值,则将另一个转换为数值,再进行数值比较
<script>
alert("A"<"a");//true
alert("abcd">"adc");//false
alert(1==true);//true
// 注意
alert(Number(null));//0
alert(Number(undefined));//NAN
alert(null==undefined);//true
</script>
分支语句
代码规范:
1、运算符前后,都要加空格
2、;或.后面只需要加一个空格
3、代码缩进
<script>
var year = 2020;
if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0){
alert("这是一个闰年:" + year);
}else{
alert("这是一个平年:" + year);
}
</script>
省略break
<script>
var month = 4;
var year = 2000;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
alert("31天");
break;
case 2:
if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0){
alert("29天");
}else{
alert("28天");
}
break;
default:
alert("30天");
break;
}
</script>
九九乘法表
<script>
//i是行
for(var i = 1; i <= 9; i++){
//j是列
for(var j = 1; j <=i; j++){
doucument.write(j + "X" + i +"=" + (i*j) + " ");
}
doucument.write("<br/>");
}
</script>
三角
<script>
for(var i = 1; i <= 5; i++){
//空格数
for(var k = 1; k <= 5-i; k++){
document.write("1");
}
//
for(var j = 1; j <= i; j++)
{
document.write("2");
}
document.write("<br/>");
}
</script>
找出所有的水仙花数,三位数,各位立方和等于该数本身。
153=1 ^3 + 5 ^ 3 + 3 ^ 3
Math.pow(x,y);求x的y次方
<script>
for(var i=100;i<1000;i++)
{
//每一位取出
var a=i%10;
var b=parseInt(i/10)%10;
var c=parseInt(i/100);
//立方体
var sum=Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3);
if(i==sum){
document.write(i+"<br/>");
}
}
</script>
输入两个数,求两个数的最大公约数(能够同时整除两个数的最大数)
思路:先找出两个数中最小的那个数
最大公约数,最小是1,最大只能两个数中的较小数
<script>
var num1=12;
var num2=6;
var min=num1>num2?num2:num1;
while(1){
if(num1%min==0&&num2%min==0){
break;
}
min--;
}
alert("两者的最大公约数: "+ min);
</script>
输入两个数 ,求两个数的最小公倍数(能够同时被两个数整除的最小数)
思路:先找出两个数的最大数
最大数++,直到找出能被两个数整除的数(退出循环)
最小公倍数:最大两个数的积,最小两个数中的较大数
<script>
var num1=6;
var num2=12;
var max=num1>num2?num1:num2;
while(1){
if(max%num1==0&&max%num2==0){
break;
}
max++;
}
alert("两者的最小公倍数:"+max);
</script>
输入两个数n,a,如果n=3,a=2;
输出2+22+222的值。(不用输出式子)
如果n=4,a=3;
输出3+33+333+3333
思路:n=3,相加三次,每次相加比前一次相加的数,多一位
每次多的这个位数的值为a
<script>
var n=4;
var a=3;
var tmp=a;//tmp是每一次累加的数
var sum=0;
for(var i=0;i<n;i++){
sum+=tmp;
tmp=tmp*10+a;
}
alert(sum);
</script>
五位数中,对称的数成为回文数,找出所有的回文数,如12321
思路:先找出五位数中的第一位和第五位数比较
在找出五位数中的第二位和第四位数比较
<script>
for(var i=10000;i<100000;i++){
var a=i%10;//个位
var b=parseInt(i/10)%10;//十位
var c=parseInt(i/1000)%10;//千位
var d=parseInt(i/10000)%10;//万位
if(a==d&&b==c){
document.write(i+"<br/>");
}
}
</script>
输入年、月、日,计算某一天是该年的第几天(周)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 输入年、月、日,计算某一天是该年的第几天(周) -->
<script>
var year=2008;
var month=2;
var date=8;
var sum=0;//记录总天数
switch(month){
case 12:
sum+=30;
case 11:
sum+=31;
case 10:
sum+=30;
case 9:
sum+=31;
case 8:
sum+=31;
case 7:
sum+=30;
case 6:
sum+=31;
case 5:
sum+=30;
case 4:
sum+=31;
case 3:
sum+=28;
if(year % 4 == 0 && year % 100 !=0 || year % 400 == 0){
sum+=1
}
case 2:
sum+=31;
case 1:
sum+=date;
break;
default:date
alert("error");
break;
}
alert("这是第 "+ sum + "天");
// var week = parseInt(sum/7)+1;
var week=Math.ceil(sum/7);
alert("这是第 "+ week + "周");
</script>
</head>
<body>
</body>
</html>