ES6字符串拓展

字符串的基本使用:

多行字符串、字符串中变量的拼接。

以下分别是传统和ES6字符串的换行与变量拼接的方法:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>字符串拓展</title>
</head>

<body>

    <!-- 
        字符串的拓展:
        多行字符串,
        字符串中拼接变量
     -->
    <script>
        let age1 = 10;
        // 没有实现换行,拼接
        let msg1 = "hellohel\lohello";
        // 实现换行,拼接
        let msg2 = "hellohel\n\lohello";
        // 加法运算拼接变量
        let msg3 = "heoollll" + "njdjjskk" + age1;
        /*
           模板字符串基本语法:
           反引号 `字符串`
           替换位的使用${}
        */
        let event1 = `一起去看好妹妹演唱会`;
        let event2 = `
        一起去看
        好妹妹
        演唱会`;
        // let event3 = `一起去看好妹妹${age1}演唱会`;
        // ${}中可以是表达式
        let event3 = `一起去看好妹妹${age1+10}演唱会`;
        // 推荐网站掘金
    </script>
</body>

</html>

 实例:使用模板字符串拼接:(若使用传统方式需要通过“+”拼接,比较繁琐)

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>字符串拓展</title>
</head>

<body>
    <ul id="myUl">
        <!-- <li>
            <h3></h3>
            <p></p>
        </li> -->
    </ul>
    <script>
        let arr = [{
            title: "面试官问1: 谈谈你对JavaScript基本数据类型:BigInt的理解",
            like: "200"
        }, {
            title: "面试官问2: 谈谈你对JavaScript基本数据类型:BigInt的理解",
            like: "100"
        }, {
            title: "面试官问3: 谈谈你对JavaScript基本数据类型:BigInt的理解",
            like: "300"
        }, {
            title: "面试官问4: 谈谈你对JavaScript基本数据类型:BigInt的理解",
            like: "500"
        }];
        let myUl = document.getElementById('myUl');
        let html = "";
        //该方法的三个参数:forEach(item,index,arr)
        arr.forEach(function(item) {
            html += `
        <li>
            <h3>${item.title}</h3>
            <p>${item.like}</p>
        </li> `
        })
        myUl.innerHTML = html;
    </script>
</body>

</html>

 结果图:

ES6新增字符串方法:

    String.prototype.startsWith是否以“字符或字符串”开头

    String.prototype.endsWith:是否以“字符或字符串”结尾

    String.prototype.includes:判断一个字符或一串字符是否在当前字符串内

    String.prototype.repeat:重复字符串

 ①String.prototype.includes:

        let msg = "hello";
        // indexof可以得到当前字符或一串字符的索引位置
        console.log(msg.indexOf("h")); //结果为0
        console.log(msg.indexOf("a")); //结果为-1

判断结果为负:说明字符串中没有该字符或字符串,所以,使用传统的方法需要判断结果是否为正整数

includes方法可以解决上述不足问题:

        let msg = "hello";
        console.log(msg.includes("h")); //结果为true
        console.log(msg.includes("a")); //结果为false

includes(“查找的字符或字符串”,索引(从什么位置开始),查找的数组)

console.log(msg.includes("h", 2)); //结果为false
//从2位置开始查找字符“h”

使用ES5实现:(考虑兼容性)

    <script>
        // 判断浏览器是否支持includes方法
        if (!String.prototype.includes) {
            String.prototype.includes = function(search, start) {
                // 若传的start值不是数字类型
                if (typeof start != "number") {
                    start = 0;
                }
                if (start + search.length > this.length) {
                    return false;
                } else {
                    return this.indexOf(search, start) !== -1;
                }
            }
        }
    </script>

②:String.prototype.startsWith  /   String.prototype.endsWith

他们也同样有两个参数,判断是否以“ ” 开头或结尾;第二个参数代表判断位置;结果为

    <script>
        let msg = "world";
        msg.startsWith("w"); //结果为true
        msg.startsWith("wor"); //结果为true
        msg.startsWith("h"); //结果为false
        msg.startsWith("w", 1); //结果为false,第二个参数:判断从该索引开始的字符串是否以第一个 
        参数开始
        msg.startsWith("o", 1); //结果为true
    </script>

注:String.prototype.endsWith的第二个参数:

    <script>
        let msg = "world";
        msg.endsWith("d"); //结果为true
        msg.endsWith("r"); //结果为false
        msg.endsWith("r", 3); //结果为true,判断索引之前的(不包括该位)是否以第一参数结尾
    </script>

③:String.prototype.repeat:

msg.repeat(3);//结果为:worldworldworld

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值