你不知道的javascript之强制类型转换

强制类型转换

首先,先来回顾一下js的数据类型

  1. null
  2. undefined
  3. boolean
  4. number
  5. string
  6. symbol(符号)
  7. object
    前六种为基本数剧类型,也为简单数据类型
开始之前先拓展一个小知识”==”和”===”

常见的误区是”==检查值是否相等,===检查值和类型是否相等”
正确的解释是==允许在相等比较中进行强制类型转换,而===不允许。
先来看一个小例子

    "42"==42//true
    "42"===42//false

一个字符串就和一个数字就相等了,在看了我之前拓展的小知识之后,在==面前”42”被强制转化成为了42,所以就相等了
你对强制类型转换有没有兴趣呢

下面开始我们的正式表演

强制类型转换分为显示和隐式
显示的有String(),Number(),和Boolean()
1. String()

var a = 42;
var b = String(a);
b;//"42"

2.Number()

var c = "3.14";
var d = Number(c);
d;//3.14

3.Boolean()

var a = 0;
var b = 1;
Boolean(a)
Boolean(b)

注:一元运算符!显式的强制转化为布尔值
隐式的有各种运算符
通过重载,”+”运算符既能用于数字加法,也能用于字符串拼接。
一个小例子

var a = "42";
var b = "0";
var c = 42;
var d = 0;
a+b;//"420"
c+d;//42

为什么呢?

简单来说,就是如果”+”的其中一个操作数是字符串(或者通过隐式类型转换能变成字符串)则执行字符串拼接,否则执行数字加法

注:symbol(符号)不能被强制转化为数字(显示隐式都会错)

详细隐式强制类型转化请点击

都看到这里了点波关注再走

猜你喜欢

转载自blog.csdn.net/qq_40776048/article/details/81513352