在百度上做网站免费自动交易软件app

张小明 2026/1/11 10:33:58
在百度上做网站,免费自动交易软件app,网页制作与设计调试分析,浙江建设厅网站首页在 JavaScript 编程中#xff0c;数据类型是构建所有程序的基础#xff0c;理解它的分类、判断方式以及不同类型的核心差异#xff0c;是写出健壮代码、避免隐蔽 Bug 的关键。本文将全面拆解 JS 数据类型的相关知识点#xff0c;从分类到实操#xff0c;帮你彻底吃透这一基…在 JavaScript 编程中数据类型是构建所有程序的基础理解它的分类、判断方式以及不同类型的核心差异是写出健壮代码、避免隐蔽 Bug 的关键。本文将全面拆解 JS 数据类型的相关知识点从分类到实操帮你彻底吃透这一基础核心内容。一、JS 数据类型的分类与具体种类JavaScript 数据类型分为两大类别共计8 种具体类型这一划分是基于数据的存储方式、访问机制的本质差异而来。1. 两大核心分类基础数据类型也叫原始数据类型、值类型引用数据类型也叫复杂数据类型、引用类型2. 8 种具体数据类型1基础数据类型7 种基础数据类型是不可再分的最小数据单元直接存储具体的值具体包括String字符串类型用于表示文本数据如Hello JS、123单引号、双引号、反引号均可包裹Number数值类型包含整数、浮点数以及特殊数值如100、3.14、NaN非数字、Infinity无穷大Boolean布尔类型仅包含两个值用于表示真假状态true真和false假Undefined未定义类型只有一个值undefined表示变量已声明但未赋值或访问不存在的对象属性时的返回值Null空值类型只有一个值null表示一个有意指向的 “空对象”通常用于手动清空变量的引用SymbolES6 新增的唯一标识类型每个 Symbol 实例都是独一无二的用于解决对象属性名冲突问题如Symbol(name)BigIntES10 新增的大整数类型用于表示超出Number类型安全范围±2^53-1的整数后缀以n标识如9007199254740993n。2引用数据类型1 种核心为 Object引用数据类型本质是对数据的引用存储的是内存地址而非具体值核心类型为Object常见的衍生 / 内置类型都属于Object的子类普通对象{ name: 张三, age: 20 }数组[1, 2, 3, JS]本质是有序索引的对象函数function fn() { return 1; }本质是可执行的对象正则表达式/^\d$/日期对象new Date()等。二、判断 JavaScript 数据类型的常用方法在开发中我们经常需要判断变量的数据类型不同方法有各自的适用场景和局限性以下是 4 种核心判断方式1. typeof 操作符基础数据类型首选typeof是最常用的基础判断方法返回一个表示数据类型的字符串语法typeof 变量/值。适用场景与示例javascript运行// 基础数据类型判断除 null 外均准确 console.log(typeof abc); // string console.log(typeof 123); // number console.log(typeof true); // boolean console.log(typeof undefined); // undefined console.log(typeof Symbol(id)); // symbol console.log(typeof 123n); // bigint // 引用数据类型判断局限性均返回 object 或 function console.log(typeof {}); // object console.log(typeof []); // object console.log(typeof /abc/); // object console.log(typeof function(){}); // function唯一能准确区分的引用类型 // 经典坑null 会返回 object console.log(typeof null); // object局限性无法区分null和普通对象对null会误判为object无法区分数组、正则、普通对象等引用类型均返回object。2. instanceof 操作符判断引用类型的具体子类instanceof基于原型链判断用于检测一个对象是否是某个构造函数的实例语法变量 instanceof 构造函数。适用场景与示例javascript运行// 区分不同引用类型 const arr [1, 2, 3]; const obj { name: 张三 }; const fn function() {}; const reg /^\d$/; const date new Date(); console.log(arr instanceof Array); // true console.log(obj instanceof Object); // true console.log(fn instanceof Function); // true console.log(reg instanceof RegExp); // true console.log(date instanceof Date); // true // 基础数据类型返回 false除了通过构造函数创建的包装对象 console.log(123 instanceof Number); // false console.log(new Number(123) instanceof Number); // true局限性无法判断基础数据类型包装对象除外不推荐使用包装对象原型链可被修改可能导致判断结果失真无法跨窗口 / 跨框架判断不同窗口的构造函数原型不同。3. Object.prototype.toString.call ()万能判断方法这是最准确、最通用的判断方式通过调用 Object 原型上的toString方法返回格式为[object 类型名]的字符串能精准区分所有数据类型。适用场景与示例javascript运行// 基础数据类型全准确 console.log(Object.prototype.toString.call(abc)); // [object String] console.log(Object.prototype.toString.call(123)); // [object Number] console.log(Object.prototype.toString.call(true)); // [object Boolean] console.log(Object.prototype.toString.call(undefined)); // [object Undefined] console.log(Object.prototype.toString.call(null)); // [object Null] console.log(Object.prototype.toString.call(Symbol(id))); // [object Symbol] console.log(Object.prototype.toString.call(123n)); // [object BigInt] // 引用数据类型全准确 console.log(Object.prototype.toString.call([])); // [object Array] console.log(Object.prototype.toString.call({})); // [object Object] console.log(Object.prototype.toString.call(function(){})); // [object Function] console.log(Object.prototype.toString.call(/abc/)); // [object RegExp] console.log(Object.prototype.toString.call(new Date())); // [object Date]优势与注意事项优势万能适配无盲区判断结果最精准注意必须通过call()改变this指向直接调用toString()会根据对象自身的方法返回结果如数组调用toString()会返回数组元素拼接字符串。4. 特殊判断方法针对特定类型除了上述通用方法还有一些针对性的判断方式Array.isArray()专门判断数组比instanceof更可靠可跨窗口判断如Array.isArray([1,2,3]) // trueNumber.isNaN()专门判断是否为真正的NaN弥补typeof NaN返回number的缺陷如Number.isNaN(NaN) // trueNumber.isNaN(123) // false。三、基础数据类型与引用数据类型的核心区别基础数据类型和引用数据类型的差异本质源于存储位置、访问方式的不同具体体现在以下 5 个核心方面1. 存储位置不同基础数据类型存储在 ** 栈内存Stack** 中栈内存具有容量小、访问速度快、先进后出的特点直接存储变量的具体值引用数据类型实际的数据内容存储在堆内存Heap中堆内存容量大、访问速度较慢而变量本身在栈内存中存储的是指向堆内存中数据的内存地址引用地址相当于给堆内存中的数据贴了一个 “地址标签”。2. 赋值 / 传参机制不同基础数据类型采用值传递赋值或传参时会创建一份值的副本新旧变量 / 函数参数与原变量互不影响修改其中一个不会改变另一个javascript运行let a 10; let b a; // 复制 a 的值b 是独立副本 b 20; console.log(a); // 10a 不受 b 修改影响引用数据类型采用引用传递赋值或传参时复制的是栈内存中的引用地址新旧变量 / 函数参数指向堆内存中的同一个数据修改其中一个会影响所有指向该地址的变量javascript运行let obj1 { name: 张三 }; let obj2 obj1; // 复制引用地址obj1 和 obj2 指向同一个堆内存对象 obj2.name 李四; console.log(obj1.name); // 李四obj1 受 obj2 修改影响3. 可变性不同基础数据类型不可变Immutable基础类型的值一旦创建就无法修改我们平时对字符串、数字的 “修改”本质是创建了一个新的值而非修改原有的值javascript运行let str hello; str.toUpperCase(); // HELLO console.log(str); // hello原字符串未被修改返回了新字符串引用数据类型可变Mutable我们可以直接修改堆内存中的数据内容如添加 / 删除对象属性、修改数组元素无需创建新的对象javascript运行let arr [1, 2, 3]; arr.push(4); console.log(arr); // [1,2,3,4]原数组被直接修改4. 比较方式不同基础数据类型值比较判断两个基础类型变量是否相等只需比较它们的具体值是否一致会进行类型转换严格比较值和类型javascript运行console.log(10 10); // true console.log(hello hello); // true console.log(10 10); // false类型不同引用数据类型引用地址比较判断两个引用类型变量是否相等比较的是它们是否指向堆内存中的同一个地址而非数据内容是否一致javascript运行let obj1 { name: 张三 }; let obj2 { name: 张三 }; console.log(obj1 obj2); // false两个对象在堆内存中是不同的地址内容相同但引用不同5. 访问速度与内存管理不同基础数据类型存储在栈内存中访问速度更快内存由 JavaScript 引擎自动分配和释放无需手动管理引用数据类型存储在堆内存中访问时需要先通过栈内存的引用地址找到堆内存中的数据访问速度相对较慢内存回收由垃圾回收机制GC负责当一个对象没有任何引用指向它时垃圾回收机制会在合适时机释放其占用的堆内存。总结JS 数据类型分为基础数据类型7 种和引用数据类型1 种核心 Object共计 8 种基础类型包含 String、Number、Boolean、Undefined、Null、Symbol、BigInt引用类型包含所有 Object 衍生类型数组、函数等类型判断有 4 种核心方式typeof基础类型首选、instanceof引用类型子类判断、Object.prototype.toString.call ()万能精准、特殊方法Array.isArray () 等两类数据的核心差异集中在存储位置栈 / 堆、赋值传参值传递 / 引用传递、可变性不可变 / 可变、比较方式值比较 / 地址比较、内存管理自动释放 / 垃圾回收。掌握这些知识点能帮助我们在开发中更合理地使用变量、避免数据修改冲突、精准判断数据类型为编写高效、可靠的 JavaScript 代码打下坚实基础。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

