2022-07-12 第八组 于凤琳 javasript(js)学习笔记

上午:

四种循环

1.for循环

结构:

点击查看代码
for(let i = 0;i < 10;i++){
            // 循环体
            console.log(i);
        }

for循环的特殊写法:

点击查看代码
for(;;){

        }
        for(let i = 0;;){
            
        }
        for(let i = 0;;i++){

        }
        for(let i = 0; i < 10;){
                
        }

for循环的语法:
1.let i = 0;初始化条件,当i=0时,循环开始,只走一次,第一次循环开启之前初始化
2.i < 10;判断条件,会和初始化条件配合循环的执行,决定了循环什么时候停止
3.循环体,循环在重复做什么事情
4.i++ 循环条件,每次循环体执行完毕让i产生变化

                面试题:for循环的执行步骤

a.i可以看做是一个局部变量
b.循环条件是可以根据实际情况更改的
c.当修改循环条件时,要确保循环可以向着终点前进去改变
d.我们在开发中,尽量避免死循环
当变量的作用域出现了重叠,不要出现重名的情况尤其是全局和局部,变量最好不好重名。

例题1.判断一个数在数组中是否存在,如果存在,返回它的下标
如果不存在,返回-1

点击查看代码
 function exists(num,array){
            let index = -1;
            for(let i = 0;i < array.length;i++){
                if(array[i] == num){
                    index = i;
                }
            }
            return index;
        }

        console.log(exists(100,arr));
打印输出数组中的所有元素 console.log(arr[0]); 数组有一个属性length-长度 长度:数组中有多少个元素 注意区分长度和下标(索引) 取出数组中的最后一个元素,不能是undefined console.log(arr[arr.length - 1]); 把数组中的每个元素都操作一遍,数组的遍历(迭代)

2.for in 语句

for in语句,能做得事情较少,只能做遍历操作。可以理解为a是arr数组的下标通过映射给a

点击查看代码
<body>
    <script>
        let arr = [1,2,3,4,5];
        for(let a in arr){
            console.log(arr[a]);
        }
    </script>
</body>

3.while循环

while循环的执行流程:
1.初始化条件
2.判断条件
3.执行循环体
4.自增
while循环与for循环的比较
while循环: 1. 初始化条件不好控制 2. 循环条件不好控制 3. 写函数时,返回值便于管理
for循环: a. 每个for循环的初始化条件都是隔离
例子1. 今年是2022年。今天我们公司有10个人,每年公司会以百分之10的比重招人。问:哪一年公司人数突破100人。

点击查看代码
function count(){
            let year = 2022;
            let sum = 10;
            while(sum <= 100) {
                sum *= 1.1;
                year++;
            }
            return year + "年人数超过了100人,人数是:" + sum;
        }
        // 需求就是最后我要打印输出哪一年超过了100人,人数是:xxxx
        console.log(count());

4.do...while循环

  1. let a 初始化条件
  2. log循环体
  3. a > 100判断条件
  4. a++循环条件

do...while和while的区别:
do...while先执行一次,再判断。无论条件是否成立,至少执行一次
while:如果条件不成立,一次都不走

点击查看代码
 let a = 10;
      while(a == 10){
        
      }
      do {
        console.log(a);
        a++;
      } while (a > 100);

js内置的一些函数

    Array数组中:   1.concat()连接函数
                     2.join() 设置分隔符连接数组为一个字符串
                     3.pop()删除最后一个元素
                     4.sort()排序,从小到大排序
    Globle整体的综合的:1.isNaN()
            2. parseFloat:把一个整数转换成小数
            3.pareInt;把一个整数转换成小数 不是四舍五入 就是把小数部分去掉
            4.number()把一个值转变成number类型  
            5.string()把其他类型转变成字符串
    string:1.charAt(1):去除指定位置的字符
            2.indexof('a')判断指定给的字符是否存在 如果存在返回下标 如果不存在返回-1
            3.lastIndexof('a')从后往前找
            4.replace(‘a’,‘b’)替换字符串
            5.split(‘-’)根据-去拆分字符串,得到一个数组  与string对应
            6.substring(1,6)字符串截取
    Math:1.ceil()向上取整 数变大了
          2.floor()向下取整 变小了
          3.round()四舍五入 变大了
          4.random()随机生成一个0-1的随机数 包括0不包括1 是小数
          5.三角函数 tan()
          6.E PT 两个常量
    Date:1.new.Date()获取系统当前日期
         2.getDate()返回时间中的日值是1-31
         3.getHours()返回时间中的小时0~23
         4.getMinutes()返回时间中的分
         5.getSeconds()返回时间中的秒
         6.get

