JavaScript基础(19)_包装类、常见字符串的方法

回顾js中的数据类型,包括以下几种:
基本数据类型:String Number Boolean Null Underfined 
引用数据类型:Object

包装类

js中的包装类是什么?包装类型是指在执行代码的一瞬间把数据包装成引用数据类型。js底层内置的三大构造函数:String Number Boolean。通过这三个包装类,我们可以将基本数据类型的数据转换为对象。

String(): 可以将基本数据类型字符串转换为String对象。
Number(): 可以将基本数据类型的数字转换为Number对象。
Boolean():可以将基本数据类型的布尔值转换为Boolean对象。

为什么需要包装类?
js中的三大基本数据类型(string number boolean),本是无法调用任何属性或方法的(length除外),但针对其基本数据类型的重要性和使用性,创建包装类来增强这三者的功能,使开发者能够更简单便捷的进行开发。

包装类的作用
基本数据类型不能添加属性和方法,方法和属性只能添加给对象,不能添加给基本数据类型。当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法;调用完以后,再将其转换为基本数据类型

注意:同样的包装类,每一次调用,都会产生不同的对象(对象地址的唯一性)

示例:

var s = 123;

//浏览器临时隐式转换 s = new Number(123) 使其为对象1(123),这样才能调用原型方法tostring。
s = s.toString(); 
//转换完成后销毁对象123,再将其转换为基本数据类型。

//此时又临时隐式转换 s = new Number(123) 使其为新对象2(123,此时对象地址为新地址)。
s.hello = "你好";
转换完成后销毁对象2,再将其转换为基本数据类型。

//此时还是临时隐式转换 s = new Number(123) 使其为新对象3(123,此时对象地址为新地址),此时对象地址不同,所以里面的hello属性也就自然找不到。
console.log(s.hello);
转换完成后销毁新对象3,再将其转换为基本数据类型。

常见字符串的方法

在底层字符串是以字符数组的形式保存的,一个字符相当于数组中的一个元素,也包含空格。如:hello ==> ["h","e","l","l","o"]

length获取字符串的长度。
charAt()返回指定位置的字符(根据索引获取指定的字符),作用和.[]一样。
charCodeAt()返回在指定的位置的字符的Unicode编码。
fromCharCode()根据字符编码去获取字符。该方法必须用原型对象String调用。
concat()连接两个或多个字符串。作用和+一样
indexof()检索一个字符串中是否含有指定内容。如果字符串中含有该内容,则会返回其第一次出现的"索引"。如果没有找到指定内容,则返回-1。可以指定第二个参数,指定开始查找的位置。
lastIndexOf()该方法的用法和indexOf()一样,不同的是indexOf是从前往后找,而lastIndexOf是从后往前找。
slice()、substring()、substr()可以从字符串中截取指定的内容。不会影响原字符串,将截取到的内容返回。
split()可以将一个字符串拆分为一个数组。参数:需要一个字符串作为参数,将会根据该字符串去拆分数组。注意:如果传递一个空串作为参数,则会将每个字符都拆分为数组中的一个元素。

toUpperCase()

将一个字符串转换为大写并返回。
toLowerCase() 将一个字符串转换为小写并返回。

slice()、substring()、substr()方法解析:
相同点:
参数:第一个,开始位置的索引(包括开始位置) 。第二个,结束位置的索引(不包括结束位置,除了substr())。
注意:如果省略第二个参数,则会截取到后边所有的。

不同点:
1、slice()可以传递一个负数作为第二个参数,负数的话将会从后边往前计算。
2、subString()不能接受负值作为参数,如果传递负值,则默认变为0,且自动调整参数位置(第二个参数小于第一个则自动交换)。
3、substr()第二个参数表示截取的长度。

示例:

    <script>
        var str = "hello world!"
        console.log(str.length);
        console.log(str.charAt(1));
        console.log(str.charCodeAt(6))
        console.log(String.fromCharCode(119));
        console.log(str.concat(" hello"," everyone!"))
        console.log(str.indexOf("w"));
        console.log(str.lastIndexOf("w"));
        console.log(str.slice(0,3));
        console.log(str.slice(0,-3));
        console.log(str.substring(0,3));
        // 相当于: console.log(str.substring(0,1));
        console.log(str.substring(1,-3));
        console.log(str.substr(2,3));
        console.log(str.split("o"));
        console.log(str.split(""));
        console.log(str.toUpperCase());
        console.log(str.toLocaleLowerCase());
    </script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值