5.6 基本包装类型

  • 引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。
  • 基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象。

                (1) 创建String 类型的一个实例;
                (2) 在实例上调用指定的方法;
                (3) 销毁这个实例。

1 Boolean类型

Boolean 类型是与布尔值对应的引用类型

var booleanObject = new Boolean(true);
alert(typeof falseObject); //object
alert(falseObject instanceof Boolean); //true

1.1方法

  • valueOf()方法,返回基本类型值true 或false;
  • toString()方法,返回字符串"true"和"false"。

2 Number类型

Number 是与数字值对应的引用类型

var numberObject = new Number(10);
alert(typeof numberObject); //"object"
alert(numberObject instanceof Number); //true

2.1方法

  • valueOf()方法返回对象表示的基本类型的数值
  • toString()则返回字符串形式的数值。
  • toFixed()方法会按照指定的小数位返回数值的字符串表示,参数同下
  • toExponential(),该方法返回以指数表示法(也称e 表示法)表示的数值的字符串形式。该参数同样也是指定输出结果中的小数位数
  • toPrecision()方法可能会返回固定大小(fixed)格式,也可能返回指数(exponential)格式。参数表示数值的所有数字的位数
var num = 10;
alert(num.toFixed(2)); //"10.00"
var num = 10.005;
alert(num.toFixed(2)); //"10.01":如果数值本身包含的小数位比指定的还多,那么接近指定的最大小数位的值就会舍入
2.toFixed(3)//报错
(2).toFixed(3)//'2.000'

var num = 10;
alert(num.toExponential(1)); //"1.0e+1"

var num = 99;
alert(num.toPrecision(1)); //"1e+2"
alert(num.toPrecision(2)); //"99"
aler t(num.toPrecision(3)); //"99.0"

3 String类型

String 类型是字符串的对象包装类型

var stringObject = new String("hello world");

3.1 属性 

length 属性,表示字符串中包含多个字符。

3.2 方法

  • valueOf()和toString()方法,都返回对象所表示的基本字符串值。
名称参数功能原str
charAt()字符索引返回参数所在位置的字符不变
at()同上同上不变
charCodeAt()同上返回参数所在位置的字符编码不变
concat()多个拼接字符串返回拼接后的新字符串不变
slice()[a,b)索引返回被操作字符串的一个子字符串。会将传
入的负值与字符串的长度相加。
不变
substring()[a,b)索引同上。将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0。不变
substr()[a,个数]同上。所有负值参数转为0。不变
repeat()重复次数n返回一个新字符串,表示将原字符串重复n次。不变
indexOf()(指定str,检索位置)从一个字符串中搜索给定的子字符串,返子字符串的位置不变
lastIndexOf()同上同上不变
includes()同上返回是否找到了参数字符串不变
startsWith()同上参数字符串是否在原字符串的头部不变
endsWith()同上参数字符串是否在原字符串的尾部不变
trim()-去掉前后两端空格不变
trimStart()-消除字符串头部的空格不变
trimEnd()-消除尾部的空格不变
toLowerCase()-转小写不变
toUpperCase()-转大写不变
padStart()(长度,补全str)字符串补全长度,用于头部补全不变
padEnd()同上用于尾部补全不变
match()正则表达式返回数组???不变
matchAll()???
search()同上返回字符串中第一个匹配项的索引???不变
replace()(RegExp 对象或str前,str后)返回替换后的字符串不变
replaceAll()同上(带有g修饰符的正则表达式)同上不变
split()(分隔符,长度)返回分割后的数组不变
localeCompare()str参数str在str参数之前,返回-1;相等返回0,之后返回1不变
fromCharCode()多个字符编码返回字符转换后的字符串-
String.fromCodePoint()???
String.raw()???
codePointAt()???
normalize()???
var stringValue = "hello world";
alert(stringValue.charAt(1)); //"e"
alert(stringValue.charCodeAt(1)); //输出"101"
alert(stringValue[1]); //"e"

const str = 'hello';
str.at(1) // "e"
str.at(-1) // "o":倒数的位置

