JS--Day14(正则相关属性方法+ES6新增)

一.综合表单的必选

var oSexs = document.getElementsByName("sex");
    var oHobby = document.getElementsByName("a");

    var flagSex = false;
    var flagHobby = false;

    function isSelectSex(){
        for(var i=0; i<oSexs.length; i++){
            if(oSexs[i].checked){
                return true;
            }
        }    

        return false;
    }

    function isSelectHobby(){
        for(var i=0; i<oHobby.length; i++){
            if(oHobby[i].checked){
                return true;
            }
        }    

        return false;
    }

    xxx.onsbumit = function(){
        flagSex = isSelectSex();
        flagHobby = isSelectHobby();

        if(flagXXX && flagXXX && flagSex){

        }
    }

二.正则的属性及方法

①test() 检验一个字符串是否符合某一个正则规范,如果符合返回true,否则返回false

用法: reg.test(str)

②exec 根据正则表达式查找,结果满足,会返回一个长度为1的数组(数组只有一个值)

用法:reg.exec(str)

var reg = /\d+/g;

var str = "123a456b789";

var arr = reg.exec(str);

③如何匹配到后面满足条件的字符串修饰符:g全局

console.log(arr[0]);

arr = reg.exec(str);console.log(arr[0]);

④search方法 (将正则对象作为字符串的参数)

返回与正则表达式查找内容匹配的第一个子字符串的位置用法:str.search(reg)

⑤match 方法

使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。

     str.match(rgExp)
     var reg = /\d+/g;
     var str = "123a456b789";

     var arr = str.match(reg);
     console.log(arr);

⑥replace 方法 返回根据正则表达式进行文字替换后的字符串的复制。

stringObj.replace(参数1, 参数2):用参数2替换参数1

    var str = "liji de ge bi shi liji";
    str = str.replace(/liji/g,"laowang");
    console.log(str);

三.let

let a = 123;

扫描二维码关注公众号,回复: 15120671 查看本文章

console.log(a);

①所有变量必须先定义后使用

②不能重复定义变量的值

③块级作用域,每次循环的过程中,i是独一无二的空间,不会被销毁

 let oLis = document.querySelectorAll("li");
     for(let i=0; i<oLis.length; i++){
         oLis[i].onclick = function(){
             console.log(i);
         }
     }

④暂时性死区,当内部变量与外部变量同名时,内部变量屏蔽外部变量

    let a = 123;
    {
        let a = 456;
        console.log(a);
    }
    console.log(a);

四.const

需求:有名字的常量 const:被const修饰的变量称为只读变量

①修饰只读变量

②必须被初始化

③必须先定义后使用

④不能重复定义

⑤块级作用域

⑥暂时性死区

const修饰的是栈空间,不是堆空间

面试题:
 let,const,var的异同?
   1.都是用来定义变量的
   2.var具备声明提升
   3.const修饰只读变量,并且必须初始化
   4.let和cont    
    必须先定义后使用
    不能重复定义
    块级作用域
    暂时性死区

五.this

this函数的内置对象

①与事件体连用,代表触发事件的元素本身

②与普通函数连用,代表调用该函数的对象

六. bind

bind:函数对象的函数,作用修改this指向(通常用来修改匿名函数)

参数:bind(被修改的this指向)

  var oBox = document.querySelector("div");

    document.onclick = function(){
        this.style.display = "none";
    }.bind(oBox);


 var fun = function(){}
    fun == function(){}
    fun.bind(被修改的this指向)===>
    function(){}.bind()

七.json对象和json字符串的相互转换

字符串是一切数据交互的桥梁

① JSON字符串--->JSON对象

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

let json = JSON.parse(str);

console.log(json);

②JSON对象--->JSON字符串

let str1 = JSON.stringify(json);

console.log(str1);

八.7.for...in和for...of

①for(let 索引 in json对象){通常遍历json字符串}

有一些容器是没有下标或者索引的

②for(let temp of 容器(不能是json)){ 通常用于遍历没有下标的容器(set,map)

每次temp代表该元素本身}

九.箭头函数

①箭头函数:匿名函数的简写方式

    document.onclick = ()=>{
        console.log("想念宣文振的第一天");
    }
    let fun = ()=>{
        console.log("想念宣文振的第一天");
    }
    fun();

②箭头函数的特点

1.当函数只有一个参数时,箭头函数可以省略参数的小括号
    let fun = a=>{
        console.log(a);
    }
    fun(123);
2.当函数只有一行代码时,可以省略花括号
    let fun1 = a=>{
        console.log(a);
    }
    fun1(456);
3.当函数只有一行代码时,自带return
    let fun2 = a=>a + 10;
    //let fun2 = function(a){
        //return a + 10
    //}
    console.log(fun2(1111));

十. 解构赋值

解构赋值:解析结构进行赋值 解析数组和json对象赋值

①解析结构并赋值

a.数组
     let [x,y,z] = [1,2,3];
     console.log(x,y,z);

b.json对象:好处,可以去掉多余前缀

    let json = {
        "name": "老王",
        "age": 18
    }

    let {
        name,
        age
    } = json;
    console.log(name, age);

②交换两个变量的值

    let [x, y] = [1, 2];
    [x, y] = [y, x];
    console.log(x, y);

猜你喜欢

转载自blog.csdn.net/weixin_72756818/article/details/129636265