二进制
<script>
//二进制 0-1
//八进制 0-7
//十进制 0-9
//16进制 0-9 a-f
//32进制
//64进制
//如何把一个十进制转成二进制:百度一下你就知道
var n = 10111111;
console.log("n转2进制" + n.toString(2));//n转2进制
// 注意 加号左右两边有字符串那它就是拼接的意思
var n = 1000100;
console.log(parseInt(n, 2));//把2进制的n转换成10进制
var m = 68;
console.log(m.toString(16));//把十进制的m转换成16进制
var n = 198;
console.log(n.toString(8));
// parseInt
// 1.取整
// 2.其他进制转成10进制 括号里的第2个,是描述它是几进制;
// toString
// 1.转字符串
// 2.10进制转其他进制
var n = 27;
console.log(parseInt(n, 8).toString(2));// 把8进制的n转成2进制,
//先把8进制转成10进制,再转成2进制;
</script>
3运算符
<script>
//运算符有哪些?
// 1.算术运算符
// + , - ,* ,/ ,%
// 注意:算术运算符,会产生隐式转换,除了+
// 把一个字符串的数值,变成了真正数值(隐式转换) +号不会隐式转换
// 强制转换 Number(),Boolean(),parseInt(),parseFloat()
console.log("100" - 10);//90
console.log("100" / 10);//10
console.log("100" * 10);//1000
console.log("100" % 10);//0 00除10的余数
// 2.拼接运算符
// + , 加号左右2边,只要有一边出现字符串,就是字符串的拼接
// "100" + "200" == "100200" 拼接
//隐式转换
console.log("100" * 1 + "200" * 1); //300
//强制转换
console.log(Number("100") + Number("200")); //300
// 3.逻辑运算符
// && || !
//&& 与 || 被称之为 短路运算符 因为找到了一个假或真就行
// && 2边都满足,才是真的, 找假
console.log(true && false && false); // false
console.log(true && true);//true
console.log(false && true && true);//false
// || 2边只有一边是真,就是真, 找真
console.log(false || true || true);
// ! 取反
console.log(!true);
// || 2边只有一边是真,就是真, 找真
// && 2边都满足,才是真的, 找假
var num1 = 1 && 2; // num1 2 &&是找假,1是真 2也是真,没假,但已经找到2了,所以把2赋值给左边
var num2 = true || false; // num2 true-->1 trun转换成1
var result = num1 * num2 + 3 // 2*1+3
document.write(result); //5
// && 用来做登录
// || 用来做兼容
// 4.关系运算符
//
// >,<,>=,<=,==,===, !=,!==
// ===是恒等于 要数值和类型都要相等.
console.log(6 > 5);//true
console.log(6 < 5); //false
//
console.log(6 >= 5);//true
console.log(5 <= 5);//true
console.log(6 == 6);
console.log("6" == 6);// 只要值相等即可,不管类型
// 3个等于,恒等于 (全等于),值与类型必须要一致
console.log(6 === 6);//true
console.log(6 === "6"); // 值相等,类型不相同,false
console.log(6 != 5);
console.log(6 !== 5); //true 6不恒等于5
// 5.赋值运算符
// += ,-=,*=, %=,/= , =
var n = 10;
// n=n+5;
n += 5
console.log(n);
var n = 10;
// n = n / 2;
n /= 2;
var n = 10;
// n = n * 8;
n *= 8;
var n = 10;
// n = n % 2
n %= 2
// 6.一元运算符(自增,自减)
// ++在后,先取值,后运算
var n = 10;
console.log(n++); //10
console.log(n); //11
var n = 10;
// ++在前,先运算,后赋值
console.log(++n);//11
console.log(n); //11
var n = 10;
// 10 11 13 13
var res = n++ + n++ + ++n + n++
console.log(res); //47
console.log(n);//14
var n = 10;
// 11 11 12 14
var res = ++n + n++ + n++ + ++n;
console.log(res);//48
console.log(n); //14
var n = 2;
// 2 3 5 6 6
var res = n++ + n++ + ++n + ++n + n++
console.log(res); //22
console.log(n); //7
// ++,-- 优先于 * , / 优先于 +
var i = 12;
// 12 14 30 15 14
var sum = i++ + ++i + ++i * 2 + i-- + i--;
// 85 13
document.write(sum + " " + i); // "85 13"
// 7.三目运算符
// 条件满足,走最近,条件不满足,走远
var res = (1 == 1 ? 100 : "你好")
console.log(res);
// 8.位移运算符
// <<
// >>
// 把一个数,先转换成2进制,向左边移动n位,再有把这个转换10进制
// 2 >> 2 == 0; 右移运算符 2先转换成2进制 10.再向右移动2位.变成"00"10,把"00"转成10进制就是0.
// 2--> "10"
// " 10"
// " 00"10
// 2 << 3 == 8; 左位移.
//关系运算符
// > ,< >= ,<= ,==, ===,!=,!==
// 1.如果2边都是字符串,就进行ascii比较
// 2.如果一边是数字,一边是字符串,就把字符串转成数值,进行比较
// 3.如果2边都是数值,直接比较大小
// ASCII码,128个
// 0-9 48-57
// a-z 97-122
// A-Z 65-90
console.log("10" < "9"); //true
console.log("10" < 9); // false
console.log(10 < 9); //false
// undefined == 0 undefined是undefined类型,0是数值类型,
//不能进行比较,所以是false
var res = (2 == 2 ? "嗯" : 1)
console.log(res);
var n = 10;
var m = 20;
var max;
if (n > m) {
max = n;
} else {
max = m;
}
console.log("最大值" + max);
var max = n > m ? n : m
console.log("最大数" + max);
//写法一
var n = 1994;
if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) {
console.log(n + "是闰年");
} else {
console.log(n + "是平年");
}
//写法2
var year = 1998;
var exp1 = year % 4 == 0 && year % 100 != 0;
var exp2 = year % 400 == 0;
if (exp1 || exp2) {
console.log("闰年");
} else {
console.log("平年");
}
//多分支
var weekday = parseInt(Math.random() * 10) % 5 + 1;
if (weekday == 1) {
console.log("今天训练胸");
} else if (weekday == 2) {
console.log("今天训练背");
} else if (weekday == 3) {
console.log("今天训练腿");
} else if (weekday == 4) {
console.log("今天训练手");
} else {
console.log("今天训练肩");
}//最后一个 if也不用加 表达也不用加
var y;
var x = 100;
if (x < 1) {
y = x;
} else if (x >= 1 && x < 10) {
y = 2 * x + 1;
} else {
y = "嗯嗯";
}
console.log(y);
var oscore = parseInt(Math.random() * 101);
console.log("当前分数" + oscore);
if (oscore > 85) {
console.log("继续保持");
} else if (oscore >= 75 && oscore <= 85) {
console.log("继续加油");
} else if (oscore >= 60 && oscore < 75) {
console.log("一定要加油");
} else {
console.log("请主动退学");
}
//嵌套
//方法一
var n = parseInt(Math.random() * 10);
var m = parseInt(Math.random() * 10);
console.log("n:" + n, "m:" + m);
if (n != m) {
if (n > m) { console.log("n大于m"); }
else { console.log("n小于m"); }
} else {
console.log("n=m");
}
//方法二 注意=是赋值 ==才是相等
var n = parseInt(Math.random() * 10);
var m = parseInt(Math.random() * 10);
console.log("n:" + n, "m:" + m);
if (n == m) {
console.log("n等于m");
} else {
if (n > m) { console.log("n大于m"); }
else { console.log("n小于m"); }
}
var num = prompt("请输入1-7的数值");
switch (Number(num)) {
case 1:
console.log("今天是周一");
break;
case 2:
console.log("今天是周二");
break;
case 3:
console.log("今天是周三");
break;
case 4:
console.log("今天是周四");
break;
case 5:
console.log("今天是周五");
break;
case 6:
console.log("今天是周六");
break;
default:
console.log("今天是周天");
break;
}
var grade = prompt("请输入分数(支持小数)");
switch (Boolean(grade)) {
case grade > 80 && grade <= 100:
console.log("A");
break;
case grade > 70 && grade <= 80:
console.log("B");
break;
case grade >= 60 && grade <= 70:
console.log("C");
break;
case grade >= 0 && grade < 60:
console.log("不及格");
break;
default:
console.log("啥也不是");
break;
}
</script>
4 三大流程语句
<script>
//程序有3大流程语句
//1. 顺序 从上往下执行
//2. 分支 (单分支,双分支,多分支)
//3. 循环 (for,while, do..while)
//单分支的语法
// if(表达式){
// 逻辑代码
// }
if (1 == 2) {
console.log(1111111);
}//条件不满足 所以console.log(1111111); 不执行
console.log(2222222);
</script>
5 双分支语句
//语法
// if (表达式) {
//逻辑
// } else {
//逻辑
// }
// 1、判断一个数是偶数还是奇数;
//随机声明一个
//Math.random() 0-1直接的值,不包含1
var num = parseInt(Math.random() * 10);//这个代表大于等于0小于1的所有数乘10取整,也就是0-9;
//Math.random() 代表0-1之间的任何值 大于等于0 到 无限接近于 1的值;
if (num % 2 == 0) {
console.log(num + "是一个偶数");
} else {
console.log(num + "是一个奇数");
}
// 2、求两个数的最大数;
//方式1
var n = 10;
var m = 20;
var max;
if (n > m) {
max = n;
} else {
max = m;
}
console.log("最大数:" + max);
//方式2
var max = n > m ? n : m;
console.log("最大数:" + max);
// 3、判断一个年份是闰年还是平年;
//(1.能被4整除而不能被100整除.
//(如2004年就是闰年, 1800年不是.)
// 2.能被400整除.(如2000年是闰年))
//写法2
var year = 2018;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
console.log("闰年");
} else {
console.log("平年");
}
//写法2
var year = 2020;
var exp1 = year % 4 == 0 && year % 100 != 0;
var exp2 = year % 400 == 0
if (exp1 || exp2) {
console.log("闰年"); //闰年
} else {
console.log("平年");
}
6多分支语句
//语法
// if (表达式) {
// //业务逻辑
// } else if (表达式) {
// //业务逻辑
// } else if (表达式) {
// //业务逻辑
// } else {
// //业务逻辑
// }
var weakday = parseInt(Math.random() * 10) % 5 + 1
if (weakday == 1) {
console.log("10元上网必须配可乐 " + weakday);
} else if (weakday == 2) {
console.log("8元上网 " + weakday);
} else if (weakday == 3) {
console.log("5元上网+加5毛散烟 " + weakday);
} else if (weakday == 4) {
console.log("5元上网 " + weakday);
} else {
console.log("与同学合资 打散烟 " + weakday);
}
7嵌套
//语法
// if (表达式) {
// if (表达式) {
// if (表达式) {
// }
// } else {
// if (表达式) {
// }
// }
// }
//尽量减少if的嵌套,不方便维护,和理解
//能用单分支,优先用单分支处理
// 2个比较, 3种结果
//1.多分分支
var n = parseInt(Math.random() * 10);
var m = parseInt(Math.random() * 10);
console.log("n:" + n, "m:" + m);
if (n == m) {
console.log("相等");
} else if (n > m) {
console.log("n大于m");
} else {
console.log("n小于m");
}
//2.嵌套解决
//方式1
if (n == m) {
console.log("相等");
} else {
if (n > m) {
console.log("n大于m");
} else {
console.log("n小于m");
}
}
//方式2
if (n != m) {
if (n > m) {
console.log("n大于m");
} else {
console.log("n小于m");
}
} else {
console.log("相等");
}
8switch
//语法
// switch (表达式) {
// case 条件1:
// //逻辑代码
// break;// 中断,终止
// case 条件2:
// //逻辑代码
// break;// 中断,终止
// case 条件3:
// //逻辑代码
// break;// 中断,终止
// default:
// // 逻辑代码
// break;
// }
//switch 的比较属于恒等于,在某一个 case里必须加 break,防止穿透
//switch和case的值和类型都要一样,不然会报错;
//快乐的一周
var num = prompt("请输入1-7的数值");//prompt得到的是字符串
console.log(num);
switch (Number(num)) { //使用Number()方法,对num进行强制转换成数值类型
case 1:
console.log("周一有点困,");
break;
case 2:
console.log("周二,麻木");
break;
case 3:
console.log("周三,最难熬");
break;
case 4:
console.log("周四,希望时间快点");
break;
case 5:
console.log("周五,莫名其妙的兴奋,眼睛一致盯着外面");
break;
default:
console.log("浑浑噩噩的过了");
break;
}
var num =1;
console.log(num);
switch (num) {
case 1:
console.log("周一有点困,");
break;
case 2:
console.log("周二,麻木");
break;
case 3:
console.log("周三,最难熬");
break;
case 4:
console.log("周四,希望时间快点");
break;
case 5:
console.log("周五,莫名其妙的兴奋,眼睛一致盯着外面");
break;
default:
console.log("浑浑噩噩的过了");
break;
}