12-类型转换--highgh的博客--JavaScript的学习笔记

类型转换

JS 中有六种简单数据类型:undefinednullbooleanstringnumbersymbol,以及一种复杂类型:object

同类型可以运算的, 不同类型之间(转换之后)能运算的

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

let y = true;
let x = y ? 1 : "小甘宝贝";
console.log(x);

//变量x到底是数值还是字符串,取决于另一个变量y的值
//y为true时,x是一个数值    y为false时,x是一个字符串
//x的类型没法在编译阶段就知道     必须等到运行时才能知道

虽然变量的数据类型是不确定的,但是各种运算符对数据类型是有要求的。

如果运算符发现,运算子的类型与预期不符就,会自动转换类型。

比如,减法运算符预期左右两侧的运算子应该是数值,如果不是,就会自动将它们转为数值。

console.log("10" - "4");//6

//上面代码中,虽然是两个字符串相减,但是依然会得到结果数值1,
//原因就在于 JavaScript 将运算子自动转为了数值。

显式类型转换

强制转换主要指使用Number()String()Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。

toString()

String()

Number()

parseInt(string)

parseFloat(string)

Boolean()

有3个函数可以把非数值转换为数值:

Number()

parseInt()

parseFloat()

parseInt()和parseFloat()

专门用于把字符串转换成数值。

parseInt()

parseInt方法用于将字符串转为整数。

console.log(parseInt('666')); //666

如果parseInt的参数不是字符串,则会先转为字符串再转换。

console.log(parseInt(3.14));  //3
// 等同于
console.log(parseInt("3.14")); // 3

parseInt()具有以下特性

(1)只保留字符串最开头的数字,如果遇到不能转为数字的字符就不再进行下去,返回已经转好的部分

console.log(parseInt("2020在公众号上写了6篇文章")); //打印结果:2017

console.log(parseInt("2020.01在公众号上写了6篇文章")); //打印结果仍是:2017   (说明只会取整数)

console.log(parseInt("aaa2017.01在公众号上写了6篇文章")); //打印结果:NaN (因为不是以数字开头)

//如果字符串头部有空格,空格会被自动去除。忽略开始的空格
console.log(parseInt('   666')); //666

console.log(parseInt('8a')); // 8
console.log(parseInt('12**')); // 12
console.log(parseInt('12.34')); // 12
console.log(parseInt('15e2')); // 15
console.log(parseInt('25px')); //25

(2)如果对非 String使用 parseInt()或 parseFloat(),它会先将其转换为 String 然后再操作。【重要】

let a = 168.23;
console.log(parseInt(a)); //打印结果:168  (因为是先将 a 转为字符串"168.23",然后然后再操作)

let b = true;
console.log(parseInt(b)); //打印结果:NaN (因为是先将 b 转为字符串"true",然后然后再操作)

let c = null;
c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只情绪稳定的老虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值