文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript 数据类型疑难解答:消除常见的困惑

2024-04-02 19:55

关注

1. ES6之前与ES6及以后的类型

ES6(2015)引入了一些新数据类型,例如Set、Map和Symbol。这些类型在ES6之前不存在,并且具有不同的特性和用途。例如,Set是一个无序且唯一值无重复的集合,而Map是一个键值对的集合。

2. 基本类型与引用类型

基本类型(值类型):

引用类型(引用值):

基本类型在内存中独立存储,而引用类型存储指向实际值的指针。当修改引用类型时,将修改实际值,而修改基本类型将创建新值。

3. typeof运算符

typeof运算符返回一种值的类型。然而,它对对象和数组返回的值不一致:

使用以下方法更可靠地检查类型:

Array.isArray([]) // true
Object.prototype.toString.call(null) === "[object Null]" // true

4. NaN与Infinity

NaN(非数字)和Infinity(无穷大)是特殊数值,表示无效或太大而无法表示的值。它们的行为可能令人困惑:

5. 布尔值与数字

布尔值和数字之间存在隐式类型转换:

这可能导致意外行为,例如:

if (true + true) { // true
  // ...
}

6. 原始值与对象包装器

原始值(字符串、数字、布尔值、null、undefined)有相应的对象包装器(String、Number、Boolean、Object、Undefined)。这可能会导致困惑,因为原始值看起来像对象,但实际上不是:

const str = "hello";
console.log(str.toUpperCase()); // "HELLO"

7. 严格相等(===)与宽松相等(==)

严格相等(===)比较值和类型,而宽松相等(==)进行类型转换然后比较。这可能会导致意外结果:

1 == "1" // true (宽松相等)
1 === "1" // false (严格相等)

其他提示

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