总结一周:变量,数据类型,循环,函数

本文详细介绍了JavaScript的基础知识,包括变量的定义与赋值、数据类型(数值、字符串、布尔、null、undefined)及其转换、运算符(数学、比较、逻辑、自增自减)的用法。此外,还讲解了条件判断(if、if...else、三元运算符、switch)和循环结构(while、do...while、for)。
摘要由CSDN通过智能技术生成

变量

  • 变量指的是在程序中保存数据类型的一个容器
  • 是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中的存储数据
  • 语法: var 变量名=值;

定义变量及赋值

 //定义一个变量
        var num;
        //给变量赋值
        num= 100;
        //定义一个变量的同时给其赋值
        var num2=190;
  • 注意:
  1. 一个变量名只能存储一个值
  2. 当再次给一个变量赋值的时候,前面的值就被覆盖了
  3. 变量名区分大小写(js严格区分大小写)

变量名的命名规则和命名规范

  • 规则:必须遵守,不遵守就是错
  1. 一个变量名可以由数字,下划线,字母,$,组成
  2. 严格区分大小写
  3. 不能由数字开头
  4. 不能是保留字或者关键字
  5. 不要出现空格
  • 规范:建议遵守,不遵守会报错
  1. 变量名尽量有意义(语义化)
  2. 遵循驼峰命名规则,由多个单词组成的时候,从第二个首字母开始大写
  3. 不要使用中文

数据类型

数据类型分为基本数据类型和复杂数据类型

