JavaScript有7种原始类型(string、number、boolean、null、undefined、symbol、bigint)和1种引用类型(object),类型转换分显式(如String()、Number())和隐式(如==、+运算符)两类,需注意隐式转换易引发bug。

JavaScript 有 7 种原始(primitive)数据类型和 1 种引用(object)类型。类型转换分隐式转换(自动发生)和显式转换(手动调用),理解它们的规则能避免常见 bug。
七种原始类型
原始类型是不可变的、按值传递的基本数据单元:
string:如 "hello"、`world` number:如 42、3.14、NaN、Infinity boolean:只有两个值:true 和 false null:表示“空值”,是独立类型(但 typeof null 返回 "object",属历史遗留 bug) undefined:变量声明未赋值、函数无返回值时的默认值 symbol(ES6):唯一且不可变的标识符,常用于对象属性键 bigint(ES2020):表示任意精度整数,如 123n
一种引用类型:object
除原始类型外,其余都是 object 类型的实例,包括:
普通对象:{ name: "Alice" } 数组:[1, 2, 3](本质是特殊对象) 函数:function() {}(函数也是对象,可添加属性) 日期:new Date() 正则:/abc/g Map、Set、Promise、Error 等内置构造器实例
注意:typeof []、typeof null、typeof new Date() 都返回 "object",需用 Array.isArray()、Object.prototype.toString.call() 等方式精确判断。
立即学习“Java免费学习笔记(深入)”;
显式类型转换方法
主动把值转为目标类型,最安全可控:
转字符串:String(123)、(123).toString()(注意 null 和 undefined 不能用 .toString())、123 + "" 转数字:Number("42")(严格,Number(" 42 ") → 42,Number("abc") → NaN)、parseInt("42px") → 42(提取开头整数)、parseFloat("3.14em") → 3.14、+"42"(一元加号) 转布尔:Boolean(0)、!!"hello"(双非操作符,常用且简洁)
隐式类型转换场景与规则
JavaScript 在特定运算或比较中会自动转换类型,容易出错,需特别留意:
== 比较:先尝试类型转换再比较(0 == false → true,"0" == false → true)。建议一律使用 ===(全等)避免意外转换 + 运算符:任一操作数为字符串,则全部转字符串拼接(1 + "2" → "12");否则转数字相加(1 + [2] → "12",因为 [2].toString() → "2") 逻辑运算符(||、&&、!):会将操作数转布尔值判断(falsy 值包括 false、0、-0、0n、""、null、undefined、NaN) if / while / 三元条件:内部对条件表达式执行 ToBoolean 转换
以上就是javascript数据类型有哪些_如何进行类型转换?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1544066.html
微信扫一扫
支付宝扫一扫