<script>
//变量的交换
// var a=10;
// var b=30;
// var ls=a;
// a=b;
// b=ls;
// console.log(b);
// console.log(a);
//声明了但未赋值和变量的覆盖,如果存在相同的变量,则优先执行下面的变量的值
// var a;
// var b=20;
// var b=30;
// console.log(a);
// console.log(b);
// 关键字:var 声明变量 typeof 检测数据类型
//关系运算符:之间存在的隐式类型转换:
// 1算数运算符:+,-,*,/,%
// +:只要两边出现字符,就是字符的累加
// -,%,/,*:数值的运算
// 2关系运算符:<,<=,==,===,>,>=
// 除了===;其他的只要两边出现数值,就是数值的比较
// 只有当两边都是字符的时候,才逐位比较,
// ===:不存在隐式类型转换,因为她不仅比较数值,还会比较数据的类型
// 3逻辑运算符 && || ! :true和false为值
//4 赋值运算符=,+=,-=,8=,%=,++,--
// 与算数运算符一样
// 强制的类型转换:
// 1.字符转数值
// parseInt():想当于取一个整数,遇到字符就停止转换,不能识别小数点
// parseFloat();可以识别小数点,遇到除小数点以外的自读自动停止
//Number():严格转换,遇见除小数点以外的字符,立即NaN
// Math.round():严格转换,小数点以外的字符立即NaN,取最近的整数,有四舍五入的效果
// var a="123.45f8"
// var b="123.458"
// console.log(parseInt(a));
// //结果123
// console.log(parseFloat(a));
// //结果123.45
// console.log(Number(b));
// //结果123.458
// console.log(Math.round(b));
// //结果123
// 2,数值转字符
// num.toString():相当于加了个"",直接转成字符
// num.toFixed(n):可以识别小数点,n表示保留几位小数,可以四舍五入
// var num=123.456
// console.log(num.toString());
// console.log(num.toFixed(2));
// 什么是NaN:错误的数值运算或转换
// isNaN:判断是不是NaN的关键字,如果为true,说明数据的转换或者运算发生错误,得到NaN,如果为false,说明数据的转换和运算时正确的,不是NaN
// 在isNaN的小括号内会发生数据的隐式类型转换,自动转换为数值
// var a="ddd";
// var b="123"
// console.log(isNaN(a));
// //true
// console.log(isNaN(b));
// //flase
// 进制之间的转换:只有十进制是数值,其他进制都是字符
//1,十进制转其他进制,数值转字符
// var num=27;
// console.log(num.toString(2));
// //转二进制
// // 2,其他进制转十进制,字符转数值
// var a=100111;
// console.log(parseInt(a,2))
// //将a作为2进制转换成十进制
// 分支结构中的分支语句
// if(){
// }
// if()小括号内存在的隐式类型转换:if中存在的数据类型为布尔型,如果不是,隐式转换会自动转换为布尔型
// 1.数值,非0为true;
// 2.字符,非空位true;
// 3.数组,对象都是true;
// 4.函数,true;
// 5.undefined,NaN,null;为false
// var a;
// console.log(typeof a);
// console.log(a);
// console.log(undefined === a);
// //循环语句
// var i=2
// while(i<4){
// console.log("这是一个循环while语句");
// i++
// }
// while:语句名
// ()循环条件
// {}循环体
// while语句容易造成死循环:死循环:无法通过自身结束的循环
// var i=1;
// do{
// console.log("输出两次")
// i++;
// }
// while(i<3){
// console.log("输出")
// }
// do{}while(){}
// do:语句名1
// {}循环体1
// while:语句名2
// ()循环条件:当为true时执行循环体1,当为false时执行循环体2
// {}循环体2
//循环中的关键字:break:立即结束当前循环,从执行到break 后面的代码都不再执行
// continue:立即跳过本次循环,从执行到continue 后面的代码都不再执行
// for(){}
// for:语句名
// ()循环条件
// {}循环体
// demo:
// 1.计算1+2+3+...100
// var sum=0;
// for(var i=1;i<=100;i++){
// sum+=i;
// }
// console.log(sum);
// 2.计算1~100偶数的和
// var sum=0;
// for(var i=1;i<=100;i++){
// if(i%2==0){
// sum+=i;
// }
// }
// console.log(sum);
// 3.计算10的阶乘
// var a=1;
// for(var i=1;i<=10;i++){
// a*=i;
// }
// console.log(a);
// 4.计算100-999之间的水仙花数
for(i=100;i<=999;i++){
var a=parseInt(i/100);
var b=parseInt(i/10)%10;
var c=i%10;
if(a*a*a+b*b*b+c*c*c===i){
console.log(i);
}
}
// 难点:循环的嵌套
// demo:
// 1.计算10的阶乘的和
// var sum=0;
// for(var j=1;j<=3;j++){
// var a=1;
// for(var i=1;i<=j;i++){
// a*=i;
// }
// sum+=a;
// }
// console.log(sum);
// 2.打印一个三角形
// for(j=1;j<=10;j++){
// for(var i=1;i<=j;i++){
// document.write("*");
// }
// document.write("<br>")
// }
// 3.打印一个倒三角形
// for(j=1;j<=10;j++){
// for(var i=10;i>=j;i--){
// document.write("*");
// }
// document.write("<br>")
// }
// 4.打印一个9*9乘法表
// for(j=1;j<=9;j++){
// for(i=1;i<=j;i++){
// document.write(i+"*"+j+"="+i*j+" ");
// }
// document.write("<br>")
// }
//循环中的浮点数的精度问题:
// console.log(parseFloat(0.1+0.7));
// //结果:0.799999
// console.log(parseFloat(0.1+0.7).toFixed(1));
// //结果:0.8