数据类型及转换

原始值(基本数据类型)存储位置:stack栈数据 容器内容不可变

Number 数字类型 :整数 浮点数
  • 数字最大值
    Number.MAX_VALUE 输出 1.7976931348623157e+308
    若超过最大值则 输出 infinity -infinity
  • NaN
  • 数字最小值
    Number.MIN_VALUE 输出 5e-324
String 字符串:" 内容" 或 '内容'
  • "表示 " 、\n 表示换行、\t表示制表符tab、\\ 表示 \
boolean 布尔:true false
Underfined 未定义:未初始化,未知类型
null 空,占位符:null
  • typeof返回值object

引用值(引用数据类型) 存储位置:heap堆数据 ,赋值过去的是地址(容器),push后内容会变

object 对象:各种值组成的集合
ES6 新增了Symbol

强制类型转换

其他数据类型转换为string

方法一:调用被转换数据类型的toString()方法

  • 格式:被转换数据类型.toString();
  • 但是null dundefined没有toString方法,如果调用会报错
  • 不会影响原变量,会将转换的结果返回

方法二:调用String()函数,并将被转换的数据作为参数传递给函数

  • 格式: String();
  • 对于null和undefined ,直接转换为字符串"null" ,字符串"undefined"
    方法三:'' "" 本质调用了String()函数
其他数据类型转换为number
  • 在JS中如果需要表示16进制的数字,需要以0x开头。
    如果表示8进制的数字,需要以0开头。
    如果要表示2进制的数字,需要以0b开头(不是所以浏览器都支持,不推荐)
  • 注意: 空串 空格 = 0
    -不仅仅是数值 = NaN
    true=1 false=0 null=0
    undefined=NaN
    方式一:调用Number();函数
    方式二:使用+ -,本质是调用Number函数,但是会改变数值的正负性
    方式三:可以通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)parseInt/parseFloat都会从左至右的提取数值, 一旦遇到非数值就会立即停止, 停止的时候如何还没有提取到数值, 那么就返回NaN,parseInt/parseFloat都会将传入的数据当做字符串来处理
        let value = true;
        // let num = Number(value);
        // let num = +value;
        let num = parseInt(value); // parseInt("true");
        console.log(num);
        console.log(typeof num);

例如


parseInt(a,10); 将x转换为10进制。
其他数据类型转换为Boolean,调用Boolean函数

1.将String类型转换为布尔类型
只要字符串中有内容都会转换为true, 只有字符串中没有内容才会转换为false

2.将Number类型转换为布尔类型
只有数值是0才会转换为false, 其它的都会转换为true
如果是NaN也会转换为false

3.将undefined类型转换为布尔类型
undefined会转换为false

4.将null类型转换为布尔类型 null会转换为false

5.空字符串/0/NaN/undefined/null 会转换成false, 其它的都是true

6.对象 也是 true

例如
数据类型及转换_第1张图片

你可能感兴趣的:(数据类型及转换)