2022-07-11 第七小组 wly JS学习笔记

Javascript(JS)

JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。依赖于某种容器来运行,它是由浏览器来解释执行。JS是运行在浏览器上的,可以帮助我们去控制页面,去实现丰富的功能。Vue.js   react.js  jquery.js  angular.js是js的框架。Node.js是前端的服务器语言。

编程语言的分类:

  1. 解释型:js、python
  2. 编译型:c++、c#
  3. 半解释半编译:java

一、JS的引入,应该写在什么位置?

因为js是脚本语言,无论放哪里,浏览器js解释器都能解析。为了规范不成文的规定是js放在:<body>......</body>中间

<body>
    <script>
        // js代码区
    </script>
</body>

也可以写在<head>....</head>中间,但不建议这么做

Js尽量使用外部样式(引入外部),但是有些js必须在html中写。

<body>
    <script src="">  //引入外部的js,src=""填写js文件地址
        // js代码区
    </script>
</body>

二、JS的数据类型

(1)Js的简单数据类型:

1、数字(number) :整数,正数,小数,负数

2、字符串(string) : a,中文,@

3、布尔型(boolean) :_ true (1) false (0)

4、空(null) :相当于声明了值为空

5、undefined: 未定义,没有值

6、字面量:开发中尽量减少使用字面量,因为后期有维护困难的问题。

<body>
      <script>
        /*此处可以写js*/  
        // 变量
        // number类型
        var v1 =11;
        // 字符串类型
        // 加引号会把变量变成字面量
        var v2 ='你好';
        // 布尔类型
        var v3 =true;
        // 空
        var v4 =null;
        // undefined(未赋值)
        var v5;
      // 字面量
         alert(v1);/*弹窗*/
         alert(v2);
         alert(v3);
         alert(v4);
         alert(v5);
         
    </script> 
    <!-- <script src="../javascript/js/my.js">
        // 引入外部的js </script>  -->
</body>

一些结果注意事项: 

  

在ES6(JS的新版本)中,新推出了两个词代替var

1、let: 变量用1et声明,无法重复定义的

 2、const: 有let的特点,const声明的变量就是一个常量

(2)Js的复杂数据类型:

1、数组函数:一个变量对应多个值

<body>
    <script>
        // 1.使用数组函数
        let arr =Array();
        // 弹窗警告
        // alert(arr)
        // console.log(1111111);
        // console.log(arr);
        // 2.使用new关键字
        let arr2 = new Array();
        // 3.使用字面量的方式
        let arr3 = [];
        // 赋值
        // 下标(索引)
        // 给数组的第一个元素赋值
        arr3[0] = 100;
        arr3[1] = 90;
        // 打印输出数组中的第一个值
        console.log(arr3[0]);
    </script>
</body>

结果得到100. 

2、定义函数:定义一个函数,用来执行一系列代码。函数定义以后,不会自己执行的,需要我们手动调用函数

1.无参无返回值

2.无参有返回值

3.有参有返回值

4.有参无返回值

2、调用函数:函数内部不可以再声明函数,但是可以调用函数,调用的方式和正常调用的方式相同

3、带有参数的函数:return除了可以返回结果,还可以终止函数的继续执行。开发中,尽量不要在return后面继续写语句。 

<body>
    <script>
        // 1.定义函数
        // 作用域:起作用的区域
        function hello(){
            // console.log("神经计算机");
            let v1 =10;
            console.log(v1 + 5);
        }
        // 2.调用函数
    //    hello();
    //    console.log(v1);
    function add() {
               let num1 = 10;
               let num2 = 20;
             // console. log(num1 + num2);
            //add:带有返回值的函数
            return num1 + num2;
       }
           //    30
          // let result = add( );
        // console.log(result) ;
        //  console.log(add()) ;

        // 3.带有参数的函数
        //给参数赋值
    function sub( num1,num2){
          
        return num1 - num2;
       }
    //    let result = sub(200,100);
    //    console.log(result);
    function start(){
           let result = sub(2,2);
       }
    function end(){
           console.log("end函数被执行...");
    //return除了有返回值的作用
    //还有一个结束函数执行的作用
     return
    }
    console.log("我是end函数后面的语...");
    </script>
</body>

三、3种弹窗

弹窗:实质上就是函数

1、alert: 警告弹窗,没有返回值

2、confirm: 带有确认和取消的弹窗,有返回值,点击确定,返回true,点击取消,返回false

3、prompt: 带有文本框的弹窗,有返回值,就是文本框输入的内容