基本数据类型

  1. 数值类型

         /* 100
              100.3
              科学计数  100e5 
              进制(二进制0b,八进制0o,十六进制0x)
          补充知识点:十进制:0~9  二进制:0~1 0b101 八进制:0~7 0o 0o77 十六进制 0~9 a~f a11 b12 c13 d14 f15 
          
              正无穷 infinite
              负无穷
              NaN
          */
    
    
    1. 字符串型
    • 被引号包裹的所有内容(可以是单引号也可以是双引号)
     console.log("hell'o' word");
     
     console.log(`haha
             hehe`) 
    //  最终会输出两个 这里的回车键原样显示
    
             var age = 18 
            console.log(`我今年 ${age}`) 
    
    // 反单引号中  原样显示   换行会原样显示, 可以解析变量  如果想解析变量 就要 在变量外边加上 ${}
    
    
    1. 布尔类型(boolean)

      • 只有两个(true 或者 false
        //布尔值一定全是小写,必须是小写
             var yes=true;
             console.log(yes);
      
      
    2. null类型(null)

      • 只有一个,就是 null,表示空的意思,先预留位置
     //null 表示空,什么都没有 先预留着位置
           var test=null;//null 是个关键字
           console.log(test);
           
    
    1. undefined类型(undefined)

    ​ 仅仅声明,但是没有赋值

           //underfined  仅仅声明,但是没有赋值
           var test;
           console.log(test);
    

    判断数据类型

    • 用typeof 关键字来进行判断

    有两种方法

    // 第一种使用方式
    var n1 = 100;
    console.log(typeof n1);
    
    // 第二种使用方式
    var s1 = 'abcdefg';
    console.log(typeof(s1));
    

    练习

     var test = 0xabc;//数值型
            console.log(typeof test);
            var test = 'hahahah ';//字符串型
            console.log(typeof test);
            var test = true;//布尔型
            console.log(typeof test);
            var test2;
            console.log(typeof test2);
            var test1 = null;//null 是object 的一个特殊类型
            console.log(test1);
    //typeof 是系统提供的一个工具
    //只有数据类型,没有变量类型
    //返回的两个number是什么类型 再加一个typeof 返回的结果一定是string类型
    console.log (typeof 10 + 100)// 只要加号两边有字符型 他们就会拼接在一起, 就会连在一起(结果:number100) 
    

    判断一个变量是不是数字

    • 可以使用 isNaN 这个方法来判断一个变量是不是数字
    • isNaNis not a number
    // 如果变量是一个数字
    var n1 = 100;
    console.log(isNaN(n1)); //=> false
    
    // 如果变量不是一个数字
    var s1 = 'Jack'
    console.log(isNaN(s1)); //=> true
    

数据类型的转换

  • 数据类型之间的转换,数值转成字符串,字符串转成布尔,布尔转成数字型

其他数据类型转成数值

number(变量)

可以把一个变量强制转换成数值类型

可以转换小数,会保留小数

可以转换布尔值

遇到不可转换的都会返回 NaN

 //number
        //转换的内容看成一个整体处理
        //如果可以转成一个合法的数值, 则转成数字
        //如果不能转成一个合法的数字,则转成NaN
        //true->1  false->0
        var num1 = 'abc123';
        console.log(num1);

        var num2 = Number(num1)
        console.log(typeof (num2))
        console.log(num2);//无法装成合法数值,就出现nan
        console.log(Number(true));

        var test;
        console.log(Number(test));//nan
        console.log(Number(null));//0
  1. parseInt(整型)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,那么直接返回 NaN

不认识小数点,只能保留整数

 //整形parseInt()
        //不管转成什么,都是一位一位对待
        //如果第一位不能转成合法数值,那么立马输出nan 然后停止转换
        //如果第一位能转成合法数字  那么保留第一位 然后继续看第二位
        //以此类推直到结束
        //true->NaN  flase->NaN
        //不认小数点

        var num3 = '123abc';
        console.log(parseInt(num3));
        console.log(parseInt(num3,16));//告诉转换器是一个16进制的数字,所以最总结果是转成10进制
        console.log(parseInt('1010101'));//1010101
        console.log(parseInt('1010101',2));//2转10进制  85
        console.log(parseInt('123.45'));//小数点识别不了,不知道转成那个数字,所以停止 ,输出123
        console.log(parseInt(true));//nan
        console.log(parseInt(NULL));//NAN
        var test;
        console.log(parseInt(test));//nan
  1. parseFloat(浮点型)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,那么直接返回 NaN

认识一次小数点

//parseFloat()浮点型
        // 也是以为一位的对待  同parseInt 
        // 如果第一位不能转成合法的值 那么就立马输出 NaN 然后停止转换 
        // 如果第一位可以转换 那么保留第一位 继续下一位  
        // 识别小数点

        var test = '123.45';
        console.log(parseFloat(test));// 123.45
        console.log(parseFloat('123.45abc'));// 123.45
        console.log(parseFloat('abc123.45'));// 123.45
        var test;
        console.log(parseFloat(test));// NaN
        console.log(parseFloat(null));

  1. +

    运算符两边都是可运算数字才

    如果运算符任何一边不是一个可运算数字,那么就会返回 NaN(字符串)

    加法不可以用

    //+  除了相加 还有拼接的作用
            console.log(typeof (1 + 1 + 'abc'));
            //只要两边有以一个字符串,那麽就是拼接
            //从左往右运算2+'abc' 2abc
            console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
    

    其他数据转成字符串

    1. 变量.toString()

      有一些数据类型不能使用 toString() 方法,比如 undefinednull

       //toString()
              //变量.tostring()
              //数据.tostring()
              //不能转null 和 undefined
              console.log(typeof test.toString());
              console.log(typeof 100e5.toString());
              console.log(typeof 123.45.toString());
              //console.log(typeof null.toString());//不可以转会报错
              var test1 = true;
              console.log(typeof test1.toString());
              var test3;
              //console.log(typeof test3.toString());//不可以转会报错
      
    2. String(变量)

      所有数据类型都可以

       var test = 100;
              console.log(typeof test);
              //string()
              //任何类型都可以使用这个转成字符串
              //原样显示
              var y1;
              console.log(String(y1));
      
    3. 使用加法运算

      在 JS 里面,+ 由两个含义

      字符串拼接: 只要 + 任意一边是字符串,就会进行字符串拼接

      加法运算:只有 + 两边都是数字的时候,才会进行数学运算

        //+  除了相加 还有拼接的作用
              console.log(typeof (1 + 1 + 'abc'));
              //只要两边有以一个字符串,那麽就是拼接
              //从左往右运算2+'abc' 2abc
              console.log(typeof ('abc' + 1 + 1));//abc11 开始就见到字符串 后边全是拼接
      

      其他数据转成布尔

      1. Boolean(变量)

        在 js 中,只有 ''0nullundefinedNaN,这些是 false

        其余都是 true

         // 数值 整数 浮点数 科学计数  非数字NaN 0 0.0
                    // 字符串 "adsf"  'adf'  `adf`   ''  ""
                    // 布尔 true false
                    // null undefined
                    // 复杂数据类型  
                    // function
        
                    console.log(Boolean(0))
                    console.log(Boolean(0.0))
        
                    console.log(Boolean('abc'/123))
        
        
                    console.log(Boolean(''))
                    console.log(Boolean(""))
        
                    console.log(Boolean(true))
                    console.log(Boolean(false))
        
                    console.log(Boolean(null))
                    var test;
                    console.log(Boolean(test)
                    console.log(Boolean(-9999999999e88888888888))
        
                    // 0 0.0 NaN ""  ''  false  null undefined
                    //  复杂数据类型 引用类型中 如果是空的  结果一定是false 
        
                    // 重点  后边判断  逻辑运算 都会用到  
        
                    // 转字符串  转数值 转 布尔 上面的都是 明着转换   
                    // 后边知识点 很多隐式转换   
        
                    // 负无穷 是true 
        

运算符

  • 就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js 里面还有很多的运算方式

数学运算符

  1. +

    只有符号两边都是数字的时候才会进行加法运算

    只要符号任意一边是字符串类型,就会进行字符串拼接

     //  +  
            //  求和 两边都是数值 或者 布尔
            //  拼接 只要两边有一个是字符串  那么+ 充当拼接的功能
            console.log(1+2) // 3
             console.log(true+false) // 隐式转换  true 1  false 0  结果 1
            console.log(1+1+'abc') // 2abc
            console.log('abc'+'def'+1+2+4)
    
    
  2. -

    会执行减法运算

    会自动把两边都转换成数字进行运算

       // - 
             console.log(100-123) // -23
            console.log('abc'-123)// NaN
             console.log(true-false) //1
    
  3. *

    会执行乘法运算

    会自动把两边都转换成数字进行运算

      //*
            console.log(100/50) //2 
            console.log(100/0) // Infinity   分母为0 返回正无穷
    
     // ** 平方
            console.log(2**3) // 8
    
  4. /

    会执行除法运算

    会自动把两边都转换成数字进行运算

    
    
  5. %

    会执行取余运算

    会自动把两边都转换成数字进行运算

    // % 
            console.log(100%3);//1
    

练习

  //16789秒
        var time=16789;
        //分钟
      min=parseInt(time%3600/60);//分钟
      hour=parseInt(time/3600);//小时
      s=parseInt(time%60);//秒
      console.log('16789秒是'+hour+"小时,"+min+'分钟'+s+'秒')

        //提取百位 十位 个位
       // 895
       var num=895;
       bai=parseInt(num/100);
       shi=parseInt(num%100/10);
       ge=parseInt(num%10);
       console.log('895的百位数是'+bai ,'895的十位数是'+shi,'895的个位数是'+ge);

赋值运算符

  1. =

    就是把 = 右边的赋值给等号左边的变量名

    var num = 100

    就是把 100 赋值给 num 变量

    那么 num 变量的值就是 100

  2. +=

    var a = 10;
    a += 10;
    console.log(a); //=> 20
    

    a += 10 等价于 a = a + 10

  3. -=

    var a = 10;

    a -= 10;
    console.log(a); //=> 0
    

    a -= 10 等价于 a = a - 10

  4. *=

    var a = 10;
    a *= 10;
    console.log(a); //=> 100
    

    a *= 10 等价于 a = a * 10

  5. /+

    var a = 10;
    a /= 10;
    console.log(a); //=> 1
    

    a /= 10 等价于 a = a / 10

  6. %=

    var a = 10;
    a %= 10;
    console.log(a); //=> 0
    

    a %= 10 等价于 a = a % 10

比较运算符

判断两个数据类型是否一致(补充)

//objiect.is(数据1,数据2)
        //判断两个数据是否一致  返回的是一个布尔类型的结果
        //一致为true 不一致为false
        alert(Object.is(1,'1'))//false
        alert(Object.is(1,1))//true

        alert(null==undefined)//true
                           alert(Object.is(null,undefined));//false
        alert(Object.is(NaN,NaN))//true
  1. ==

    • 比较符号两边的值是否相等,不管数据类型 >

      1 == '1'

      两个的值是一样的,所以得到 true

  2. ===

    • 比较符号两边的值和数据类型是否都相等 >

      1 === '1'

      两个值虽然一样,但是因为数据类型不一样,所以得到 false

            console.log(1==1)// true
      
            console.log('1'==1) // true 
      
           // // 两个= 仅仅是判断值是否相等 不判断类型 
      
            console.log('1'===1) // false  === 判断值和类型是否都相等  
      
           // = 赋值  
      
           // == 值是否相等 (只判断值,不判断类型)
      
           // === 值和类型是否都相等 
      
            console.log(NaN == NaN)
            console.log(undefined == null) // true 
            // undefined 派生自 null  
            console.log(undefined === null) // false  因为类型不一致 
      
           console.log(1 == true) // true
      
           console.log(1 === true) // false 因为类型不一致 
      
  3. !=

    • 比较符号两边的值是否不等 >

      1 != '1'

      因为两边的值是相等的,所以比较他们不等的时候得到 false

  4. !==

    • 比较符号两边的数据类型和值是否不等 >

      1 !== '1'

      因为两边的数据类型确实不一样,所以得到 true

           // console.log(1!='2') //判断值是否不相等 如果不相等 true 否则 false
      
           // console.log(1!=='2')// 判断值和类型是否都不相等  是 返回给true 否则 false 
      
  5. >=

    • 比较左边的值是否

      大于或等于

      右边的值 >

      1 >= 1 结果是 true

      1 >= 0 结果是 true

      1 >= 2 结果是 false

  6. <=

    • 比较左边的值是否

      小于或等于

      右边的值 >

      1 <= 2 结果是 true

      1 <= 1 结果是 true

      1 <= 0 结果是 false

  7. >

    • 比较左边的值是否

      大于

      右边的值 >

      1 > 0 结果是 true

      1 > 1 结果是 false

      1 > 2 结果是 false

  8. <

    • 比较左边的值是否

      小于

      右边的值 >

      1 < 2 结果是 true

      1 < 1 结果是 false

      1 < 0 结果是 false

逻辑运算符

优先级:非 与 或

  1. &&

    • 进行 且 的运算 >

      符号左边必须为 true 并且右边也是 true,才会返回 true

      只要有一边不是 true,那么就会返回 false

      true && true 结果是 true

      true && false 结果是 false

      false && true 结果是 false

      false && false 结果是 false

      // 逻辑运算符的结果 不一定是布尔类型,会输出原结果
               // 逻辑与       &&   两边都是true  结果才是true 
               // 两边只要有一个是false 整个结果就是false 
              var test= true && true && true && false && true 
              console.log(test) // false
              var test1= true && true && true && true && true 
              console.log(test1) // true
              var test5= true && true && true && false && true  // 遇到false 停止向右走
              console.log(test5) // false
      
              var test4 = 'abc' && 123 && true && [1,2,3,'haha',true] && 123.45;
              console.log(test4);//123.45
      
              // 遇到false 停止向右 
              var test6 = 'haha' && 123 && '' && 0 && 0.0 & 100
              console.log(test6) // 0 
      
      
      
    
  2. ||

    • 进行 或 的运算 >

      符号的左边为 true 或者右边为 true,都会返回 true

      只有两边都是 false 的时候才会返回 false

      true || true 结果是 true

      true || false 结果是 true

      false || true 结果是 true

      false || false 结果是 false

       // 逻辑或    ||   两边只要有一个是true  整个结果就是true 
               //  两边都是false  整个结果就是false 
              var test2 = true || false || false || true 
              console.log(test2) // true
              var test3 = false || false || false || false
              console.log(test3) // false 
      
              // 遇到true 停止向右判断 
              var test7 = 100 || 0 && 0.0 && NaN
              console.log(test7) // 100 
      
      
  3. !

    • 进行 取反 运算 >

      本身是 true 的,会变成 false

      本身是 false 的,会变成 true

      !true 结果是 false

      !false 结果是 true

       // 逻辑非  !  true-> false  false-> true  
               console.log(!true) //false 
               console.log(!100)  // false
      

练习

 var year = 2000
        // (能被4整除 && 并且不能被100整除)   或者 || ( 能被400整除)
        console.log((year%4==0 && year % 100 !=0) || year % 400 ==0)
        // 身高m  体重 kg  
        // 体重kg / 身高m的平方 如果在 大于等于18.5 小于等于24.9 
        var kg = 1.65;
        m = 60;
        y = (m / (kg ** 2)) >= 18.5 && ((m / (kg ** 2)) <= 24.5);
        console.log(y);

拆分百位数

  // //拆分百位数
        var t = parseInt(origin / 1000); // 千位 
        console.log(parseInt(origin % 1000 / 100)); // 2
        console.log(parseInt((origin-t*1000)/100)); // 2

        var h = parseInt((origin-t*1000)/100); // 
        // //拆分十位数
         var ten = parseInt(origin %100 / 10); // 千位
         var ten =parseInt((origin-t*1000-h*100)/10); // 千位
        console.log(ten); // 3
        // //拆个位 
         var one = origin % 10; // 个位
         console.log(one); // 

单位换算

 var origin = 1234567;


        var day = parseInt(origin / (60*60*24)); // 天

        var hours = parseInt(origin % (60*60*24) / (60*60)); // 小时

        var minutes = parseInt(origin % (60*60) / 60); // 分钟
        
        var seconds = parseInt(origin % 60); // 秒


        console.log(day+'天'+hours+'小时'+minutes+'分钟'+seconds+'秒');

        console.log(`${day}${hours}小时${minutes}分钟${seconds}`);

四舍五入保留小数

/* 1. 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。
      - 它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
      - 提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数    
         100.45678.toFixed(2);  => 100.46 会四舍五入*/


        var fah=80;
        cel=parseFloat(5/9.0*(fah-32)).toFixed(2);//方法一:使用函数
        console.log('华氏摄氏为:'+fah,"摄氏度为:"+ cel);
        var num3 = 'abc';
        console.log(Number(num3));//NaN
        // console.log(('abc' + '123'));



方法小结:
var sheshi = 5/9.0*(huashi-32)  // 123.456789
parseInt(sheshi*1000)/1000  //不考虑四舍五入的情况

var num = 1234567 % 10 = 7 
if(num>=5){
	console.log(parseInt(shezhi*1000+1)/1000)
}   // 考虑四舍五入 

console.log(sheshi.toFixed(3))     // 使用系统系统的方法实现 

自增自减运算符(一元运算符)

  1. ++

    • 进行自增运算

    • 分成两种,前置++后置++

    • 前置++,会先把值自动 +1,在返回

      var a = 10;
      console.log(++a);
      // 会返回 11,并且把 a 的值变成 11
      
    • 后置++,会先把值返回,在自动+1

      var a = 10;
      console.log(a++);
      // 会返回 10,然后把 a 的值变成 11
      

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SzU8oj8z-1660984205757)(C:\Users\hp\Desktop\JN-课上笔记\JS上课资料\QQ图片20220816165743.png)]

  2. --

    • 进行自减运算
    • 分成两种,前置–后置–
    • ++ 运算符道理一样

