转为字符串
- toString() 方法
最常见的就是该类型的 toString()
他不会改变原数据,会将结果以返回值的形式给出
null
和 undefined
没有 toString()
方法
let a = 123
a = a.toString()
console.log(typeof a) //string
- toLocaleString() 方法
toLocaleString()
的本地化方法,他不会改变原数据,会将结果以返回值的形式给出
null
和 undefined
没有 toLocaleString()
方法
需要注意有些时候 toLocaleString()
和 toString()
的值是有不同的
let a = 123
a = a.toLocaleString()
console.log(typeof a) //string 123
- String() 函数
将需要转换的值作为参数传给 String() 函数
Number
和 Boolean
就是调用 toString()
null
和 undefined
会分别转换为字符串 'null'
和 'undefined'
let a = 123
a = String(a)
console.log(typeof a) //string
- 空字符串
Symbol
类型会报错
let a = 123
a = a + ""
console.log(typeof a,a) //string 123
- 模板字符串
Symbol
类型会报错
let a = 123
a = `${a}`
// ES6 语法 ${} 内写变量和计算等
console.log(typeof a,a) //string 123
- 数组转字符串的 join() 方法
let arr = [1,2,3]
arr = arr.join()
console.log(typeof arr,arr) //string 1,2,3
- JSON 的 stringify() 方法
只转可以转换的,字符串转换时会加一层引号
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]}
转为数字
- Number() 函数
将需要转换的值作为参数传给 Number()
函数
- 字符串转为数字
- 纯数字字符串 --> 数字
- 包含其他非数字的字符串 -->
NaN
- 空字符串或全是空格的字符串 -->
0
- 布尔值转为数字
-
true
-->1
-
false
-->0
-
null
转为数字0
-
undefined
转为数字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() 函数
-
parseInt()
函数不改变原字符串,解析一个字符串,并返回一个整数。 -
接受第二个参数作为解析的基数
-
如果字符串的第一个字符不能被转换为数字,那么
parseInt()
会返回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() 函数
-
parseFloat()
函数不改变原字符串,解析一个字符串,并返回一个浮点数。 -
如果字符串的第一个字符不能被转换为数字,那么
parseFloat()
会返回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
转为数组
字符串转数组
- split()
通过字符串的 split()
方法,将需要通过切割的标识符传入,
第二个参数是数组的最大长度
不改变原数组
String.split() 执行的操作与 Array.join 执行的操作是相反的
"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()
就是将一个类数组对象或者可遍历对象转换成一个真正的数组的方法
第二个参数是一个类似遍历每一项的函数对每一项进行处理,
Array.from("123") //['1', '2', '3']
Array.from([1, 2, 3], x => x + x) //[2, 4, 6]
数组去重
function combine(){
let arr = [].concat.apply([], arguments); //没有去重复的新数组
return Array.from(new Set(arr));
}
var m = [1, 2, 2], n = [2,3,3];
console.log(combine(m,n)); // [1, 2, 3]
- ES6 解构
[..."123"] //['1', '2', '3']
网友评论