轉(zhuǎn)為字符串
- toString() 方法
最常見(jiàn)的就是該類型的 toString() 他不會(huì)改變?cè)瓟?shù)據(jù),會(huì)將結(jié)果以返回值的形式給出
null 和 undefined沒(méi)有 toString() 方法
let a = 123
a = a.toString()
console.log(typeof a) //string
- toLocaleString() 方法
toLocaleString() 的本地化方法,他不會(huì)改變?cè)瓟?shù)據(jù),會(huì)將結(jié)果以返回值的形式給出
null 和 undefined沒(méi)有 toLocaleString() 方法
需要注意有些時(shí)候 toLocaleString() 和 toString() 的值是有不同的
let a = 123
a = a.toLocaleString()
console.log(typeof a) //string 123
- String() 函數(shù)
將需要轉(zhuǎn)換的值作為參數(shù)傳給 String() 函數(shù)
Number 和 Boolean 就是調(diào)用 toString()
null 和 undefined 會(huì)分別轉(zhuǎn)換為字符串 'null' 和 'undefined'
let a = 123
a = String(a)
console.log(typeof a) //string
- 空字符串
Symbol 類型會(huì)報(bào)錯(cuò)
let a = 123
a = a + ""
console.log(typeof a,a) //string 123
- 模板字符串
Symbol 類型會(huì)報(bào)錯(cuò)
let a = 123
a = `${a}`
// ES6 語(yǔ)法 ${} 內(nèi)寫(xiě)變量和計(jì)算等
console.log(typeof a,a) //string 123
- 數(shù)組轉(zhuǎn)字符串的 join() 方法
let arr = [1,2,3]
arr = arr.join()
console.log(typeof arr,arr) //string 1,2,3
- JSON 的 stringify() 方法
只轉(zhuǎn)可以轉(zhuǎn)換的,字符串轉(zhuǎn)換時(shí)會(huì)加一層引號(hào)
let obj = {
name:"obj",
type:true,
arr:[1,2,3],
}
obj = JSON.stringify(obj)
console.log(typeof obj,obj) //string {"name":"obj","type":true,"arr":[1,2,3]}
轉(zhuǎn)為數(shù)字
- Number() 函數(shù)
將需要轉(zhuǎn)換的值作為參數(shù)傳給 Number() 函數(shù)
- 字符串轉(zhuǎn)為數(shù)字
- 純數(shù)字字符串 --> 數(shù)字
- 包含其他非數(shù)字的字符串 -->
NaN - 空字符串或全是空格的字符串 -->
0
- 布爾值轉(zhuǎn)為數(shù)字
-
true-->1 -
false-->0
null轉(zhuǎn)為數(shù)字0undefined轉(zhuǎn)為數(shù)字NaN
let str = "123"
str = Number(str)
alert(typeof str+":"+ str) // "123" number:123
alert(typeof str+":"+ str) // false number:0
alert(typeof str+":"+ str) // true number:1
alert(typeof str+":"+ str) // null number:0
alert(typeof str+":"+ str) // undefined number:NaN
- parseInt() 函數(shù)
parseInt()函數(shù)不改變?cè)址?解析一個(gè)字符串,并返回一個(gè)整數(shù)。接受第二個(gè)參數(shù)作為解析的基數(shù)
如果字符串的第一個(gè)字符不能被轉(zhuǎn)換為數(shù)字,那么
parseInt()會(huì)返回NaN
let str = "123"
str = parseInt(str)
alert(typeof str+":"+ str) //"123" number:123
alert(typeof str+":"+ str) //"123px" number:123
alert(typeof str+":"+ str) //"123.123px" number:123
alert(typeof str+":"+ str) //12*2 number:24
alert(typeof str+":"+ str) //" " number:NaN
alert(typeof str+":"+ str) //null number:NaN
alert(typeof str+":"+ str) //age:22 number:NaN
- parseFloat() 函數(shù)
parseFloat()函數(shù)不改變?cè)址?解析一個(gè)字符串,并返回一個(gè)浮點(diǎn)數(shù)。如果字符串的第一個(gè)字符不能被轉(zhuǎn)換為數(shù)字,那么
parseFloat()會(huì)返回NaN
let str = "123.123px"
str = parseInt(str)
alert(typeof str+":"+ str) //"123.123px" number:123.123
alert(typeof str+":"+ str) //"123.123 123" number:123.123
alert(typeof str+":"+ str) //"123.123px123" number:123.123
轉(zhuǎn)為數(shù)組
字符串轉(zhuǎn)數(shù)組
- split()
通過(guò)字符串的 split() 方法,將需要通過(guò)切割的標(biāo)識(shí)符傳入,
第二個(gè)參數(shù)是數(shù)組的最大長(zhǎng)度
不改變?cè)瓟?shù)組
String.split() 執(zhí)行的操作與 Array.join 執(zhí)行的操作是相反的
"123".split("") // ["1","2","3"]
"1,2,3".split(",") // ['1', '2', '3']
"1234".split("",3) // ['1', '2', '3']
"1asdas2fdgdf3ewqwe4cbcvb".split(/[a-zA-Z]{2,}/,3) // ['1', '2', '3']
- Array.from()
Array.from() 就是將一個(gè)類數(shù)組對(duì)象或者可遍歷對(duì)象轉(zhuǎn)換成一個(gè)真正的數(shù)組的方法
第二個(gè)參數(shù)是一個(gè)類似遍歷每一項(xiàng)的函數(shù)對(duì)每一項(xiàng)進(jìn)行處理,
Array.from("123") //['1', '2', '3']
Array.from([1, 2, 3], x => x + x) //[2, 4, 6]
數(shù)組去重
function combine(){
let arr = [].concat.apply([], arguments); //沒(méi)有去重復(fù)的新數(shù)組
return Array.from(new Set(arr));
}
var m = [1, 2, 2], n = [2,3,3];
console.log(combine(m,n)); // [1, 2, 3]
- ES6 解構(gòu)
[..."123"] //['1', '2', '3']