js学习第14天

发布于:2022-12-31 ⋅ 阅读:(395) ⋅ 点赞:(0)

### 正则中的相关方法及属性

     1:test

       功能:判断字符串是否满足正则对象的格式,返回布尔值

       参数:test(目标字符串)

       返回值:布尔值

     2:exec

       功能:返回满足正则对象的字串,存放至长度为一的数组中

       参数:exec(目标字符串)

       返回值:符合正则的字串,储存在长度为1的数组

    修饰符

      g: 全局

     

       var reg = /\d+/g;

--------------------------------------------------

    正则对象作为字符串函数的参数

     search

        功能:查找字串

        参数:search(正则对象)

        返回值:下标

     i:忽略大小写

     replace

        var str = "sda dsfs g wew"

        str = str.replace("sda","a")

        console.log(str)

     match

        功能:返回满足正则对象的字串,存放至数组中

        参数:match(目标字符串);

        返回值:符合正则的字串,存放在数组中

        var reg = /\d+/g;

        var str = "123a456b789";

        console.log(str.match(reg))

### let

   let:定义变量的关键字

       特点:1:先定义后使用

             2:变量不能重复定义

             3:块级作用域,变量使用范围只能是该作用域,且不会在该作用域消失

             4:暂时性死区,当内部作用域与外部作用域变量同名时,内部变量屏蔽外部变量

### const

   只读变量:是一个变量,但是只能读不能写

   1:被const修饰的变量就是只读变量

   2:被const修饰的变量必须初始化 let PI  = 3.1415926;

   3:必须先定义后使用

   4:不能重复定义

   5:块级作用域

   6:暂时性死区

   被const修饰的变量名大写

      var,let,const的异同?

        1:都是用来声明变量的关键字

        2:var 具有声明提升

        3:let和const必须先定义后使用 ,不能重复定义,块级作用域,暂时性死区

        4:const修饰的变量是只读变量,必须初始化,习惯性变量名大写

### .json对象和字符串的相互转化

    前提:必须是严格的JSON对象

    字符串转json  

            let str = '{"name":"fanfan","age":18}';

            let json = JSON.parse(str)

    json转字符串  

            let json = {"name":"fanfan","age":18};

            let str = JSON.stringify(json);

###  this

   this:函数体内的内置对象,作用域是函数的{}

   1:与事件体连用,触发该事件的元素

   2:与普通函数连用(除了事件体和构造方法),调用该函数的对象

### bind

   bind:函数对象的函数

   功能:改变函数的this指向


 

### .for..in...和for...of

              1:for...in... 遍历下标,常用于遍历json

              2:for...of... 遍历元素内容

              for(let item of 容器){

                    循环体

                }

### 字符串扩展方法

     在ES5 中使用的是 indexOf() 方法,在ES6中可以使用includes()、startsWith()

 endsWith()三个方法。

     str.includes(参数): 返回布尔值,表示是否找到了参数字符串。

     str.startsWith(参数):返回布尔值,参数是否在源字符串的头部。

     str.endsWith(参数): 返回布尔值,参数是否在源字符串的尾部。

### 箭头函数

    箭头函数:匿名函数的另一种写法

    特点:

1.如果一个函数只有一个参数,则可以省略小括号

     let fun = (a)=>{

         console.log(a+5);

     }

     let fun = a=>{

         console.log(a+5);

     }

     fun(10);

2.如果函数体只有一条语句,则可以省略{}

     let fun = a=>{

         console.log(a+5);

     }

     let fun = a=>console.log(a+5);

     fun(5);

3.如果函数体只有一条语句,自带return

     let fun = a=>{

         return a + 5;

     }

    let fun = a=>a + 5;

    console.log(fun(8));


 

### 解构赋值

    1.解析结构进行赋值

    2.交换两个变量的值


 

###  set

  set:没有下标,自动去重

          set集合的方法

             1.add(参数) 向集合中添加一个元素

             2.delete(值) 删除集合中某个数

             3.has(值) 判断集合中是否含有某个值

             4.clear() 清空集合

    因为没有下标,所以用for...of   for(let item of set)



 

     数组去重 先通过let set = new Set(arr);然后将set转换为数组arr = Array.from(set)    Array.from()方法     然后输出arr

             let arr = [1,2,3,4,1,2,3,5,6,7];

             let set = new Set(arr);

             将set转换为数组

             arr = Array.from(set);

             console.log(arr);

五星好评

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 135px;
            height: 27px;
            display: flex;
        }

        p {
            display: inline-block;
            width: 27px;
            height: 27px;

            background: url(img/star.gif) 0px 0px;

        }
    </style>
</head>

<body>
    <div>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <p></p>
    </div>
</body>

</html>
<script>

    // for (let i = 0; i < ops.length; i++) {

        // ops[i].index  =i;
        // console.log(i)
        // ops[i].onmouseover = function () {
        //     ops[i].previousElementSibling.style.backgroundPositionY = "27px";
        //     ops[i].onclick = function () {
        //         ops[i].previousElementSibling.style.backgroundPositionY = "27px";
        //     }

        // }
        // ops[i].onmouseleave = function () {
        //     ops[i].style.backgroundPositionY = "0px";

        // }
    // }


    let ops = document.getElementsByTagName("p")
    //  封装一个函数
     function  olisclc(){
        //  第一次循环  
         for(let i =  0;i<ops.length;i++){
            //  鼠标移动的事件
             ops[i].onmousemove = function(){
                //  鼠标所在位置前面的全亮 因为i保存的是当前鼠标所在的星星 所以再循环一遍以遍历鼠标所在星星前面的星星
                   for(let j = 0;i<ops.length;j++){
                    //    如果再次循环的j<=i 让所有的j变色
                       if(j<=i){
                           ops[j].style.backgroundPositionY = "27px"
                       }else{
                        ops[j].style.backgroundPositionY = "0px"
                       }
                   }
                    // 
             }
             ops[i].onclick = function(){
                //  循环遍历 当点击的时候取消所有的move事件和click事件
                 for(let k =0;k<ops.length;k++){
                     ops[k].onmousemove = null;
                     ops[k].onclick = null;
                    
                 }
                 
             }

         }

     }

     olisclc()

    // var,let,const的异同?
    /*
       1:都是用来声明变量的关键字
       2:var 具有声明提升
       3:let和const必须先定义后使用 ,不能重复定义,块级作用域,暂时性死区
       4:const修饰的变量是只读变量,必须初始化,习惯性变量名大写
    
    
    
    */





















</script>

           

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到