字符串

字符串

    JS中的基本类型数据之一。
存储: 计算机只能够存储二进制 所以存储字符串时 也需要转为二进制 所以就需要有一个对照表 方便将字符和二进制进行转换 这样的内容叫做编码方式 常见的有 ascii unicode 等

定义

  • 字面量
    —JavaScript
    var str = ‘’;
    var str1 = “”;

  • 构造函数
    —JavaScript
    var str = new String(“abcdefg”);
    console.log(str); //String{“abcdefg”}
    console.log(str.toString()); // “abcdefg” toString表示转为字符串
    console.log(str.valueOf()); // “abcdefg” valueOf 获取原始值 也叫做字面量值

注: 这样得到的是一个 字符串对象 注意是对象

包装类型:在面向对象的思想中,一切都得是对象。而JS中有一些基本类型,此时就需要“包装”一下,将这些基本类型包装成对象类型。

字符串也有length属性

—JavaScript
var a = “abcdefg”;
console.log(a[2]); // c

字符串也可以通过下标获取对应的字符
var str = new String(“abcdefg”);
// console.log(str);
// 获取str的下标5的项
// var str1 = str.charAt(5);
// console.log(str1);
// 获取str的下标5的项
// console.log(str[5]);
- 循环
- for (var i in str) {
console.log(str[i]);
}
- for (var i = 0; i < str.length; i–) {
console.log(str[i]);
}
- 比较
- 比较规则: 拿着两个字符串的第一位比较编码 如果分出胜负就出结果 如果相同 去比较第二位的编码 以此类推

方法
        - charAt(index) 选择字符方法
            - index 数字
            - 返回值 字符串中 index 下标位置的字符
        - charCodeAt(index)
            - index 数字
            - 返回值 字符串中 index 下标位置的字符的UNICODE编码
        - concat    连接方法 参数任意个 必须都是字符类型 如果不是会转为字符串
            - 返回值 按照参数顺序拼接出来的字符串
        - slice(start, end) 字符串截取方法
            - start 截取的开始位置(包含)
            - end 截取的结束位置(不包含)
            - 返回值 截取的字符串
        - substring(start, end) 字符串截取方法
            - start 截取的开始位置(包含)
            - end 截取的结束位置(不包含)
            - 返回值 截取的字符串
                 - (a)从 a 开始截取到最后
                 -  ()  全部截取
             > 注: 两个数总是从较小的截取到较大的  当数值为负数时 不会从后往前数
        - substr(start, length) 字符串截取方法
            - start 截取的开始位置
            - end 截取的长度
            - 返回值 截取的字符串
        - split(arg) 字符串分段方法     > 字符变成数组   join把数组变为字符   用括号里的代替 
            - arg 字符串
            - 返回值 以arg分段之后得到的数组     
        - replace(a, b); 替换函数 以b替换a
            - a 被替换下的字符串
            - b 被替换上的字符串
            - 返回值 替换之后的字符串
        - indexOf(str, pos) 搜索方法
            - str 被搜索的字符串
            - pos 搜索的开始位置
            - 返回值 
                - 如果搜索得到 就是str在原字符串中的第一个字符的下标 
                - 如果没有就是-1
        - search(str) 搜索方法
            - str 被搜索的字符串
            - 返回值 str在原字符串中的第一个字符的下标 如果没有就是-1
        - match(str) 匹配方法
            - str 匹配的字符串
            - 返回值 
                - 如果匹配得到 返回数组
                    - 数组的第0项是 匹配到的成员 也就是参数str
                    - 数组有一个index属性 表示匹配到的字符串第一个字符在原字符串中的下标
                    - 数组有一个input属性 表示原字符串
                - 如果匹配不到 返回null
        - toUpperCase() 转大写
        - toLowerCase() 转小写
        - trim   去两端空格
     - ES6 方法
        - startsWith 判定一个字符串是否以另一个字符串开头
            - startsWith("hello");从头检测
            - str.startsWith("llo", 2);从指定的位置检测
        - endsWith 判定一个字符串是否以另一个字符串结尾
            - str.endsWith("world");检测尾部
            - str.endsWith("wo", 8);检测指定位置是否以指定字符结尾
        - includes 检测是否包含指定字符串
            - str.includes("o")
            - str.includes("o", 7);

郑重声明: 所有的字符串方法都不会改变原字符串

为什么字符串居然能够调用方法,它不是基本数据类型吗?

值类型就是值类型 不应该拥有任何方法的
—JavaScript
var a = “str”;
var b = a.replace(“s”, “a”);


字符串这个数据类型,在JS中运行时
JS引擎中解析的时候会先把 a 这个"str"值替换为 var s = new String(“str”);
当a.replace方法调用的时候 等价于
—JavaScript
var s = new String(“str”);
var b = s.repalce(“s”, “a”);
s = null;

因为真正操作的时候是新生成的对象内部在操作 a所保存的"str"只是作为参数传递了进去 在里面复制了一份 操作的是这个"副本" 最终会销毁这个生成的对象

多行字符串 es6

在ES6之前 所有的字符串只能是单行字符串 单引号与双引号定义的都是单行

  • 定义语法
    • ES6定义多行字符串方式
    • 按键位置: 横向数字键1左侧 tab键上侧 esc键下方
  • 插值语法
    • ${}占位符:
      注: 内 是 一 个 J S 执 行 环 境 , 可 以 放 变 量 , 可 以 放 表 达 式 , 可 以 调 用 方 法 可 以 直 接 在 模 板 字 面 量 中 插 入 占 位 符 {}内是一个JS执行环境,可以放变量,可以放表达式,可以调用方法 可以直接在模板字面量中插入占位符 JS{}。
      占位符就如同一个普通字符串一样,可以插入到字符串中的任意位置。
      大括号中可以是任何合法的表达式,并返回此表达式的值,通过占位符可以实现灵活的拼接操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值