Number类型,String类型和单体内置对象

JavaScript 2020-05-31 938

1.Number类型

1.toString()
接收一个表示基数(10, 8, 16, 2进制)的参数,默认为10

var num = 10;  

console.log(num.toString()) // "10"  
console.log(num.toString(2)) // "1010"  
console.log(num.toString(8)) // "12"  
console.log(num.toString(10)) // "10"  
console.log(num.toString(16)) // "a"  

2.toFixed()
按照指定的小数位返回数值的字符串表示,按照标准toFixed()可以表示0-20个小数位的数值。但有些浏览器可能支持更多位。

var num = 10;  
console.log(num.toFixed(2)) // "10.00"  
console.log(num.toFixed(3)) // "10.000"  

3.toExponential()
返回以指数表示法(也称e表示法)表示的数值的字符串形式。

var num = 10;  
console.log(num.toExponential(1)) // 1.0e+1  = 1*10的1次方  

4.toPrecision()
兼顾上面两种方法的优点,可以返回固定大小格式,也可以返回指数形式。

var num = 99;  
console.log(num.toPrecision(1)) // 1.0e+2  = 1*10的1次方  
console.log(num.toPrecision(2)) // "99"  2 位数表示  
console.log(num.toPrecision(3)) // "99.0"  3位数表示  

2.String类型

1.字符方法
charAt()方法,以单字符字符串的形式返回给定位置的那个字符。
CharCodeAt(),返回给定位置的字符的字符编码。
2.字符串操作方法
concat(),向字符串后面追加字符串。不会改变原字符串

var text = "hello "  
var result = text.concat("world ", "!");  
console.log(result) // hello world !  
console.log(text) // hello  

3.slice()、substr()、substring()
这三个方法,第一个参数指定字符串的开始位置,slice()和substring()的第二个参数指定的是子字符串最后一个字符后一位字符的位置;substr()的第二个参数指定的则是返回的字符个数。若不指定第二个参数,则将字符串末尾作为结束位置。
这三个方法都不会修改原字符串。

var text = "hello world"  
console.log(text.slice(3)) //  lo world  
console.log(text.substring(3)) // lo world  
console.log(text.substr(3)) // lo world  
console.log(text.slice(3, 7)) // lo w  
console.log(text.substring(3, 7)) // lo w  
console.log(text.substr(3, 7)) // lo worl  

传入负值时,slice()方法会将传入的负值与字符串的长度相加,substr()方法将负的第一个参数加上字符串的长度,而将第二个参数转换为0.substring()方法会将所有的负值参数转为0.

var text = "hello world"  

console.log(text.slice(-3)) //  rld  
console.log(text.substring(-3)) // hello world  
console.log(text.substr(-3)) // rld  
console.log(text.slice(3, -4)) // lo w  
console.log(text.substring(3, -4)) // hel  
console.log(text.substr(3, -4)) // ""  

4.查找字符串,indexOf()和lastIndexOf()
以上两个方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,当匹配到子字符串后,会停止查找。若查找不到会返回-1,区别在于indexOf()从前向后查找,lastIndexOf从后向前查找。

var text = "hello world"  
console.log(text.indexOf('l')) // 2  
console.log(text.indexOf('x')) // -1  
console.log(text.lastIndexOf('l')) // 9  
console.log(text.lastIndexOf('x')) // -1  

5.去除字符串空格
trip(),创建一个字符串副本,删除前置和后缀所有的空格,然后返回结果

var text = "hello world  "  
console.log(text.trim()) // hello world  

6.字符串大小写转换
toLocaleUpperCase(),toUpperCase()将小写转大写。
toLocaleLowerCase(),toLowerCase()将大写转小写。
toLocaleUpperCase(),toLocaleLowerCase()是针对特定地区实现的,大多数情况下,这两个方法与另外两个方法结果没区别。

var text = "hello world"  

console.log(text.toLocaleUpperCase()) // HELLO WORLD   

console.log(text.toUpperCase()) // HELLO WORLD   

console.log(text.toLocaleLowerCase()) // hello world  

console.log(text.toLowerCase()) // hello world  

7.字符串模式匹配
match(),此方法与正则中的exec()方法非常相同。只接受一个参数,要么是正则表达式,要么是RegExp对象。

var text = 'cat, bat, hat, fat'  
var pattern = /.at/  
var result = text.match(pattern)  
console.log(result.index) // 0  
console.log(result) // ['cat']  
console.log(result[0]) // cat  

search(),传入一个参数,参数与match相同,search()返回字符串中第一个匹配项的索引,若没找到,则返回-1.search()每次都是从前向后进行搜索。

var text = 'cat, bat, hat, fat'  
var pattern = /at/  
var result = text.search(pattern)  
console.log(result)//1  

