浅谈Javascript数据类型
首先js现在有8种数据类型:8种。Number、String、Boolean、Null、undefined、object、symbol、bigInt。
一. Number ------------ 在javaScript中所有的数值都是number类型,包括整数和浮点数;
------------ Number类型使用IEEE754格式来表示整数和浮点值,这也是0.2 + 0.3不等于0.5的原因。
1. number 数字类型。包含:常规数字、NaN。
2. NaN 非数字 不是一个数,但它率属于数字类型
3. isnan 检测一个值是否为非有效数字,如果不是有效数字返回true,反之是有效数字返回false
二. String ------------ String 对象用于处理文本(字符串)。
------------ 声明:1. new String(s); 2.String(s);
1. 当 String() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。
当不用 new 运算符调用 String() 时,它只把 s 转换成原始的字符串,并返回转换后的值。
2. 字符串是 JavaScript 的一种基本的数据类型。
3. String 对象的 length 属性声明了该字符串中的字符数。
4. String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。
5. JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串
,而不是修改原始字符串。
三. Boolean ------------ 对象表示两个值:“true” 或 “false”。
------------ 创建 1. new Boolean(value); 2. Boolean(value);
1. 当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。
2. 如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值。
3. 如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 “false”)。
4. 在 JavaScript 中,布尔值是一种基本的数据类型。Boolean 对象是一个将布尔值打包的布尔对象。Boolean 对象主要用于提供将布尔值转换成字符串的 toString() 方法。
当调用 toString() 方法将布尔值转换成字符串时(通常是由 JavaScript 隐式地调用),JavaScript 会内在地将这个布尔值转换成一个临时的 Boolean 对象,
然后调用这个对象的 toString() 方法。
四. Null(空值) ------------ 是一个表示”无”的对象,转为数值时为0;类型的值只有一个,就是null。
五. undefined(未定义) ------------ 值只有一个,就是undefind。
六. object ------------ 是键值对 (key-value) 的无序复合数据。提供所有 JScript对象通用的功能。
------------ object [可以]认为JavaScript中顶级数据类型.在JavaScript绝大多数高级类型对想都是object类型。
------------ 因为JavaScript是弱类型编程语言,没有类文件的约束所以object类型对象可以在创建后,任意添加属性和函数.
七. symbol ------------ ES 6 引入的一个新的数据类型 Symbol,
------------ 是一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置的属性值。
------------ Symbol是一个不可变的数据类型,用来产生唯一的标识,但是却无法直接访问这个标识。由于他是独一无二的,一般用它作为属性名和常量。
八. bigInt ------------ 数据类型的目的是比数据类型支持的范围更大的整数值。在对大整数执行数学运算时,以任意精度表示整数的能力尤为重要。
使用,整数溢出将不再是问题。
1.可以安全地使用更加准确时间戳,大整数ID等,而无需使用变通方法。
2.它提供了一种方法来表示大于 2的53次方 - 1 的整数。这原本是 Javascript 中可以用 Number 表示的最大数字。BigInt 可以表示任意大的整数。
3.不能和任何 Number 实例(隐式类型转换可能丢失信息)混合运算,两者必须转换成同一种类型。在两种类型来回转换时要小心,
因为 BigInt 变量在转换成 Number 变量时可能会丢失精度。