练习

   var n= 5 
        var res = n++ + ++n + ++n + n++
        // 5 + 7 +8+8 
        console.log(res)
        console.log(n)//n=9
        var res2 = n++ + ++n + --n + n-- - --n+ ++n 
        // res2 =9 +11+10+10-8+9
        // n    =10 11 10  9 8 9

IF 条件分支结构(重点)

if 语句

  • 通过一个 if 语句来决定代码是否执行

  • 语法: if (条件) { 要执行的代码 }

  • 通过 () 里面的条件是否成立来决定 {} 里面的代码是否执行

    // 条件为 true 的时候执行 {} 里面的代码
    if (true) {
      alert('因为条件是 true,我会执行')
    }
    // 条件为 false 的时候不执行 {} 里面的代码
    if (false) {
        alert('因为条件是 false,我不会执行')    
    }
    

if else 语句

  • 通过 if 条件来决定,执行哪一个 {} 里面的代码

  • 语法: if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }

  • 两个 {} 内的代码一定有一个会执行

    // 条件为 true 的时候,会执行 if 后面的 {} 
    if (true) {
      alert('因为条件是 true,我会执行')
    } else {
      alert('因为条件是 true,我不会执行')
    }
    
    // 条件为 false 的时候,会执行 else 后面的 {}
    if (false) {
      alert('因为条件为 false,我不会执行')
    } else {
      alert('因为条件为 false,我会执行')
    }
    