下午:

js是网络脚本是写在网页上的要和html配合起来

想要找到网页上的div元素由于id是元素的唯一标识,只有通过id才能找到唯一确定的元素,要是通过其他途径(根据标签 name cass)找,找到的就是一堆div元素。
这时要找到div元素就要用到一个对象document(DOM文档)javas当中有两个大类一个是DOM(是document的文档对象模型) BOM。这节课主要讲DOM。整个网页都可以叫做文档,网页上所有的标签都可以叫做文档。通过id就可以找到网页上的标签。
以下就用三种方式来获取网页上的元素(让js与html有联系)

  • 传统的写法
点击查看代码
<body>
    <!-- 通过id去获取HTML元素 id是唯一标识只能获取一个 -->
    <div id="div1">我是div</div>
    <script>//具有返回值,返回值是div
      let div = document.getElementById('div1');
      console.log(div);

    </script>
</body>
点击查看代码
<body>
    <div id="div1" class="aaa">我是div</div>
    <script>
        // 通过class类来获取HTML元素,会有很多个成一个集合,我们把他们看成数组
      let divs= document.getElementsByClassName('aaa');
      console.log('divs');
      //如果想要拿到一个那就用
      //console.log(divs[0]);
    </script>
</body>
点击查看代码
<body>
    <div id="div1" class="aaa">我是div</div>
    <script>
        // 通过tag标签来获取HTML元素,会有很多个成一个集合,我们把他们看成数组
      let divs= document.getElementsByTagName('div');
      console.log('divs');
      //如果想要拿到一个那就用
      //console.log(divs[0]);
    </script>
</body>
获取网页上的元素的属性
点击查看代码
<body>
       <div id="div1" class="aaa">我是div</div>
    <script>
    //获取元素的属性
      let div= document.getElementById('div1');
      console.log(div.id);
    </script>
</body>
  • 新的写法
  1. 第一种
点击查看代码
<body>
       <div id="div1" class="aaa">我是div</div>
    <script>
    //新写法 通过(标签,id#,类.)选择器来获取HTML元素,只能抓到**一个**元素
    let div=document.querySelector('div');
    console.log(div);
    </script>
</body>
**注意:若有两个标签同时都使用了标签选择器,则再用标签选择器来获取元素时只能获取到第一个。**
  1. 第二种
点击查看代码
<body>
       <div id="div1" class="aaa">我是div1</div>
       <div id="div1" class="aaa">我是div2</div>
    <script>
    //新写法 通过(标签,id,类)选择器来获取HTML一堆元素
    let div3=document.querySelectorAll('div');
    console.log(div3[0]);
    </script>
</body>

提出问题:拿到这些元素要干什么?
答:获取元素内部的文本,改变这个元素的内容 可以使用innerText和innerHTML来改变元素的内容

点击查看代码
<body>
       <div id="div1" class="aaa">我是div1</div>
       <div id="div2" class="aaa">我是div2</div>
    <script>
    //获取元素后我们可以获得内部文本并修改元素文本的内容
    let div=document.querySelector('#div1');
    // div.innerText="我是js生成的";
    console.log(div.innerText);
    </script>
</body>
点击查看代码
<body>
       <div id="div1" class="aaa">我是div1</div>
       <div id="div2" class="aaa">我是div2</div>
    <script>
    //获取元素后我们可以获得内部文本并修改元素文本的内容,innerHTML认识标签,innerText不认识标签
    let div=document.querySelector('#div1');
    div.innerHTML="<b>我是加粗的</b>";
    </script>
