javaScript 常见的类型转换

JavaScript 中的类型转换

​ javascript 可以进行强制类型转换和隐性类型转换,这里整理了一些常见的类型转换的情况,如有遗漏的情况,欢迎补充!

字符串转数组

字符串:const str = "hello World"

const str = "helloWorld"
let a = [], b = [], c = [], d = [], e = [], f = [], g = []

// 第一种
a = str.split('')

// 第二种
b = [...str]

// 第三种
c = Array.from(str)

// 第四种
let len = str.length
for (let i = 0; i < len; i++) {
    d.push(str.charAt(i))
}

// 第五种
for (const item in str) {
    if (Object.hasOwnProperty.call(str, item)) {
      const element = str[item];
      e.push(element)
    }
}

// 第六种
f = Object.values(str)
g = Object.values.call('', str)
数组转字符串
let arr = ['h', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd']
let a = '', b = '', c = '', d = '', f = ''

// 第一种
// a = arr.join("-")
a = arr.join("")

// 第二种
b = (arr + "").replace(/,/g, '')

// 第三种
c = arr.toString().replace(/,/g, '')

// 第四种
for (let i = 0, len = arr.length; i < len; i++) {
    d += arr[i]
}

// 第五种 使用for of,不要使用for in,因为forIn 在循环的时候,顺序是不确定的
for(let i of arr){
   f += i
}   
布尔 Boolean

Boolean 如果需要,作为第一个参数传递的值将转换为布尔值。如果省略或值0-0nullfalseNaNundefined,或空字符串(""),该对象具有的初始值false。所有其他值,包括任何对象,空数组([])或字符串"false",都会创建一个初始值为true的对象。

**注意:**不要将基本类型中的布尔值 truefalse 与值为 truefalseBoolean 对象弄混了 JavaScript|MDN

MDN推荐在声明已给 boolean的时候不用new 的方式

booleanvar x = Boolean(expression);     // 推荐
var x = !!(expression);          // 推荐
var x = new Boolean(expression); // 不太好

注意这里通过Boolean new 出来实例,即使是false 类型的,if 判断也是可以通过过

// 初始值`false` 的Boolean 实例
let fla1 = new Boolean(0)
let fla2 = new Boolean(-0)
let fla3 = new Boolean(null)
let fla4 = new Boolean(false)
let fla5 = new Boolean(NaN)
let fla6 = new Boolean(undefined)
let fla7 = new Boolean('')

let flaArr = [fla1,fla2,fla3,fla4,fla5,fla6,fla7]

flaArr.map(flaItem=>{
  if(flaItem) console.log("循环执行了")
})
  
// 应为实例是一个对象,所以可以通过if 判断
flaArr.map(flaItem=>{
   console.log(flaItem)  // 全部都是  Boolean {false}
   console.log(typeof flaItem)  //全部都是  object
})

使用推荐的方法

let fla1 =  Boolean(0)
let fla2 =  Boolean(-0)
let fla3 =  Boolean(null)
let fla4 =  Boolean(false)
let fla5 =  Boolean(NaN)
let fla6 =  Boolean(undefined)
let fla7 =  Boolean('')

let flaArr = [fla1,fla2,fla3,fla4,fla5,fla6,fla7]

flaArr.map(flaItem=>{
  if(!flaItem) console.log("循环执行了") //全部打印“循环执行了” ,注意这里的if取反了 
})
  
flaArr.map(flaItem=>{
   console.log(flaItem)  // 全部都是 false
   console.log(typeof flaItem)  // 全部都是 boolean ,注意这个是基本累心,不是Boolean包装对象
})

回归正题,开始 boolean 类型的转换

转为字符串

// 转为字符串
console.log(String(false)) // false string
console.log(String(true)) // true string
 
console.log((false)+"") // false 
console.log((true)+"") // true 

转为数值

console.log(Number(false)) // 0
console.log(Number(true))  // 1

console.log((false)+0) // 0
console.log((true)+0)  // 1
null 和 undefined

转Boolean

Boolean(null) // false
boolean(undefined) // false

转数值

Number(null) // NaN
Number(undefined)  // NaN

转字符串

String(null) // 'null'
Stirng(undefined) // 'undefined'
数值 Number

数值转字符

2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算
 2 + '' 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值