替换字符串
replace(),接受两个参数,第一个参数为RegExp对象或者一个字符串(字符串不被转为正则),第二个参数可以是一个字符串或者函数。若第一个参数为字符串,那么只会替换第一个子字符串,不会全部替换,若希望全部替换,只能用正则表达式,还需指定全局(g)。该方法不会改变原字符串。

var text = 'cat, bat, hat, fat'  
var pattern = /at/  
var result = text.replace('at', 'xx') // cxx, bat, hat, fat  
console.log(result)  
var result = text.replace(pattern, 'xx')  
console.log(result) // cxx, bxx, hxx, fxx  

此外,还可以使用字符序列,来组合一些特殊的字符串

字符序列 替换文本
$$ $
$& 匹配整个模式的子字符串
$' 匹配的子字符串之前的子字符串
$' 匹配的子字符串之后的子字符串
$n 匹配第n个捕获组的子字符串,n为0-9
$nn 匹配第nn个捕获组的子字符串,nn等于01-99
var result = text.replace(/(.at)/g, "word ($1)")  

console.log(result) // word (cat), word (bat), word (hat), word (fat)  

拆分字符串split()
split()接受一个参数,传入字符串或RegExp对象。返回一个数组。

var text = 'cat, bat, hat, fat'  
console.log(text.split(',')) // ["cat", " bat", " hat", " fat"]  

传入RegExp对象

var text = 'cat, bat, hat, fat,gfdd;fvd'  

console.log(text.split(/[,,;]/)) // ["cat", " bat", " hat", " fat", "gfdd", "fvd"]  

8.比较字符串
localeCompare(),比较两个字符串
- 如果字符串在字符表中应该排在字符串参数之前,则返回一个负数(大多数情况下为-1)
- 如果字符串与参数字符串相同,返回0
- 如果字符串在字符表中应该排在字符串参数之后,则返回一个正数(大多数情况下为1)

var text = 'cat'  

console.log(text.localeCompare('bat')) //1  
console.log(text.localeCompare('cat')) //0  
console.log(text.localeCompare('fat')) // -1  

9.编码转字符串
fromCharCode()传入字符串编码转为字符串,与charCodeAt()执行相反操作。

console.log(String.fromCharCode(104, 101, 108, 108, 111)) // hello  

Global对象

所有在全局作用域中定义的属性和函数,都是Global对象的属性。除此外,还包含以下方法:

1.Url编码方法

encodeURI()和encodeURIComponent()方法可以对URI进行编码,encodeURI()是作用于整个uri(https://blog.huyu.info),而encodeURIComponent()则是作用于uri中的一段(/search/?wb=git),主要区别:encodeURI()不会对属于uri本身的特殊字符进行编码,如:冒号,/,?和#,而encodeURIComponent()则会对它发现的非标准字段进行编码。

var uri = 'https://blog.huyu.info/about/# javascript'  
console.log(encodeURI(uri)) // https://blog.huyu.info/about/#%20javascript  
console.log(encodeURIComponent(uri)) // https%3A%2F%2Fblog.huyu.info%2Fabout%2F%23%20javascript  

解码:
decodeURI()和decodeURIComponent(),区别:decodeURI只能对encodeURI()替换的字符进行编码,decodeURIComponent能节码encodeURIComponent()编码的所有字符

console.log(decodeURI('https://blog.huyu.info/about/#%20javascript'))  
console.log(decodeURIComponent('https%3A%2F%2Fblog.huyu.info%2Fabout%2F%23%20javascript'))  
// https://blog.huyu.info/about/# javascript  
// https://blog.huyu.info/about/# javascript  
2.eval方法

只接受一个参数,即js的字符串。

eval('console.log("hello")') // hello  

严格模式下,外部访问不到eval()创建的任何变量和函数。

3.window对象

在浏览器中都是将全局对象作为window对象的一部分加以实现的。因此,在全局作用域中声明的函数和变量,都成为window的属性。

var x = '123'  
console.log(window.x) // '123'  
4.Math对象

max和min用于对一组数组取最大或最小

console.log(Math.max(1,2,3,4,5)) //5  
console.log(Math.min(0.5,4,5,9,2,-6)) // -6  

对数组中的值取最大和最小

console.log(Math.max.apply(Math, [4,5,9,10,3])) // 10  
console.log(Math.max(...[4,5,9,10,3])) // 10 ES6  

舍入
ceil(), 向上取整
floor(),向下取整
round(),四舍五入

console.log(Math.ceil(1.3)) // 2  
console.log(Math.floor(1.8)) // 1  
console.log(Math.round(1.7)) // 2  

随机数

console.log(Math.random()) // 返回0-1之间的随机数  

其他方法查看:https://www.w3school.com.cn/js/js_math.asp

标签:JavaScript

文章评论

评论列表

已有0条评论