JavaScript基本包装类型
JavaScript引用类型主要包含基本包装类型、Array类型、Object类型、Date类型、regExp类型等,本文主要介绍基本包装类型及其常用方法。
基本包装类型
JS基本包装类型主要包含三种:Boolean、Number和String类型。
-
String类型
String类型的变量需要通过
String()
构造函数来创建,通过new操作符
初始化一个String类型的实例并传入相关的参数,当直接调用String()方法时,它将会创建一个基本类型的字符串。let str1 = new String('string1'); typeof str1; // Object str1 instanceof String; // true let str2 = String('string2'); typeof str2; // 'string'
无论通过构造函数或者赋值表达式创建一个字符串,它都会继承
String.property
中的一些方法:charAt()
:返回当前字符串索引位置的字符,如果传入的索引不在字符串长度范围内,则返回空字符串。charCodeAt()
:返回当前索引位置的字符串的字符编码。string.fromCharCode()
:将字符编码转换成对应的字符串,可以传入多个编码。indexOf()
:返回某个值第一次出现时的索引值,如果没找到,则返回-1;接收的第二个参数表示查找的起始位置。lastIndexOf()
:从后往前查找对应字符串的索引值,没找到返回-1;第二个参数表示查找的起始位置,如果值大于字符串的长度,则从最后一个字符开始查找。slice()
:根据参数的起始位置截取并创建一个新的字符串,如果参数有负值,则将其与字符串的长度相加;如果第二个参数大于等于第一个参数,返回空字符串。substr()
:第一个参数表示起始位置,第二个参数表示截取的长度,如果参数有负值,第一个参数加上字符串的长度,如果第二个参数为负值或0则返回空字符串。substring()
:两个参数表示起始位置,如果有负值,则将所有有负值的参数转为0。split()
:表示将字符串转换成数组,第一个参数表示按照指定的分隔符进行分割,如果字符串首尾是指定的分隔符,会分割成空字符串,第二个参数表示返回的数组长度。concat()
:将字符串进行拼接,返回一个新的字符串不改变原字符串。toLowerCase()
、toUpperCase()
:将字符串转化成对应的小写或大写字符,返回一个新的字符串不改变原字符串。replace()
:根据参数(正则表达式)替换匹配的字符串,返回一个新的字符串。trim()
、ESNext新增:trimStart()
和trimEnd()
:返回新字符串去掉字符串前后的空格。ES8新增
padStart()
、padEnd()
:根据参数对字符串进行填充,如果长度大于字符串length,添加空格,返回新的字符串。ES7新增
repeat()
:参数表示重复字符串的个数,返回新的字符串let str = 'hello world'; str.charAt(3); // 'l' str.charAt(20); // '' let str4 = str.charCodeAt(4); // 111 string.fromCharCode(str4); // 'o' str.indexOf(l); // 2 str.slice(2, 5); // 'llo' str.slice(-2, -5); // '' str.slice(-5, -2); // 相当于str.slice(6, 9) == 'wor' str.split(); // ["hello world"] str.split(''); // ["h","e","l","l","o"," ","w","o","r","l","d"] str.toLowerCase(); // "HELLO WORLD" str.replace(/llo/, 'i'); // "hei world" str.padStart(14); // " hello world" 三个空格 str.repeat(3); // "hello worldhello worldhello world"
-
Number类型
与String类型类似,通过new操作符创建的是
Number对象
,直接调用Number()
方法返回的是基本的Number类型。Number类型常用的方法有:toString()
:返回数字的字符串值,可以传入一个参数表示返回的进制数字符串格式。valueOf()
:返回对象表示的基本类型的数值。toFixed()
:按照指定的小数位返回数值的字符串表示。var num = 23; num.toString(); // "23" num.toSting(16); // "17" var num1 = new Number(100); num1.valueOf(); // 100 var num2 = 123.2345; num2.toFixed(3); // "123.234" --- Chrome浏览器
-
Boolean类型
Boolean()
构造函数返回的是一个对象,不能直接用于逻辑判断。let bools = new Boolean(true); console.log(bools); // Boolean(true) typeOf bools; // "Object"
生活的理想,就是为了理想的生活