无锡哪里做网站好深圳品牌策划机构

AlphaFold 3配体预测技术正在彻底改变药物发现和结构生物学研究。想象一下,您只需提供蛋白质序列和配体信息,就能在几小时内获得精确的蛋白质-配体结合模式,而传统实验方法可能需要数月甚至数年。本文将带您从零开始,逐步掌握这项…

张小明 2026/1/8 21:36:37 网站建设

如何查询一个网站的空间大小天眼查企业入口免费

用EmotiVoice为游戏角色注入灵魂级语音表现 在一款沉浸式角色扮演游戏中,当玩家踏入古老遗迹的深处,守卫者低沉而颤抖的声音从阴影中传来:“你竟敢闯入这片禁地!”——如果这句台词只是机械朗读,再宏大的场景也会瞬间失…

张小明 2026/1/9 15:26:41 网站建设

深圳网站建设黄浦网络温州企业网站建设服务

嵌入式学习之路>单片机核心原理篇>(14) ARM 架构 【ARM架构深度解析】嵌入式工程师的处理器架构精要 在嵌入式系统设计中,ARM架构作为现代微处理器的核心基础,其设计思想直接影响着芯片的性能边界与能耗表现。许多开发者对于ARM架构的分层设计与核…

张小明 2026/1/8 20:33:24 网站建设

陈铭生我来找你了湘潭网站优化

第一章:AI Agent 部署性能测试概述在现代人工智能系统开发中,AI Agent 的部署性能直接影响用户体验与系统稳定性。性能测试作为验证其响应能力、资源消耗和并发处理的关键环节,需覆盖从推理延迟到服务吞吐量的多个维度。通过科学设计测试方案…

张小明 2026/1/9 10:03:55 网站建设

石排镇网站建设邯郸大网站

之所以会想写这个,首先是因为在知乎收到了这个推荐的问题,实际上不管是 AutoGLM 还是豆包 AI 手机,会在这个阶段被第三方厂商抵制并不奇怪,比如微信和淘宝一直以来都很抵制这种外部自动化操作,而非这次中兴的 AI 豆包手…

张小明 2026/1/9 15:26:43 网站建设

高端的网站制作手机版的网站怎样做呢

GitStats终极指南:快速生成完整的Git仓库统计报告 【免费下载链接】git_stats GitStats is a git repository statistics generator. 项目地址: https://gitcode.com/gh_mirrors/gi/git_stats 在软件开发过程中,深入了解代码仓库的演变历程对于团…

张小明 2026/1/8 16:47:16 网站建设