//concat()
var stringValue = "hello ";
var result = stringValue.concat("world", "!");
alert(result); //"hello world!"
alert(stringValue); //"hello"
//slice()、substr()和substring()
var stringValue = "hello world";
alert(stringValue.slice(3)); //"lo world"
alert(stringValue.substring(3, -4)); //"hel"
alert(stringValue.substr(3, 7)); //"lo worl"
//repeat()
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""
'na'.repeat(2.9) // "nana":2
'na'.repeat(-0.9) // "":0
'na'.repeat(-1)// RangeError
'na'.repeat(NaN) // "":0
'na'.repeat('na') // ""
'na'.repeat('3') // "nanana":如果repeat的参数是字符串,则会先转换成数字。
//indexOf()和lastIndexOf()
var stringValue = "hello world";
alert(stringValue.indexOf("o", 6)); //7
alert(stringValue.lastIndexOf("o", 6)); //4
//includes(), startsWith(), endsWith()
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true:它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
s.includes('Hello', 6) // false

//trim()
var stringValue = " hello world ";
var trimmedStringValue = stringValue.trim();
alert(stringValue); //" hello world "
alert(trimmedStringValue); //"hello world"

//trimStart(),trimEnd()
const s = '  abc  ';
s.trim() // "abc"
s.trimStart() // "abc  ":除了空格键,这两个方法对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。
s.trimEnd() // "  abc"

//toUpperCase()和toLowerCase()
var stringValue = "hello world";
alert(stringValue.toUpperCase()); //"HELLO WORLD"
alert(stringValue.toLowerCase()); //"hello world"

//padStart(),padEnd()
'x'.padStart(5, 'ab') // 'ababx'
'x'.padEnd(4, 'ab') // 'xaba'
'xxx'.padStart(2, 'ab') // 'xxx':原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串
'x'.padStart(4) // '   x':如果省略第二个参数,默认使用空格补全长度
'12'.padStart(10, '0') // "0000000012":padStart()的常见用途是为数值补全指定位数
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12":提示字符串格式

//replace()
var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat":只能替换第一个匹配
result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond":替换所有的匹配
'aabbcc'.replaceAll('b', '_')//'aa__cc':替换所有的匹配
result = text.replace(/(.at)/g, "word ($1)");
alert(result); //word (cat), word (bat), word (sat), word (fat)


//split()
var colorText = "red,blue,green,yellow";
var colors1 = colorText.split(","); //["red", "blue", "green", "yellow"]
var colors2 = colorText.split(",", 2); //["red", "blue"]
//localeCompare()
var stringValue = "yellow";
alert(stringValue.localeCompare("brick")); //1
alert(stringValue.localeCompare("yellow")); //0
alert(stringValue.localeCompare("zoo")); //-1
//fromCharCode()
alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello":不能识别大于0xFFFF的码点
String.fromCodePoint(0x20BB7)// "𠮷":可以识别大于0xFFFF的字符

3.3 模板字符串(es6)

  • 反引号语法,空格和缩进都会被保留在输出之中
  • 字符串中嵌入变量,将变量名写在${}之中
// 普通字符串
`In JavaScript '\n' is a line-feed.`
 
// 多行字符串
console.log(`string text line 1
string text line 2`);
 
$('#list').html(`
<ul>
  <li>first</li>
  <li>second</li>
</ul>
`);//空格和缩进都会被保留在输出之中
 
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`//需要将变量名写在${}之中
 
//大括号内部可以放入任意的 JavaScript 表达式,可以进行运算
let x = 1;
let y = 2;
`${x} + ${y} = ${x + y}`// "1 + 2 = 3"
 
// 变量place没有声明,报错
let msg = `Hello, ${place}`;
 
//大括号内部是一个字符串,将会原样输出
//如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。
`Hello ${'World'}`// "Hello World"
 
//模板字符串写成了一个函数的返回值
let func = (name) => `Hello ${name}!`;
func('Jack') // "Hello Jack!"
 
//模板字符串中需要使用反引号,则前面要用反斜杠转义
let greeting = `\`Yo\` World!`;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值