不用break continue; 输出10次

  1. var i = 1;
  2. for(;i;){
  3. console.log(i);
  4. i++;
  5. if(i==11){
  6. i = 0;
  7. }
  8. }

// 从0开始加 直至小于等于一百时 i的数

  1. var sum = 0;
  2. for(var i = 0;i<100;i++){
  3. sum +=i;
  4. if(sum>=100){
  5. break;
  6. }
  7. console.log(i,sum); //13 91
  8. }

输出 0-100

  1. //()只写一句<br /> // {} 不能写++ --

        var i = 101;
    for(;i--;){
        console.log(i);
    }

输出10的N次方

var n = 5,num=1;  //n:次方 num:要求的数的初始值
for(var i =0;i<n;i++){
    num*=10;
}
console.log(num);

输出N的阶乘

    var n =5,num=1;
    for(var i =1;i<=n;i++){
        num*=i;
    }
    console.log(num);

倒序输出三位数

    var num = 789,a,b,c,newnum;
        a =  num%10;
        b =  parseInt(num/10)%10;
        c =  parseInt(num/100);
        newnum = a*100+b*10+c;
    console.log(newnum);  // 789

拓展输入任意位数 倒序输出

ps:当数据的类型为String型时

    var newVal = '';
    var num = prompt("输入需要倒序的数","");
    var arr = num.split("");
    for(var i=arr.length-1;i>=0;i--){
        // console.log(arr[i]);
        newVal = newVal +arr[i];
    }
    console.log(parseInt(newVal));  
    console.log(Number(newVal));

ps:当数据为number型时

    var newVal = '';
    var num = 123;
        // num = num + "";
    num = String(num);
    //num = num.toString();
    var arr = num.split("");
    console.log(arr);
    for(var i=arr.length-1;i>=0;i--){
        // console.log(arr[i]);
        newVal = newVal +arr[i];
    }
    console.log(parseInt(newVal));
    console.log(Number(newVal));

总结
1.split方法用于把一个字符串分割成数组 故 3-5行 需先将数据的类型转换成String型
2.数值转字符的三种方法
a. value + “”; 隐式类型转换
b. String(value);
c.value.toString() 此方法当需转换的数据值为undefined null 会报错

待探究

3.parseInt 与 Number 的区别

待探究

输出三个数中最大的数

方法1:

    var  a=1,b=2,c=3;
    if(a>b){
       if(a>c){
           console.log(a);
       }else{
           console.log(c);
       }
    }else{
        if(b>c){
            console.log(b);
        }else{
            console.log(c);
        }
    }

方法二:显示便于理解

    var num1=1,num2=2,num=3;
    if (num1 > num2 && num1 > num3) {
      console.log(num1);
    } else if (num2 > num1 && num2 > num3) {
      console.log(num2);
    } else {
      console.log(num3);
    }

输出1-100以内的质数

方法1:

        var total = 0;  //计算器
        for(var i =2;i<100;i++){
            for(var j =1;j<=i;j++){
                if(i%j==0){
                    total++; //若能被1到它本身的任意一个整除 计数器累加1
                }
            }
            if(c==2){          //等于2的情况为 只能被1跟它自身整除的情况  质数
                console.log(i); 
            }
            total=0; //下一次循环前 计数器重置为0
        }

方法2:

        for(var i = 2; i<100;i++){
            var falg = true; //每次循环开始默认是质数
            for(var j = 2;j<i;j++){  //循坏开始去除1和它本身
                if(i%j==0){
                    falg = false;  //若能被整除 则不是质数
                    break;
                }
            }
            if(falg){
                console.log(i);
            }
        }

显示类型转换/隐式类型转换

显示类型转换

    var a = null;
    console.log(Number(a)); // 0

        var b = undefined;
    console.log(Number(b)); // NaN

        var c = 'a';
    console.log(Number(c)); // NaN

        parseInt(true)// NaN
        parseInt(null)// NaN
        parseInt(undefind)// NaN

四舍五入
    var num = parseFloat('3.1415926');
    console.log(num.toFixed(3));

布尔值为0的数
Boolean(null);
Boolean(undefined);
Boolean(NaN);
Boolean("");
Boolean(false);
Boolean(0);

可以改进的地方01:43:00的16进制的地方 可以讲讲位权展开与进制转换的换算方法

隐示类型转换

算术运算乘除减 * / - % 都会隐式的String - > Number; (字符转数字类型)

undefined null 既不大于0 也不小于0 也不等于0

image.png

isNaN

image.png

作业

菲波那契数列 计算出第N位

循环方法

    var a=1,b=1,c=1,n=7;  c不能省略初始化为1 因为如果为 第1 第2为都是1
    for(var i=3;i<=n;i++){
        c=a+b;
        a=b;
        b=c;
    }
    console.log(c); //输出第n项

递归方法

    var n=7;
    function fn(n){
        if(n==1||n==2){
            return 1;
        }else{
            return fn(n-1)+fn(n-2);
        }
    }
    console.log(fn(n));