Skip to content

常见内置类一 ​

一、认识包装类型 ​

JavaScript 的原始类型并非对象类型,是没有办法获取属性或者调用方法的,为了使其可以获取属性和调用方法,对其封装了对应的包装类型。

但通常 JavaScript 引擎会进行很多优化,可以跳过创建包装类型的过程在内部直接完成属性的获取或者方法的调用。

包装类型的使用过程: 默认情况下,调用原始类型的属性或方法时会进行如下操作

  1. 根据原始值,创建应该原始类型对应的包装类型对象
  2. 调用对应的属性或方法,返回一个新的值
  3. 创建的包装类型对象被销毁

字面量创建字符串

javascript
var nickname = 'Mocha'
console.log(nickname.length) // 5
console.log(nickname.split('')) // ['M', 'o', 'c', 'h', 'a']

原始类型手动创建对象

javascript
var username = new String('Latte')
console.log(username.length) // 5
console.log(username.split('')) // ['L', 'a', 't', 't', 'e']

二、数字类型 Number ​

类属性(静态属性) ​

  • MAX_VALUE: 最大数值
  • MIN_VALUE: 最小数值
  • MAX_SAFE_INTEGER: 最大的安全整数
  • MIN_SAFE_INTEGER: 最小的安全整数
javascript
console.log(Number.MAX_VALUE) // 1.7976931348623157e+308
console.log(Number.MIN_VALUE) // 5e-324
console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER) // -9007199254740991

实例方法 ​

  • toString(base): 将数字转成字符串并按 base 进制转化,base 范围可以从 2 到 26,默认情况是 10
  • toFixed(digits): 格式化一个数字(四舍五入),保留 digits 位小数,digits 范围是 0 到 20(包括 20)

转二进制

javascript
var num = 100

console.log(num.toString(2)) // 1100100

// 注意:如果直接对一个数字操作,需要用..运算符
console.log((100).toString(2)) // 1100100

保留两位小数

javascript
var pi = 3.1415926

console.log(pi.toFixed(2)) // 3.14

类方法 ​

  • parseInt: 返回整数,不会四舍五入
  • parseFloat: 返回浮点数,不会四舍五入
javascript
var num = '123.456'

console.log(Number.parseInt(num)) // 123
console.log(Number.parseFloat(num)) // 123.456

// 简写:省略Number
console.log(parseInt(num)) // 123
console.log(parseFloat(num)) // 123.456

三、数字对象 Math ​

Math 是一个内置对象,拥有一些数字常数属性和数字函数方法。

常见属性 ​

  • PI:圆周率
javascript
console.log(Math.PI) // 3.141592653589793

常见方法 ​

  • floor: 向下取整
javascript
var num = 3.55

console.log(Math.floor(num)) // 3
  • ceil: 向上取整
javascript
var num = 3.55

console.log(Math.ceil(num)) // 4
  • round: 四舍五入
javascript
var num = 3.55

console.log(Math.round(num)) // 4
  • random: 生成一个[0,1)的随机小数
javascript
// 随机生成5~50的随机数
var randomNum = Math.floor(Math.random() * 45) + 5

console.log(randomNum) // 6
  • pow: 求 x 的 y 次方
javascript
console.log(Math.pow(2, 3)) // 8

四、字符串类型 String ​

属性:length ​

javascript
var message = 'hello message'

console.log(message.length) // 13

访问字符串位置 ​

  • 索引: 找到了返回索引值,找不到返回 undefined
javascript
var message = 'hello message'

console.log(message[4]) // o
  • chartAt(pos): 找到了返回索引值,找不到返回空字符串
javascript
var message = 'hello message'

console.log(message.charAt(4)) // o

遍历字符串方式 ​

  • for循环
javascript
var message = 'hello message'

for (var i = 0; i < message.length; i++) {
	console.log(message[i])
}

// h e l l o m e s s a g e
  • for..of
javascript
var message = 'hello message'

for (var char of message) {
	console.log(char)
}

// h e l l o m e s s a g e

字符串定义后不可修改 ​

javascript
var message = 'hello message'

message[2] = 'a'

console.log(message) // hello message

字符大写 ​

javascript
var message = 'hello message'

console.log(message.toUpperCase()) // HELLO MESSAGE

字符小写 ​

javascript
var message = 'hello message'

console.log(message.toLowerCase()) // hello message

查找字符串

  • indexOf(searchString, fromIndex): 查询到返回索引值,查询不到返回-1
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'
var name = 'Mocha'

var indexOfResult = intro.indexOf(name)
if (indexOfResult !== -1) {
	console.log('找到了', indexOfResult) // 找到了 11
}
  • includes(searchString): 查询到返回true,查询不到返回false
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'
var name = 'Mocha'

var includesResult = intro.includes(name)
if (includesResult) {
	console.log('找到了', includesResult) // 找到了 true
}
  • startsWith(searchString): 是否以 xxx 开头,成功返回true,反之返回false
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'
var name = 'Mocha'

var startsWithResult = intro.startsWith('my')
if (startsWithResult) {
	console.log('是以my开头', startsWithResult) // 是以my开头 true
}
  • endsWith(searchString): 是否以 xxx 结尾,成功返回true,反之返回false
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'
var name = 'Mocha'

var endsWithResult = intro.endsWith('1.88')
if (endsWithResult) {
	console.log('是以1.88结尾', endsWithResult) // 是以1.88结尾 true
}

替换字符串 ​

replace(searchValue, replaceValue)

javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'
var newIntro = intro.replace('Mocha', 'Latte')

console.log(newIntro) // my name is Latte, age is 18, height is 1.88

截取子字符串 ​

  • slice(start, end) - 常用
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'

var sliceName = intro.slice(11, 16)
console.log(sliceName) // Mocha
  • substring(start, end)
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'

var substringName = intro.substring(11, 16)
console.log(substringName) // Mocha
  • substr(start, length) - 兼容性一般
javascript
var intro = 'my name is Mocha, age is 18, height is 1.88'

var substrName = intro.substr(11, 5)
console.log(substrName) // Mocha

字符串拼接 ​

concat(...string[])

javascript
var str1 = 'Hello'
var str2 = ' World'
var str3 = '!'

console.log(str1.concat(str2, str3)) // Hello World!

删除收尾空格 ​

trim()

javascript
var deleteStrTrim = '  hello world !  '

console.log(deleteStrTrim.trim()) // hello world !

字符串分割 ​

split(separator)

javascript
var splitStr = 'aaa-bbb-ccc-ddd'

console.log(splitStr.split('-')) // ['aaa', 'bbb', 'ccc', 'ddd']