</body>
innerText和innerHTML的区别是:innerText不认识标签只能获取到元素内部文本并修改文本,innerHTML认识标签,在获取到元素内部文本并修改文本,同时可以获取到HTML标签。都是往两个标签的中间放值,例如

往这里放值

.

假设有一个文本框,想要往文本框里放东西,应该怎么办?

1.我们得先拿到文本框(这里是通过标签选择器来获取)2.用标签引用value

点击查看代码
<body>
    <input type="text" id="=username">     
    <script>
      let input=document.querySelector('input');
      input.value="我是js放进文本框的";
    </script>
</body>

事件

事件就是当我们和HTML标签元素发生交互时产生的行为。

  1. 单机事件:onclick
  2. 双击事件:ondbclick
  3. 失去焦点:onblur一般出用在文本框中
  4. 获得焦点:onfocus一般出用在文本框中
  5. 改变: onchange 当元素内容发生改变的时候,所触发的事件
  6. 加载: onload 在元素加载的时候所触发的事件 一般加在body上
    现页面上有一个按钮,有一个需求:点击按钮就会有一个弹窗添加事件单机事件
    今天只讲一种添加事件的方式——在标签中添加onclick....
    当设置了对应的事件之后会执行目标函数。
    例子1:一点击按钮就会执行函数跳出一个弹窗
点击查看代码
<body>
    <input type="text" id="=username">     
    <button type="button" onclick="">按钮</button>
    <script>
     function jump(){
          alert('按钮被点击了');
     }
    </script>
</body>
例子2.失去焦点和获得焦点
点击查看代码
<body>
    <input type="text" id="=username" onblur="valid()" onfocus="get()">     
    <!-- <button type="button" onclick="jump()">按钮</button> -->
    <script>
    //  function jump(){
    //       alert('按钮被点击了');
    //  }
     function valid(){
         console.log('失去了焦点');
     }
     function get(){
         console.log('获得了焦点');
     }
    </script>
</body>

例子3. onchange 当元素内容发生改变的时候,所触发的事件

例子4.onload 在元素加载的时候所触发的事件 一般加在body上

点击查看代码
<body onload="load()">
    <!-- 不要出现双引套双引,要么双引套单引,要么单引号套双引号 -->
    <input type="button" ondblclick="jump(1)" value="按钮">
    <script>
    function  jump(a){
        alert('按钮被点击了.....'+a);
     }
    </script>
</body>

例子5.需求:当用户名admin,密码123456时,提示登录成功! 否则,提示用户名或密码错误

点击查看代码
<body>
    <p>
        账号:<input type="text" id="username">
    </p>
    <p>
        密码:<input type="password" id="password">
    </p>
    <p>
        <input type="button" value="登录" onclick="get()" >
    </p>

    <script>
        // 需求:当用户名==admin,密码==123456时,提示登录成功!
        // 否则,提示用户名或密码错误
        /* 思路:给按钮添加单击事件
            当点击按钮时,获取用户名和密码框输入的值,
            然后进行判断,if()登录成功else用户名或密码错误!
            15分钟!
        */
     function get(){
       let user= document.querySelector('#username').value;
       let pass= document.querySelector('#password').value
      if (user=="admin"&&pass==123456) {
        alert('登录成功');
      } else {
        alert('用户名或密码错误');
      }
     }

    </script>
</body>

例子6.需求:在用户名的文本框中输入用户名,
如果用户名为admin,则在span中显示用户名已被占用
否则,显示用户名可用!

点击查看代码
 <body>
        用户名:<input type="text" id="username" onblur="valid()">
        <span></span>

        <script>
            /*
                分析:
                需要给文本框添加onchange,onblur,出发函数
                需要向span中写入内容!innerText innerHTML
            */
           function valid(){
                let username = document.querySelector("#username").value;
                let span = document.querySelector("span");
                if(username == "admin"){
                    // 用户名已被占用
                    span.innerText = "用户名已被占用!"
                }else {
                    // 用户名可用
                    span.innerText = "用户名可用!";
                }
           }

        </script>
    </body>
posted @ 2022-07-14 01:34  yfl-0421  阅读(104)  评论(0)    收藏  举报