今天是学习JS的第二天,今天我们主要学习了关于数值类型的的转换。
// 什么是数据类型转换
//将一些数据本来的类型 转换成其他的类型(number、string、boolean)
//一、转换数值类型(Number函数(转换的变量))
//1.字符串 只能转换纯数字的字符串,否则会得到一个值NAN not a number不是一个数值
// 空字符串或纯空格字符串 得到0
var a = '123';
// 获取当前的类型 string
console.log(typeof(a))
// 获取转换成number之后的类型 number
console.log(typeof(Number(a)));
var b = '123a';
b = Number(b); //NAN not a number
console.log(b);
var c = '123.33'
console.log(Number(c))
console.log(typeof(Number(c)));
console.log(Number(''));
console.log(Number(' '));
console.log('-----------------------------------------------')
//2. 布尔类型 (true =1 false=0)
console.log(Number(true))
console.log(Number(false))
//3.null 转换成数值类型 0
console.log(Number(null));
//undefined 转换成数值类型 NAN
console.log(Number(undefined))
/*
总结:
使用Number()
字符串 转 数值
是纯数字 则直接转换相应的数字 '100' => 100
不是纯数字则转换为 NAN '100a'=> NAN
空字符串或纯空格 转换 0 ''或' '=>0
布尔 转 数值
true 转换成 1
false 转换成 0
null 转 数值 0
undefined 转数值 NAN
*/
// parseInt解析成整数
// 专门用于将字符串转成数字
console.log(parseInt('12345')) //12345
console.log(parseInt('12345.66')) //12345
console.log(parseInt('12345aaaaa')) //12345
console.log(parseInt('aaaaaaa')) //NAN
console.log(parseInt('1a2a3a4a')) //1
console.log(parseInt('a1b2c4')) //NAN
console.log('-------------------------------------')
//parseFloat解析成小数
// 专门用于将字符串转成数字
console.log(parseFloat('12345')) //12345
console.log(parseFloat('12345.66666')) //12345.666666
console.log(parseFloat('12345.66.66.66'))//12345.66
二、类型转换的应用
// 三种弹窗
// alert('警告框')
// // 用户选择之后 这个函数会得到一个值 确定 true 取消 false
// var res = confirm('确定要取消关注吗?')
// console.log(res)
// // 输入框 这个函数会得到一个值 确定 输入的内容 取消 null
// var res2 = prompt('输入你的手机号')
// 10 10
var num1 = prompt('请输入第一个数字')
var num2 = prompt('请输入第二个数字')
// + 两侧必须是数值类型 才会相加 ,如果有一侧是字符串 会拼接
num1 = parseFloat(num1);
num2 = parseFloat(num2)
// console.log(typeof(num1),typeof(num2))
alert(num1 * num2)
三、字符串的转换
//二、转换为字符串类型。
//一、数值变量.toFixed(保留的小数位)
// 1- 数值转为字符串类型
// 2- 保留指定小数位,四舍五入
// 3- 只能用于数值类型
var num1 = 1000.34651;
num1 = parseFloat(num1.toFixed(3))
alert(typeof(num1))
// toString 强制将其他类型转换为字符串类型(加引号)
// 二、变量.toString();
var a = 10;
console.log(a);
console.log(a.toString()) //'10'
var a = true;
console.log(a);
console.log(a.toString()) //'true'
// 三、String(变量值)
console.log(String(true))
console.log(String(undefined))
四、布尔类型的转换
// 转换为布尔类型(true、false)
// 字符串转换布尔 非空即真(空字符串 ''为假,其他的都为真)
// 数值转布尔 除了0 和NAN之外,都为真
// null undefined 假
// Boolean()
console.log(Boolean(''))
console.log(Boolean('-0'))
console.log(Boolean(0)) //false
console.log(Boolean(1)) //true
console.log(Boolean(null))
console.log(Boolean(undefined))