一.进制
1.二进制 /八进制 /十进制/16进制等
2.进制间的转换
3
parseInt
a.取整 b.其他进制转10进制
toString()
a.转换字符串 b.10进制转其他进制
var n = 100001001; //2进制转10进制
console.log(parseInt(n, 2)); //265
var m = 11001101;
console.log(parseInt(m, 2)); //205
var n = 68;//10进制
console.log(n.toString(16)); //把10进制68转成18进制
console.log(n.toString(8)); //把10进制68转成8进制
console.log(n.toString(2)); //把10进制68转成2进制
//27 8进制--> 2进制
console.log( parseInt(27,8).toString(2)); //10111
二.运算符
运算符有哪些?
1.算术运算符 + , - ,* ,/ ,%
注意:算术运算符除了+,会产生隐式转换:把一个字符串的数值,变成了真正数值
强制转换 :Number(),Boolean(),parseInt(),parseFloat()
console.log("100" - 10);
console.log("100" / 10);
console.log("100" * 10);
console.log("100" % 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
var num2 = true || false; // num2 true-->1
var result = num1 * num2 + 3 // 2*1+3
document.write(result); //4 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);
console.log(6 === "6"); // 值相等,类型不相同,false
console.log(6 != 5);
console.log(6 !== 5); true
注意
//关系运算符1
// 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
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 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 >> 3 == 0;
// 2--> "10"
// " 10"
// " 00"10
// 2 << 3 == 8;
三.三大流程语句
程序有3大流程语句
1. 顺序 从上往下执行
2. 分支 (单分支,双分支,多分支)
3. 循环 (for,while, do..while)
单分支的语法
//语法
//if(表达式){
// 逻辑代码
//}
if (1 == 2) {
console.log(1111111);
}
console.log(2222222);
双分支语法
//语法
// if (表达式) {
//逻辑
// } else {
//逻辑
// }
// 1、判断一个数是偶数还是奇数;
//随机声明一个
//Math.random() 0-1直接的值,不包含1
var num = parseInt(Math.random() * 10);
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("平年");
}
多分支语法
//语法
// 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);
}
IF多分支语法
//1.
var y; //声明一个变量,undefined
var x = 20
if (x < 1) {
y = x;//把x的值 赋给y
} else if (x >= 1 && x < 10) {
y = 2 * x + 1
} else {
y = 5 * x - 17
}
console.log(y);
//2.
// 成绩判定
// 大于85 优秀
// 大于等于75小于等于85 良好
// 大于等于60小于75 及格
// 小于60 不及格
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("不挂科的大学,不完整!");
}
IF嵌套
尽量减少if的嵌套,不方便维护,和理解
能用单分支,优先用单分支处理
//语法
// if (表达式) {
// if (表达式) {
// if (表达式) {
// }
// } else {
// 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("相等");
}
switch
//语法
// switch (表达式) {
// case 条件1:
// //逻辑代码
// break;// 中断,终止
// case 条件2:
// //逻辑代码
// break;// 中断,终止
// case 条件3:
// //逻辑代码
// break;// 中断,终止
// default:
// // 逻辑代码
// break;
// }
//switch 的比较属于恒等于,在某一个 case里必须加 break,防止穿透
//快乐的一周
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;
}