当前位置: 首页 > wzjs >正文

重庆网站建设子沃科技网络推广网站

重庆网站建设子沃科技,网络推广网站,安徽省建设厅质量监督站网站,滨州淄博网站建设目录 一、数据类型分类 二、核心区别对比 1. 存储方式 2. 比较方式 3. 类型检测方法 三、特殊类型详解 1. Symbol 2. BigInt 3. null vs undefined 四、常见面试扩展问题 五、总结 一、数据类型分类 JavaScript 数据类型分为 基本数据类型(原始类型&…

目录

一、数据类型分类

二、核心区别对比

1. 存储方式

2. 比较方式

3. 类型检测方法

三、特殊类型详解

1. Symbol

2. BigInt

3. null vs undefined

四、常见面试扩展问题

五、总结


一、数据类型分类

JavaScript 数据类型分为 基本数据类型(原始类型) 和 引用数据类型(对象类型),共 8 种(截至 ES2023):

类型示例特点说明
Undefinedlet a;变量声明未赋值时的默认值
Nulllet b = null;表示空值(故意赋值的空)
Booleantrue / false逻辑值
Number42 / 3.14 / NaN整数、浮点数及特殊数值
String'hello' / "world"文本数据(UTF-16 编码)
SymbolSymbol('id')唯一且不可变的标识符(ES6+)
BigInt123n大整数(ES2020+)
Object{} / [] / ()=>{}复杂数据结构(包括数组、函数等)

二、核心区别对比
1. 存储方式
类型存储位置内存示意图
基本类型栈内存变量 → 值(直接存储)
引用类型堆内存(栈存指针)变量 → 地址指针 → 堆中的对象

示例

// 基本类型
let a = 10;
let b = a; // 值拷贝
b = 20;
console.log(a); // 10(互不影响)// 引用类型
let obj1 = { name: 'John' };
let obj2 = obj1; // 指针拷贝
obj2.name = 'Alice';
console.log(obj1.name); // 'Alice'(指向同一对象)

2. 比较方式
类型比较行为示例
基本类型值相等即可5 === 5 → true
引用类型比较内存地址(是否同一对象){} === {} → false

特殊案例

NaN === NaN;          // false(唯一不等于自身的值)
Object.is(NaN, NaN);  // true(ES6 的严格相等判断)
null == undefined;    // true(抽象相等比较)
null === undefined;   // false(类型不同)

3. 类型检测方法
方法基本类型引用类型
typeof返回类型名(除 null返回 "object" 或 "function"
instanceof无效(始终 false检测构造函数原型链
Object.prototype.toString.call()精准判断所有类型

经典问题

typeof null;          // "object"(历史遗留问题)
typeof [1,2];         // "object"
typeof function(){};  // "function"[] instanceof Array;  // true
({}) instanceof Object; // true

三、特殊类型详解
1. Symbol
  • 唯一性:相同参数的 Symbol 值不相等

    Symbol('key') === Symbol('key'); // false

  • 使用场景:对象唯一属性键、定义私有成员、替代魔法字符串

    const ID = Symbol('id');
    const user = { [ID]: 123 };

2. BigInt
  • 表示方法:数字后加 n 或使用 BigInt() 构造函数

    const bigNum = 9007199254740993n;

  • 特性:不可与普通 Number 混合运算(需显式转换)

3. null vs undefined
对比点nullundefined
含义主动赋值的空值变量未初始化的默认值
使用场景释放对象引用函数参数未传入时的默认值
类型转换Number(null) → 0Number(undefined) → NaN

四、常见面试扩展问题
  1. 深拷贝 vs 浅拷贝

    • 基本类型拷贝值,引用类型拷贝指针

    • 深拷贝实现:JSON.parse(JSON.stringify(obj))(局限:无法处理函数、循环引用)、递归克隆

  2. 包装对象(Boxing)
    基本类型调用方法时自动装箱:

    
    let str = 'hello';
    str.toUpperCase(); // 临时创建 String 对象

  3. 内存管理

    • 基本类型随执行上下文销毁

    • 引用类型依赖垃圾回收机制(标记清除、引用计数)


五、总结

理解 JavaScript 数据类型的关键在于:

  • 两大家族:基本类型(7种) vs 引用类型(Object)

  • 三大差异:存储方式、赋值行为、比较逻辑

  • 特殊成员Symbol 的唯一性、BigInt 的大数处理、null 与 undefined 的语义区别

掌握这些核心概念,能够帮助开发者避免常见陷阱(如意外修改引用类型数据),并写出更健壮的代码。

http://www.dtcms.com/wzjs/475594.html

相关文章:

  • 给我一个网站图片长清区seo网络优化软件
  • 做网站管理员开会怎么演讲创建网站步骤
  • 价钱网站建设百度网址导航主页
  • 网站开发培训泉州百度开户
  • 网站上的图文介绍怎么做首页排名优化公司
  • 北京礼品网站建设淘宝权重查询
  • 做h5的网站页面品牌宣传
  • 常州百度seo网站优化员seo招聘
  • 网页设计与网站建设微信加人推码35一单
  • 邯郸网站建设 安联网络公司怎么创造自己的网站
  • 中铁建设集团门户网站培训机构如何招生营销
  • 网站开发页面怎么进seo网站结构优化的方法
  • 海口网站网站建设百度商业平台
  • 网站独立ip如何做301重定向石家庄网站建设方案
  • 江西做企业网站的公司成都网站设计
  • 自助网站建设系统百度关键词优化的意思
  • 舆情服务公司长沙企业seo服务
  • 政府 门户 网站建设石家庄网站建设
  • 烟台快速建站有哪些公司百度快照不更新怎么办
  • 做程序网站需要什么代码淄博百度推广
  • 网站被黑是怎么回事整合营销
  • 设计 日本 网站2023年第三波疫情9月
  • b2b 网站 建设市场营销公司有哪些
  • 网站建设文化机构google play下载
  • 用爬虫做数据整合网站seo上海公司
  • 网站宣传搭建品牌网络营销策划书
  • 静态网站用什么做百度推广app怎么收费
  • 网站开发程序现在的网络推广怎么做
  • 化州市住房和建设局网站自助建站系统模板
  • 子商务网站建设的一般流程图武汉做seo公司