\r、\n  :换行符,弹窗里的回车

四、逻辑判断,流程控制

一、

1、运算符

<body>
    <script>
        // 1.算术运算符+ - * / %(取余,取模)
        // console.log(5 % 2);
        // 2.赋值运算符=+=-=*=/=%=
        let a = 10;
       //a = a + 1;
      //a += 1;
      //a++;
      // ++a
      // console.log(a);
      // ++a
      //3.比较运算符 > < >= <= != == ===
      let b = '10';
    //   console.log(a != b);
    // console.log(a === b);
   //   a >=b  a => b 
     // 4.逻辑运算符 与或非
    //  与 并且 且 &&
    let c = 50;
    // console.log(a > b && a <= b);
    //  或 或者 ||
    // console.log(a > b || a <= b);
    // 非 !true
    // console.log(!(a > b));
    let d;
    console.log(!d);
    </script>
</body>

2、逻辑运算符(得到布尔类型) :

逻辑与& :有一个为false,结果是false

短路与&&:一 个为false,结果是false。前一个为false,后一个条件不执行

逻辑或|:有一个为true,结果是true

短路与||:一个为true,结果是true。 前一个为true, 后一个条件不执行

逻辑非! : ! True=false

!false=true

逻辑异或:

相同是false,不同是true(两男在一起假两女在一 起假5.-男一.女真)

3、三元运算符(三目运算符):语法是固定的,只能有一个条件,两个选项。

比较数的大小:

<body>
    
    <script>
        // 三元运算符
        let a = 10;
        let b = 20;

        /*
            语法格式:
            条件表达式 ? 表达式1 : 表达式2
        */
       // 求a和b的最大值
    //    let max = a > b ? a : b;
    //    console.log(max);

       // 求4个数的最大值,用三元运算符
        let c = 50;
        let d = -1;

        function getMax(num1,num2) {
            return num1 > num2 ? num1 : num2;
        }

        function hello(){
            console.log("我是hello");
        }

        // let max1 = getMax(a,b);
        // let max2 = getMax(c,d);

        // let max = getMax(getMax(a,b),getMax(c,d));
        // console.log(getMax(getMax(a,b),getMax(c,d)));
        a < b ? hello() : alert(2);
    </script>
</body>

+号的特殊性--除了可以进行加法计算之外,还是连接符。

如果先入为主的认定+号为连接符,那它就一直是连接符|

- */ %:可以进行类型转换,如果转不了,结果为NaN (not a number)

 

 二、

逻辑判断:

  1. if... else结构:

语法

If(条件表达式){

      要执行的代码;

}else{

      要执行的代码;

}

<body>
    <script>
         let a = 10;
        let b = 20;
        // 多重if
        if(a < 10){
            console.log("a<10");
        }else if(a === 10){
            console.log("a==10");
        }
        else{
            // else的条件是和if的条件互补
            console.log('a>10...');
        }
        
        // if(a > b){
        //     console.log("a比b大");
        // }

    </script>
</body>

if... else结构和多重if结构有什么区别?

if... else是可以嵌套的,可以无限嵌套,但是原则上要求不超过三层。

2.switch... case结构:

语法:

switch (表达式) {

case选项1:

要执行 的代码;

case选项2:

要执行的代码;

........

default:

要执行的代码;

}

当表达式的值在case中匹配成功,会执行对应的代码,但是停不下来,后面的代码会继续执行。

要解决这个问题:加个 break;

<body>
    <script>
        let a = 20;
        switch(a){
            case 10:
                console.log('ddd');
                break;
            case 20:
                console.log('ghh');
                break;
            default:
                console.log('ssss');
                break;

        }
    </script>
</body>

两个结构怎么选?

1、当需求为区间范围时,switch... case根本无法使用。

2、if...else...基本上啥都能干

3、switch... case效率高

4、当需求为固定值,且值不多,swi tch... case

5、能用switch. . case解决的不要用if... else

相似之处:

1、几乎所有的switch. .. case都可以转化为if... else

2、default几乎相当于else :

3、case几乎相当于if

4、都可以嵌套

不同之处:

1.else不可以乱放,条件在前,default可以放前或者中间。

2.Switch需要break。

3.Switch里面的选择可以杂乱无章

今日学习总结:

1. 学习收获 

在原本所掌握的知识上更上了一层楼,但是还是无法自己完整快速的写出一段代码并解决代码,写出的代码也很鸡肋,还需继续努力!!!
2. 知识点:  了解
3. 掌握情况:理解 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值