1. 循环

1.1 for循环

  1. for(var i = 0; i < 10; i++ ){
  2. console.log(i)
  3. }

抽象:for([initialization]; [condition]; [final-expression]) statement

执行顺序:

  1. 初始化变量 var i = 0;
  2. 判断 condition if(i < 10)
    1. true -> 执行 statement -> 执行 final-expression -> 开始下一轮循环
    2. false -> 结束循环

for循环 -> while循环:

  1. var i = 0;
  2. for(; i < 0; ) {
  3. console.log(i)
  4. i++;
  5. }
  6. while(i < 0) {
  7. console.log(i)
  8. i++;
  9. }
  10. var i= 100;
  11. for(; i--; ){
  12. console.log(i)
  13. }

死循环:循环条件始终满足

循环控制

  • break:跳出整个循环
  • continue:跳过此次循环

    1.2 while 循环

    while
    1. while(condition) {
    2. statement
    3. }
    do…while
    不管条件是否满足,一定会执行一次
    1. do {
    2. statement
    3. } while(condition)

1.3 例题

  1. 打印0-100的数,要求:

    1. ( )中只能有一句,不能写比较
    2. { }不能出现i++ i—
      1. var i = 100;
      2. for(; i--; ) {
      3. console.log(i);
      4. }
  2. m 的 n 次方 (n >= 0)

    1. function nthPower(m, n) {
    2. var res = 1;
    3. for(var i = 0; i < n; i++) {
    4. res *= m;
    5. }
    6. return res;
    7. }
  3. n 的阶乘 ( n>=0 )

    1. function factorial(n) {
    2. var res = 1;
    3. for(var i = 1; i <= n; i++) {
    4. res *= i;
    5. }
    6. return res;
    7. }
  4. 打印100以内的质数 ```javascript /**

    • n 大于1 的自然数 */ function isPrime(n) { let flag = true; for(var i = 2; i < n; i++) { if(n % i === 0) { flag = false; break; } } return flag; }

for(var i = 2; i <= 100; i++ ) { if(isPrime(i)) { console.log(i); } }

  1. 5. for循环求出第n位斐波那契数列
  2. - 方法一:使用数组存储每一位的斐波那契数列值
  3. ```javascript
  4. var fibArr = [0, 1];
  5. function fibonacci(n) {
  6. if (n >= fibArr.length) {
  7. for(var i = fibArr.length; i <= n; i++) {
  8. fibArr.push(fibArr[i-1] + fibArr[i-2])
  9. }
  10. }
  11. return fibArr[n];
  12. }
  13. export fibonacci
  • 方法二:普通计算
    1. function fibonacci(n) {
    2. var m2 = 0,
    3. m1 = 1,
    4. m = m1 + m2;
    5. if(n === 0) return m2;
    6. if(n === 1) return m1;
    7. for(var i = 2; i < n;i++) {
    8. m2 = m1;
    9. m1 = m;
    10. m = m1 + m2;
    11. }
    12. return m;
    13. }

    2. 引用值初始

    2.1 Array 数组

    1. var arr = [1, 2, 3, 4, 5, 6, 7];
    2. // 索引
    3. arr[5]
    4. // 赋值
    5. arr[3] = null;
    6. // 长度
    7. arr.length
    8. // 遍历
    9. for (var i = 0; i < arr.length; i++) {
    10. console.log(arr[i])
    11. arr[i] += 2;
    12. }

    2.2 Object 对象

    1. // 声明与赋值
    2. var mascot = {
    3. name: "墩墩",
    4. age: 1,
    5. weight: 200,
    6. height: 150,
    7. job: "Mascot of 2022 winter Olympic Games"
    8. }
    9. // 取值
    10. console.log(mascot.name)
    11. // 赋值
    12. mascot.name = "容融";