三元运算(扩展)

  • 三元运算,就是用 两个符号 组成一个语句

  • 三元运算只是对 if else 语句的一个简写形式

  • 语法: 条件 ? 条件为 true 的时候执行 : 条件为 false 的时候执行

    var age = 18;
    age >= 18 ? alert('已经成年') : alert('没有成年')
    

SWITCH 条件分支结构(重点)

  • 也是条件判断语句的一种

  • 是对于某一个变量的判断

  • 语法:

    switch (要判断的变量) {
      case 情况1:
            //case:后边可以加数字或者是字符串
        情况1要执行的代码
        break;//阻断程序往下执行,如果不写 就会继续穿透到下一结果/情况
      case 情况2:
        情况2要执行的代码
        break
      case 情况3:
        情况3要执行的代码
        break
      default:
        上述情况都不满足的时候执行的代码
    }
    
    • 要判断某一个变量 等于 某一个值得时候使用
  • 例子🌰: 根据变量给出的数字显示是每个月几天

var month = parseInt(prompt('请输入月份'));
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                alert("这个月是31天");
                break;

            case 2:
                alert('这个月是28天');
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                alert('这个月是30天');
                break;
            default:
                alert('请输入正确月份')
        }

循环结构(重点)

  • 循环结构,就是根据某些给出的条件,重复的执行同一段代码
  • 循环必须要有某些固定的内容组成
    1. 初始化
    2. 条件判断
    3. 要执行的代码
    4. 自身改变

