zoukankan      html  css  js  c++  java
  • ES6基础-4

    字符串操作

    //ES6字符串操作
        var str = "I am your father fuck you?";
        str.indexOf("you");//ES5 查找子串的位置
        str.lastIndexOf("fuck");
        str.includes("world");//ES6判断是否存在该字符串
        str.startsWith("I am");
        str.endsWith("you?");
        //注意用于查看字符串所在位置只能使用ES5 的indexOf 和lastIndexOf 这两个还能传递正则表达式

    重复显示某字符串

    //console.log("A".repeat(-1));//这里使用负数或者infinity都会报错
    /*使用NaN 0~-1之间的数都会显示0次*/
    console.log("A".repeat(-0.5));
    console.log("A".repeat("2"));
    console.log("A".repeat(12));

     字符串补全

    //字符串补全
    console.log("A".padStart(3,"a"));
    console.log("A".padEnd(12,"-"));//默认用空格填充。
    
    
    //如果指定的长度小于或者等于原字符串的长度,则返回原字符串:
    //如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串:
    //常用语补全位数

    //模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。
        
    
     var age = 21;
     function sing(){
         return "写代码";
     }
        var str = `本人今年${age}岁,虚岁${age-1}喜欢ctrl,也喜欢${sing()}
        <p>则就是我喜欢你的理由</p>
         `;
         console.log(str);
         /*
         
         保留空格换行 以及使用变量和调用函数
          */

    模板标签

    标签模板,是一个函数的调用,其中调用的参数是模板字符串。

    当模板字符串中带有变量,会将模板字符串参数处理成多个参数。

    主要可以用于过滤html标签

     function test(str,...value){
             var rst = "";
             for(var i = 0;i<str.length;i++){
                 rst+=str[i];
                 if(value[i]){
                     rst+=String(value[i]).replace(/>/g,"&gt").replace(/</g,"&lt");
                 }
             }
             document.write(rst);
             return rst;
         }
    
         var html = "<script></script>";//反斜杠
         console.log(test `本人今年${age}岁,虚岁${age-1}喜欢ctrl,也喜欢${sing()}
        <p style="color:red">则就是我喜欢你的理由</p>

     

    /*
        ES6对象表示法
    
    
         */
        //属性简写
        var a = 12;
        var b = 32;
        const test = {
            a,
            b,
            func(){//如果是Generator函数需要在前面添加*
                console.log(`我等同于 func:function(){
                                            console.log(${this.func});
                                    }`);
            }
    
        };//此时属性名为变量名称 属性值为变量值等同于{a:12,b:32}
        const test2 = {
            ["he"+"llo"](){//ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。
                //属性的简洁表示法和属性名表达式不能同时使用,否则会报错。
                console.log("hello world!");
            }
        }
    
        //对象方法也可以简写
        test.func();
        test2.hello();
        //对象扩展运算符
        let copy = {...test};//拷贝   扩展运算符...后边可以是null undefined {}
        //自定义的属性和拓展运算符对象里面属性的相同的时候:自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。 自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。
        let sum = {...test,...test2,a:"webcyh"};//将两个对象合并一起
        console.log(copy);
        console.log(sum);
    
     
    
    var target = {name:"webcyh",test:{a:"b",age:21}};//test会被source3test覆盖变为test:{a:"b"}同属性覆盖
    var source1 = {name:"source1",age:21};
    var source2 = {name:"source2",test:{a:"b"}};
    var source3 = null;//undefined 这个目标参数不能是null 或者undeined 会报错 如果是非对象会先转换成对象
    var rst = Object.assign("hello",source1,source2,["a","b"],source3);//同名属性后边的覆盖掉前面的 数组会先转换成对象{0:"a",1:"b"}
    console.log(rst); //注意assign实现的是浅拷贝 执行同一块内存 改变目标属性值 资源对象的值也会改变
    //
    //
    
    source2.test.a="hello";
    console.log(rst.test.a);

        //Object.is()比较
        //Object.is("q","q");      // true
    Object.is(1,1);          // true
    Object.is([1],[1]);      // false
    Object.is({q:1},{q:1});  // false
    与(===)的区别
    
    //一是+0不等于-0
    Object.is(+0,-0);  //false
    +0 === -0  //true
    //二是NaN等于本身
    Object.is(NaN,NaN); //true
    NaN === NaN  //false
    console.log(Object.is(1,1));          // true
    console.log(Object.is([1],[1]));      // false
    console.log(Object.is({q:1},{q:1}));  // false
    //与(===)的区别
    
    //一是+0不等于-0
    console.log(Object.is(+0,-0));  //false
    console.log(+0 === -0);  //true
    //二是NaN等于本身
    console.log(Object.is(NaN,NaN)); //true
    console.log(NaN === NaN)  //false

  • 相关阅读:
    VMware workstation 创建共享盘
    VMware vSphere 创建共享盘
    pdksh 包
    oracle virtualbox 添加共享硬盘
    debian 8.2 dynamic add disk
    postgresql 9.1 下的 pg_dump 的初步研究
    postgresql pg_xlog_location_diff 函数
    postgresql 结束进程
    postgresql 加载参数文件
    postgresql 切换xlog日志
  • 原文地址:https://www.cnblogs.com/webcyh/p/11440271.html
Copyright © 2011-2022 走看看