知识点
```bash
// 1 计算圆的周长和面积:
// 周长 2πr 只需要知道半径,也就是需要两个变量---半径r + 周长c
var r = 40;
var c = 2 * 3.14 * r;
console.log(c)
c = c.toFixed(2);
console.log(c)
// 面积 πrr 只需要知道半径,也就是需要两个变量---面积s
var s = 3.14 * r * r;
var s = 3.14 * Math.pow(r,2);
s = s.toFixed(2);
console.log(s)
var res = Number(c) + Number(s);
console.log(res)
// 总结:浮点数在计算机中计算会出现精度溢出的问题,解决方案:to.fixed()
// 注意: num = Number(num.toFixed(2));
// 2 随机生成三位数,然后依次输出
// 思路:
// Math.random() 0-1 100-999
// 保证最小值是 100 随机数+100
// 保证最大值是 999 随机数 * 999 round才能取到999
// 随机数 * 900 + 100
var rand = Math.floor(Math.random() * 900) + 100;
var rand = Math.ceil(Math.random() * 899) + 100;
var rand = Math.round(Math.random() * 899) + 100;
// 712
// 取百位 rand模(余数)前一位(千)1000除以100 取整
// 十位 rand模(余数)前一位(百)100除以10 取整
// 个位 rand模(余数)前一位(十)10除以1 取整
var bai = Math.floor(rand % 1000 / 100);
var shi = parseInt(rand % 100 / 10);
var ge = rand % 10;
// 四位的随机数 1000 - 9999
var min = 1000;
var max = 9999;
var s = Math.round(Math.random() * (max - min)) + min;
console.log(s);
//
var h = parseInt(s / 3600);
var m = parseInt(s % 3600 / 60);
var ss = s % 60;
document.write(s + '秒转成' +h + '小时' + m + '分钟' +ss + '秒')
1.圆的面积和周长
2.精度溢出 toFixed() 但是这个精度溢出会把数字转为字符串!!!
3.随机四位数,个十百千求和
产生min-max之间的随机数
怎么取个十百千
4.秒转天小时分钟秒
5.布尔值转换为数字
console.log(1==true);
console.log(NaN==NaN);
console.log(null==undefined);
6.隐式转换
自动转为字符串 +
自动转为数字 - * / +(取正) - 取负
在if语句里面 都会自动转换为布尔值 5个flase
7. 赋值 = += *= /= %= 实际就是一个简写
8.自增自减 加加在前先自加 加加在后先运算后加1
9.比较运算 > >= < <= == === != !==
10.逻辑运算 ||(见真即真) &&(见假即假) !
11.if语句
if(表达式){
}
js三大流程控制语句
顺序语句
分支语句:if、if else、if else if else if else、
循环语句
//圆的半径80,求圆的面积和周长
var r = 80;
var pai = 3.14;
//圆的面积:πr²
var a = pai*Math.pow(r,2)*1;
document.write('圆的面积是:'+a+'<br />');
//圆的周长:2πr
var b = 2*pai*r;
// b = b.toFixed(2);
document.write('圆的周长是:'+b*1);
- 自增自减运算
//自增运算1 c++ ++c只有在赋值的时候才会有明显区别
var c = 7;
var res = c++ + ++c + 2 + c++ - c -- + --c
// 7 + 9 + 2 + 9 -10 + 8
// 8 9 10 9 8
console.log(c,res); // 8,25
var k = '12';
var result = k + k++ -k--;
// 12 + 12 -13 1212-13字符串拼接1212
// 13 12
document.write(result); //1199
隐式转换
//1.自动转字符串 +是字符串拼接
//数字跟字符串拼接
var a = 2;
var b = 'a'
console.log(a+b); //2a
//字符串跟字符串拼接
var a = '2';
var b = '2';
console.log(a+b);
//2.自动转数字
//-只有数字才具备 所以字符串自动转为数字
//除了+、%外 (-、*、/、取正值、取负值,字符串都可以隐式转为数字类型)
var aa ='2'
console.log(aa-0); //2
var aa1 ='2'
console.log(aa1/1);
//3.自动转布尔类型:if语句自动转为布尔类型, 除了5个false
页面弹框demo
<label for="">请输入三位数</label>
<input type="text" id="inp1">
<button id="btn">按钮</button>
<input type="text" id="inp2">
<!-- 1.点击 2.怎么获取输入框的值 3.计算 4.把值赋给后面的输入框 -->
btn.onclick = function () {
// alert(1) 测试有结果
// inp1.value获取输入框的值
var num = inp1.value;
//弹框可以输出num的值
alert(num);
var bai = parseInt(num/100);
var shi = parseInt(num%100/10);
var ge = num%10/1;
var res = bai+shi+ge;
// alert(res);
inp2.value=res;
随机产生4位数
var num = Math.floor(Math.random() * 9000) + 1000;
document.write(num + "这是四位整数" + "<br>");
var qian = Math.floor(num/1000);
document.write(qian + "这是千位数" + "<br>")
var bai = Math.floor(num % 1000 / 100);
document.write(bai + "这是百位数" + "<br>")
var shi = Math.floor(num%100/10);
document.write(shi + "这是十位数" + "<br>")
var ge = Math.floor(num%10/1);
document.write(ge + "这是个位数" + "<br>")
document.write(num);
比较运算
// 比较运算:> >= < <= == === != !== 值是布尔类型
var a = 3;
var b =5 ;
// =赋值的优先级很低
var boolean= a>b;
document.write(boolean);
/*
1.==是判断值是否相等 会把字符串b转化为数字b 再进行比较
2.===既要判断值 也要判断数据类型 全等
3.!= 不等于
4.!== 不全等
*/
if语句
//单分支if
//表达式值是布尔类型;值为True则执行 否则不执行
if(表达式){
}
// 例子
var a =5
var b =4
if(a>b) {
alert('小苏真帅')
}
//双分支if else
//可以取到100 随机产生2位数
var score = Math.round(Math.random()*100);
if (score>=60) {
alert('恭喜你及格了')
}else{
}
//多分支 if else-if else-if else
**
判断奇数偶数
**
var num2 = Math.round(Math.random()*100);
if(num%2== 0){
alert('偶数')
}else {
alert('奇数')
}
随机生成一个分数,判断 不及格 及格(60-70) 良好(70-80) 优秀80-90 666(90以上)
var num = Math.round(Math.random()*100);
document.write(num);
if(num<60) {
alert('不及格');
}else if (num>=60&&num<70) {
alert('及格');
}else if(num>=70&&num<80) {
alert('良好');
}else if (num>=80&&num<90) {
alert('优秀');
}else if (num>=90){
alert('666');
}
用户输入一个四位数的年份,判断是不是闰年。 闰年:能被4整除但是不能被100整除 或者 能被400整除的是闰年
var year = prompt('请输入一个年份');
if(year%4==0&&year%100!==0||year%400==0) {
alert('闰年');
}else {
alert('不是闰年')
}
*秒转为天小时分钟秒
// 最大值可以取到 9999;最小值最少是1000
//这里的ran设置为是秒
var ran =Math.floor( Math.random()*9000)+1000;
document.write('四位数是:'+ran+'<br />');
var day = Math.floor(ran/24/3600);
document.write('天数是:'+day+'<br />');
var hour = Math.floor(ran%(24*3600)/3600);
document.write('小时是'+hour+'<br />');
var min = Math.floor(ran%3600/60);
document.write('分钟是:'+min+'<br />');
var second = Math.floor(ran%60/1);
document.write('秒是:'+second);
思考题
//思考第一题:布尔值转为数字
var b = true;
console.log(1==true); //true
/*为什么结果是true,因为布尔类型系统默认情况下:true是1; flase是0*/
var b = true;
console.log(10==true); //false
/*当数字跟布尔类型比较时 布尔值自动转为true自动转为1*/
//思考第二题:
console.log(NaN==NaN); //false
/*为什么结果是false,因为NaN本身就不是一个数字,那么不是一个数字的和另外一个不是数字的,怎么会相等呢?*/
//思考第三题:
console.log(null==undefined); //true
/*因为==比较的是两个值是否相等,null是空,undefined是未定义,也是没有赋值。所以null==undefined是true*/
小结
1.圆的面积和周长
2.精度溢出 .toFixed()
3.随机四位数,个十百千求和
产生min-max之间的随机数
怎么取个十百千
4.秒转天小时分钟秒
5.布尔值转换为数字
console.log(1==true);
console.log(NaN==NaN);
console.log(null==undefined);
6.隐式转换
自动转为字符串 +
自动转为数字 - * / +(取正) - 取负
在if语句里面 都会自动转换为布尔值 5个flase
7. 赋值 = += *= /= %= 实际就是一个简写
8.自增自减 加加在前先自加 加加在后先运算后加1
9.比较运算 > >= < <= == === != !==
10.逻辑运算 ||(见真即真) &&(见假即假) !
11.if语句
if(表达式){
}
js三大流程控制语句
顺序语句
分支语句:if、if else、if else if else if else、
循环语句