WHILE 循环

  • while,中文叫 当…时,其实就是当条件满足时就执行代码,一旦不满足了就不执行了

  • 语法 while (条件) { 满足条件就执行 }

  • 因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了

    // 1. 初始化条件
    var num = 0;
    // 2. 条件判断
    while (num < 10) {
      // 3. 要执行的代码
      console.log('当前的 num 的值是 ' + num)
      // 4. 自身改变
      num = num + 1
    }
    
    • 如果没有自身改变,那么就会一直循环不停了

DO WHILE 循环

  • 是一个和 while 循环类似的循环

  • while 会先进行条件判断,满足就执行,不满足直接就不执行了

  • 但是 do while 循环是,先不管条件,先执行一回,然后在开始进行条件判断

  • 语法: do { 要执行的代码 } while (条件)

    // 下面这个代码,条件一开始就不满足,但是依旧会执行一次 do 后面 {} 内部的代码
    var num = 10
    do {
      console.log('我执行了一次')
      num = num + 1
    } while (num < 10)
    

do while 与 while的区别

当初始化一个变量时,如果在循环外面,do while 会执行一次代码

while不会执行

    var n=0;
        do{
            console.log(`围着操场跑了${n}`);
            n++;
        }while(n<0);
//围着操场跑了0圈

    while(n<0){
            console.log(`围着操场跑了${n}`);
            n++;
       }//程序不会执行

