JS 内置API

226 阅读4分钟

一、Number对象

1、toFixed()

把 Number 类型转换为字符串,并四舍五入(只能对 number 类型进行转换)

let num = 2.49 //为 2.5 转换过后为 3
console.log(typeof num);//number(typeof 用于基础数据类型检测,可以检测function,null类型不能判断)
let s = num.toFixed()
console.log(typeof s,s);//返回的是 NumberObject 类型,但是显示为 string 2

2、toString()

把 Number 类型转换为字符串类型(null undefined 类型不能转换),还能把 数 用进制标识

let num = 2.49
console.log(num.toString());//2.49
let arr = [1,2,3,4]
console.log(arr.toString());//1,2,3,4
let obj = {name:'sy'}
console.log(obj.toString());//[object Object]
let blen = true
console.log(blen.toString());//true
let fn = function(){}
console.log(fn.toString());//function(){}
let n = NaN
console.log(n.toString());//NaN
//进制表示
let nums = 32
console.log(nums.toString(2));//2表示二进制,输出为100000

3、valueOf()

返回转换对象的本身类型和值 (null undefined 不能使用)

let num = 234
let s = num.valueOf()
console.log(Object.prototype.toString.call(s),s);//[object number] 234
let str = '12'
console.log(str.valueOf());//string 12
let blen = false
console.log(blen.valueOf());//Boolean false
let n = NaN
console.log(blen.valueOf());//Boolean false
let fn = function(){}
let f = fn.valueOf()
f = function (){return 0}
console.log(fn,f);//f(){} function (){return 0}(function 赋值后改变不会改变原始值 )
let obj = { name: 'lkl', arr: [2, 3, 4] }
let a = obj.valueOf()
a.name = 'sy'
a.arr = [5, 6, 7]
console.log(obj,a);//值是一样的;和基本的赋值一样

二、String 对象

1、charAt()

返回字符串指定位置的值,返回的值为string类型(默认返回下标为0的值,只能对 Sting 类型操作)

let str = 'iaef8678'
let s = str.charAt(1)
console.log(Object.prototype.toString.call(s),s);//[object String] a

2、charCodeAt()

返回字符串指定位置的值的 Unicode 编码(默认返回下标为 0 的值的编码,只能对 String 类型操作)

let str = 'kuiu34'
consl=ole.log(str.charCodeAt(1));//117

3、fromCharCode()

将 Unicode 编码转换为字符

console.log(String.fromCharCode(117,123));//u {

4、concat()

连接两个或更多字符串,返回新的字符串

let str = 'oiio'
let num =  234
let blen = true 
let s = str.concat(num,blen)
console.log(Object.prototype.toString.call(s),s);//[object String] oiio234true
let fn = function(){}
let nu = null
console.log(str.concat(fn,nu));//String oiiofunction (){}null
let n = NaN
let ud = undfined
console.log(n.concat(n,ud));//String oiioNaNundfined

5、indexOf()

返回指定的值在字符串中首次出现的下标位置(没有返回 -1,只能对 string 和 array 操作),注:查找类型与被查找的类型要一致

let num = '117sdf'
console.log(num.indexOf(1));//0
let arr = [1,2,4,5,6,'er',45,'u']
console.log(arr.indexOf('r')//-1
console.log(arr.indexOf('u')//8

6、includes()

检测数组对象中是否有指定值,返回 true 和 false

let str = 'dkjhkl'
console.log(str.includes('d'));//true
let arr = [1,3,4,5,6,7]
console.log(arr.includes(8));//false

7、lastindexOf()

从后向前搜索指定值,返回值最后出现的位置未找到返回 -1

let arr = [1,3,4,5,6,7]
console.log(arr.lastIndexOf(0));//-1
let str = 'kuhh2333'
console.log(arr.lastIndexOf(3));//7

8、replace()

在字符串中查找匹配的值,并替换成想替换的值只能对string类型匹配

let num = '18312543625'
let r = /1/g //在全局寻找1
console.log(num.replace(r,'2'));// 28322543625,在num中把1替换成2
//正则匹配
console.log(num.replace(/^1[3456789]\d{9}$/g,'*'));// *
let str = '你阿萨德佛我看了你'
let r = /你|我/g
//方式1替换
console.log(str.replace(r,'*'));// *阿萨德佛*看了*
//方式2替换
console.log(str.replace(/你|我/g,'*'));// *阿萨德佛*看了*

9、slice()

只能截取字符串或数组,返回新的被截取的部分的值不会改变原始数据:取的下标相同则为空

let str = 'Visit Runoob'
console.log(str.slice(0,5));//Visit 截取从下标0开始到下标5(不包含5)的值
let arr = [1,2,3,4]
console.log(arr.slice(1,5),arr);//[2,3,4] [1,2,3,4]
console.log(arr.slice(1,1));//[]取的下标相同则为空

10、splice() 属于 Array 的 api

只能对数组添加或删除元素,只有两个参数是截取,第三个参数以上是要添加的元素,返回的是截取的值会改变原始数据

let arr = [1, 2, 3, 4]
let s = arr.splice(0, 2, '5', '6')//截取了[1,2]添加了['5','6']
console.log(arr,s);//['5','6',3,4](截取后改变了原数组)  [1,2](返回截取的部分)
let p = arr.splice(1,0,'7')//在第一位后删除0个 添加了一个'7'
console.log(arr,p);//[1,'7',2,3,4]  []

11、split()

把字符串分割为数组;没有空格就是每个字母分开,有空格就是把连在一起的字母组成单词,为数组每一项

let str = 'kjop'
console.log(str.split(''));//['k','j','o','p']无空格
let str2 = 'kjop jkj '
console.log(str2.split(' '));//['kiop','jkj','']有空格

12、substr()

只能对字符串截取,返回被截取的部分,从哪个下标开始(包含下标所对应的值)截取几位,不改变原始数据

let str = 'jkh'
console.log(str.substr(1,1));//k