类型转换

1. 概述

JavaScript是一种动态型语言,变量没有类型限制,可以随时赋予任意值;

2.强制转换

2.1 Number()

数值强制转换Number(要转换的值)

//let str = '123456' ;
//如果这个值本身是字符串的数值,转换后是数字
// console.log(Number(str)) // 123456数值

// let str = 123456;
// 如果这个值本身就是数组,转换后还是数字
// console.log(Number(str)) // 123456数值

//let str = 'Hello World';
// 字符转换成数值是不行的
// console.log(Number(str))//NaN

// 布尔类型转换成数值,true转换成1,false 转换成0;
// let bool = true;
// console.log(Number(bool))  // 1
// let bool = false;
// console.log(Number(bool)); //0

/*
   在我们计算机语言中,最底层的数字,只有0和1,
   在进行数值判断的时候, 0就表示错误,1表示正确
*/

// let un = undefined;
// let un ;
// undefined是一个特殊的数据类型,不能被强制转换成数值
// console.log(Number(un)) //NaN

// let nu = null ;
//console.log(Number(nu)); // 0
2.2 ParseInt()
2.2.1基本用法
//parseInt() 可以转换成整数数值
//let str = '123';
//字符串转换成数值
//console.log(parseInt(str)) //123
/*
假如字符串中有空格,并且数字之间也有空格,
1.第一个数字前有空格,从第二个空格后的数字不会被转换
2.第一个数字前没有空格,从第一个空格后的数字不会被转换
*/
//let str = '12   3';
// console.log(parseInt(str)) //12

//let str = '12D85D' ;
//console.log(Number(str)) //NaN
//console.log(parseInt(str)) //12
parseInt('12D'); //12
parseInt('12.89'); //12
parseInt('15px'); //15
parseInt('19e78'); //19
// parseInt('abd'); //NaN
// parseInt('.87') //NaN
// parseInt('') //NaN
// parseInt('+-*/') //NaN
// parseInt('+12') // 12
2.2.2 进制转换

进制的有效值是2-36进制,

//进制转换
// 2进制  3 进制 4进制
//10进制
// parseInt('1000',2);  //8
// parseInt('1000',6);  //216
// parseInt('1000',10); // 1000
// parseInt('1000',36); //46656

//进制的有效值是2-36进制,
//当第二个是0 null undefined的时候,会直接忽略
// parseInt('1000',0); // 1000
// parseInt('1000',null) //1000
// parseInt('1000',undefined) //1000
// console.log(parseInt('2000',2)) //NaN
3.parseFloat()

parseFloat将字符串转化成浮点数的前提:
1.字符串的开头必须是数字,
2.字符串的开头不能输标点符号、英文、中文
3.除了字符串和数值以外的数据类型不能被转换成浮点数

//将字符串转换成浮点数(带小数点的数);
// let str = '3.14' ;
//字符串转换成浮点数
// console.log(parseFloat(str))//3.14

// let str = '3.14more hell123'
//parseFloat 如果是不能转换成浮点数的字符,就不会再往后继续转换,把已经转换好的字符串显示出来
//console.log(parseFloat(str)) //3.14

//let str = 'more1234'  ;
//console.log(parseFloat(str)) //NaN

// 布尔类型的数据会被转换成NaN
// console.log(parseFloat(true)) // NaN
// console.log(parseFloat(false)) //NaN

// console.log(parseFloat(null)) //NaN
// console.log(parseFloat(undefined)) //NaN

3.String()

在编程语言中,有来必有回;

//在编程语言中,有来必有回;
//有字符串转换成数值,就会有数值转换成字符串;
//让数据类型转换成字符串String();

// 数值转换成字符串
// let str = 123456;
// console.log(String(str)); // 123456  颜色黑色

// 布尔类型转换成字符串
// console.log(String(true)) //true
// console.log(String(false)) //false

// 空值转换成字符串
// console.log(String(null)) //null

// 未定义转换成字符串
// console.log(String(undefined)); //undefined

// 数组转换成字符串
// 逗号保留,中括号去掉
// let arr = [1,2,3,4];
// console.log(arr)
// console.log(String(arr)) // 1,2,3,4

// 对象转换成字符串
let obj = {
    name: '刘佳豪',
    age: 18,
    tz: '150Kg',
    height: '150cm',
    size: '26'
}

// alert(String(obj))
// console.log(String(obj)) // [object Object]

//对象类型的数据结构是JSON格式,JSON格式可以简单理解成对象形势
//怎么让对象类型转换成字符串形势?
//JSON格式的字符串化 JSON.stringify()
//JSON格式的反字符串化,JSON.parse()
console.log(obj);
console.log(String(obj));
console.log(JSON.stringify(obj))
console.log(JSON.parse(JSON.stringify(obj)))

posted @ 2022-05-10 20:54  初晓微芒  阅读(32)  评论(0编辑  收藏  举报