FOR 循环

  • whiledo while 循环都不太一样的一种循环结构

  • 道理是和其他两种一样的,都是循环执行代码的

  • 语法: for (var i = 0; i < 10; i++) { 要执行的代码 }

    // 把初始化,条件判断,自身改变,写在了一起
    for (var i = 1; i <= 10; i++) {
      // 这里写的是要执行的代码
      console.log(i)
    }
    
    // 控制台会依次输出 1 ~ 10
    
  • 这个只是看起来不太舒服,但是用起来比较好用

 for(var n=1; n<=100;n++){
            console.log(n);//把1-100打印出来
            sum+=n;//求和
            if(){
                //求其他的条件
            }
        }
        console.log(sum);//打印和


九九乘法表

     
        //5行5列,矩形
        for (var n=1;n<=5 ;n++){
            for(m=1;m<=5;m++){
                document.write(n);

            }
            document.write('<br/>');
        }

//直角三角形
        for (var n=1;n<=9 ;n++){
            for(m=1;m<=n;m++)//每一列要参照行数来定,所以列数小于行数
            {
                document.write(`${n}*${m}=`+n*m+'&nbsp;&nbsp;');//每一列

            }
            document.write('<br/>');//每一行换行,不加会变成一行
           
        }

BREAK 终止循环

  • 在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环

  • 比如:我要吃五个包子,吃到三个的时候,不能在吃了,我就停止吃包子这个事情

  • 要终止循环,就可以直接使用 break 关键字

    for (var i = 1; i <= 5; i++) {
      // 没循环一次,吃一个包子
      console.log('我吃了一个包子')
      // 当 i 的值为 3 的时候,条件为 true,执行 {} 里面的代码终止循环
      // 循环就不会继续向下执行了,也就没有 4 和 5 了
      if (i === 3) {
        break
      }
    }
    

