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
评论列表
已有0条评论