CONTINUE 结束本次循环

  • 在循环中,把循环的本次跳过去,继续执行后续的循环

  • 比如:吃五个包子,到第三个的时候,第三个掉地下了,不吃了,跳过第三个,继续吃第四个和第五个

  • 跳过本次循环,就可以使用 continue 关键字

    for (var i = 1; i <= 5; i++) {
      // 当 i 的值为 3 的时候,执行 {} 里面的代码
      // {} 里面有 continue,那么本次循环后面的代码就都不执行了
      // 自动算作 i 为 3 的这一次结束了,去继续执行 i = 4 的那次循环了
      if (i === 3) {
        console.log('这个是第三个包子,掉地下了,我不吃了')
        continue
      }
      console.log('我吃了一个包子')
    }
    

函数(上)

  • 我们代码里面所说的函数和我们上学的时候学习的什么三角函数、二次函数之类的不是一个东西

函数的概念

  • 对于 js 来说,函数就是把任意一段代码放在一个 盒子 里面

  • 在我想要让这段代码执行的时候,直接执行这个 盒子 里面的代码就行

  • 先看一段代码

    // 这个是我们以前写的一段代码
    for (var i = 0; i < 10; i++) {
      console.log(i)
    }
    
    // 函数,这个 {} 就是那个 “盒子”
    function fn() {
      // 这个函数我们以前写的代码
      for (var i = 0; i < 10; i++) {
        console.log(i)
      }
    }
    

函数的两个阶段(重点)

  • 按照我们刚才的说法,两个阶段就是 放在盒子里面让盒子里面的代码执行

函数定义阶段

  • 定义阶段就是我们把代码 放在盒子里面
  • 我们就要学习怎么 放进去,也就是书写一个函数
  • 我们有两种定义方式 声明式赋值式
声明式
  • 使用 function 这个关键字来声明一个函数

  • 语法:

    function fn() {
      // 一段代码
    }
    // function: 声明函数的关键字,表示接下来是一个函数了
    // fn: 函数的名字,我们自己定义的(遵循变量名的命名规则和命名规范)
    // (): 必须写,是用来放参数的位置(一会我们再聊)
    // {}: 就是我们用来放一段代码的位置(也就是我们刚才说的 “盒子”)
    
赋值式
  • 首先使用 var 定义一个变量,把一个函数当作值直接赋值给这个变量就可以了

  • 语法:

    var fn = function () {
      // 一段代码
    }
    // 不需要在 function 后面书写函数的名字了,因为在前面已经有了
    

函数调用阶段

  • 就是让 盒子里面 的代码执行一下
  • 让函数执行
  • 两种定义函数的方式不同,但是调用函数的方式都以一样的
调用一个函数
  • 函数调用就是直接写 函数名() 就可以了

    // 声明式函数
    function fn() {
      console.log('我是 fn 函数')
    }
    
    // 调用函数
    fn()
    
    // 赋值式函数
    var fn2 = function () {
      console.log('我是 fn2 函数')
    }
    
    // 调用函数
    fn()
    
    • 注意: 定义完一个函数以后,如果没有函数调用,那么写在 {} 里面的代码没有意义,只有调用以后才会执行
调用上的区别
  • 虽然两种定义方式的调用都是一样的,但是还是有一些区别的

  • 声明式函数: 调用可以在 定义之前或者定义之后

    // 可以调用
    fn()
    
    // 声明式函数
    function fn() {
      console.log('我是 fn 函数')
    }
    
    // 可以调用
    fn()
    
  • 赋值式函数: 调用只能在 定义之后

    // 会报错
    fn()
    
    // 赋值式函数
    var fn = function () {
      console.log('我是 fn 函数')
    }
    
    // 可以调用
    fn()
    

判断一个数是不是质数

  var n = parseInt(prompt('请输入一个数字'));
        function fun(n) {
            //对100-200进行过滤,任何数字都能被1和本身整除
            //以100为例:如果2-99里有一个数可以被100整除,那么100就不是质数
            var flag = true;//假如是质数,是真的
            for (var m = 2; m < n; m++) {
                if (n % m == 0) {
                    flag = false;
                    return "不是质数";//只是把结果给到你,输出的话需要加alert
                }
            }
            if (flag) {
                return '是质数'
            }    
        }
        alert(fun(n));

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值