前端技巧第九期JavaScript数据类型

ROS2机械臂MPC轨迹规划实战:从MoveIt 2插件配置到参数调优全流程 本文详细介绍了ROS2机械臂MPC轨迹规划的全流程,从MoveIt 2插件配置到参数调优。通过模型预测控制(MPC)技术,实现高精度运动控制,特别适合复杂装配任务。文章包含环境搭建、插件部署、参数设计及实战调优方法,帮助开发者快速掌握ROS2机械臂的MPC轨迹规划技术。 阅读详情

数据类型

一、原始类型 (Primitive Types)

1:undefined 未赋值的默认类型 let a;
2:null 空值 let b = null;;
3:boolean 布尔值 true / false;
4:number 整数/浮点数/特殊数值 42 / 3.14 / NaN;
5:string string “Hello”;
6:symbol 唯一标识符 (ES6+) Symbol(‘id’);

二、引用类型 (Reference Types)

1:object 对象基础类型 { name: ‘John’ };
2:array 数组 [1, 2, 3];
3:function 函数对象 function() {};

三、类型检测的 3 种方法

1.typeof运算符
typeof "hello"     // "string"
typeof 42          // "number"
typeof true        // "boolean"
typeof undefined   // "undefined"
typeof null        // "object" (历史遗留问题)
typeof Symbol()    // "symbol"
typeof 10n         // "bigint"
typeof {}          // "object"
typeof []          // "object"
typeof function(){}// "function"
2. instanceof 检测原型链
[] instanceof Array    // true{} 
instanceof Object   // true
new Date() instanceof Date // true
3. Object.prototype.toString 终极方案
Object.prototype.toString.call("abc")   // [object String]
Object.prototype.toString.call(123)    // [object Number]
Object.prototype.toString.call(null)   // [object Null]
Object.prototype.toString.call(undefined) // [object Undefined]

四、类型转换

1. 显式类型转换
// 转数字
Number("123")     // 123
parseInt("12.3")  // 12
parseFloat("12.3")// 12.3
// 转字符串
String(123)       // "123"
(123).toString()  // "123"
// 转布尔
Boolean("")       // false
!! "hello"         // true
2. 隐式类型转换(常见陷阱)
"5" + 2    // "52" (字符串拼接)
"5" - 2    // 3    (自动转数字)
null == undefined  // true
"0" == false       // true

五、堆栈内存管理

1. 原始类型存储方式
let a = 10;
let b = a;  // 值拷贝
b = 20;
console.log(a); // 10 (原始值不受影响)
2. 引用类型存储方式
let obj1 = { count: 10 };
let obj2 = obj1;  // 地址引用拷贝
obj2.count = 20;
console.log(obj1.count); // 20 (共享同一内存)

六、常见问题及解决方案

1. 深拷贝实现
// 简单版(无法处理函数、循环引用)
const deepCopy = obj => JSON.parse(JSON.stringify(obj));
// 完整版(递归实现)
function deepClone(source, map = new WeakMap()) {
    if (source instanceof Object) {
        if (map.has(source))
            return map.get(source);
        let target = Array.isArray(source) ? [] : {};
        map.set(source, target);
        for (let key in source) {
            if (source.hasOwnProperty(key)) {
                target[key] = deepClone(source[key], map);
            }
        } return target;
    } return source;
}
2. NaN 检测的正确姿势
// NaN 是唯一不等于自身的值
const isNaN = value => value !== value;
3. 精确数值计算
// 使用整数计算
0.1 * 10 + 0.2 * 10 === 0.3 * 10  // true
// 使用 toFixed 格式化
(0.1 + 0.2).toFixed(2)  // "0.30"

ES6+ 新特性

1. BigInt 大整数处理
const max = 9007199254740991n;  // 结尾加n
console.log(max + 1n);          // 9007199254740992n
2. Symbol 唯一标识符
const uid = Symbol('unique_id');
const obj = {  
	[uid]: '123456'  // 防止属性名冲突
};

八、总结

1.类型判断优先使用 Object.prototype.toString
2.对象拷贝必须使用深拷贝
3.数值计算注意精度问题
4.类型比较使用严格相等 ===
5.新特性合理使用 Symbol 和 BigInt
82、yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理 本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。 阅读详情

相关推荐

AC7811无感FOC实战:从开环到闭环的电机控制调试全记录

本文详细记录了基于国产AC7811芯片实现无感FOC电机控制的全过程。从硬件软件环境搭建、开环I/F启动调试,到滑模观测器参数整定,再到平滑切入闭环及双环PID调节,提供了完整的实战步骤与参数调试心法。文章重点分享了无感控制从开环到闭环切换的关键技巧与常见问题排查清单,为工程师提供了一份避坑指南。

kotlin6android的博客 713

前端周刊第九期

前端周刊发表每周前端技术相关的大事件、文章教程、一些框架的版本更新、以及代码和工具。每周定期发表,欢迎大家关注、转载。 如果外链不能访问,关注公众号前端每周看,里面有解决办法 大事件 TypeScript 4.6 发布(它甚至使非 TS 用户受益!)——JavaScript 的类型化超集又向前迈进了一步,增加了es2022目标,允许在之前 super()的构造函数中编写代码,改进递归深度检查,可以检测到更多语法错误JavaScript 文件,如果使用 VS Code(即使你自己没有使用 TypeScri

xiyangbaixue的博客 220

用VASPKIT+Quantum Espresso高效绘制能带图:从K点路径生成到可视化全流程

本文详细介绍了如何整合VASPKIT与Quantum Espresso(QE)软件,构建一套高效的能带计算与可视化工作流。通过VASPKIT自动化生成高对称K点路径,结合QE完成自洽与非自洽计算,并利用gnuplot绘制发表级能带图。该流程极大提升了材料电子结构研究的效率与可重复性,是进行DFT能带计算的实用指南。

weixin_29294975的博客 163

转转前端周刊第九期

本刊意在将整理业界精华文章给大家,期望大家一起打开视野1、关于依赖管理的真相 — 前端包管理器探究npm是Node.JS的包管理工具,除此之外,社区有一些类似的包管理工具如yarn、pnp...

大转转FE 4031

ArcGIS 10.4 Desktop安装步骤。

步骤 1 :安装 LicenseManager 有了安装包以后,我们进入安装包文件目录,如图所示,首先需要安装ArcGIS license manager,即点击打开图中红色框中exe文件。 PS:安装 LicenseManager,关于 License 的安装路径一般默认即可,因为很小的,装C 盘也无所谓了,当然了自己改了也可以的,但是不建议! 即便修改路径,建议只改盘符,不修改相对路径方式! 如:C:\Program Files (x86)\ArcGIS\License10.6 修改为 D:\.

IT爱好者 2万+

Basilisk库教程

要在仿真中执行模块,其调度由Basilisk的[Process]和[Task]容器控制。BSK[Task]包含一系列模块,这些模块都以相同的更新频率执行。一个[Process]本质上是一个任务组,可以包含多个相关的任务。例如,在多星仿真中,你可以为每颗卫星创建一个[Process],以便将相关任务和嵌入式模块有序地组织起来。下图展示了一个示例布局,其中bskSat卫星的动力学被添加到与飞行软件(FSW)算法分开的进程中,这些算法在该卫星上执行。在每个进程中,设置了若干任务,这些任务以指定的频率进行评估。

weixin_57997461的博客 1138

2024三掌柜赠书活动第九期:Node.js从基础到项目实践(视频教学版)

随着Web应用的快速发展,Node.js作为一种强大的JavaScript运行时环境,被广泛应用于服务器端开发,它的高效性能、可扩展性和丰富的生态系统,使其成为现代Web开发的首选工具,Node.js在服务器端开发领域扮演着重要的角色,作为一种基于Chrome V8引擎的JavaScript运行时环境,Node.js具有出色的性能和可扩展性,使得开发者能够构建高效的网络应用。

全沾软贱开发攻城狮 1万+

手把手教你用ZLMediaKit搭建WebRTC直播:本地推流与播放实战

本文详细介绍了如何使用ZLMediaKit搭建WebRTC直播系统,涵盖从环境准备、编译部署、SSL证书配置到本地推流与播放的完整实战流程。通过一步步的指导,帮助开发者快速掌握基于ZLMediaKit的WebRTC推拉流技术,构建低延迟的实时音视频应用。

weixin_28842367的博客 348

《阿里云前端技术周刊》第九期

作者:灵沼 校对:染陌 知乎:阿里云中台前端/全栈团队专栏 Github:阿里云前端技术周刊 给我们投稿:传送门 参与交流:传送门 前端速报 拒绝重复造轮子!GitHub推出新功能repository template,帮助开发者在所有项目中重用代码 WHATWG 击败 W3C,赢得 HTML 和 DOM 的控制权,了解一下 为React Hooks编写类似Redux的简单中间件,戳我看看吧 ...

weixin_34289744的博客 210

基于OpenCV C++实现工业级形状模板匹配:仿Halcon SBM算法全解析

在计算机视觉和工业自动化领域,模板匹配是一项基础且关键的技术,用于在图像中定位已知目标。其核心原理是通过计算图像区域与预设模板之间的相似度来识别目标位置。传统的基于灰度值的匹配方法对光照变化敏感,鲁棒性不足。而基于边缘梯度方向的形状匹配技术,通过计算轮廓梯度方向的一致性进行相似度度量,从根本上提升了对光照变化的鲁棒性,并支持目标的旋转与缩放,技术价值显著。这项技术广泛应用于工业视觉检测、机器人引导、PCB定位等对精度和稳定性要求极高的场景。本文聚焦于使用开源OpenCV库,从底层仿照Halcon的Shape

weixin_33691817的博客 502

Revit获取族预览图

最近做到和族库相关的功能需要获取到族文件的预览图,在RevitAPI中提供了ElementType.GetPreviewImage方法,但是前提就是你是在Revit里面操作的,并且已经拿到了Symbol对象实例,才可以调用此方法。然后在网上找了另外一种方式,通过读取Revit文件,在REVITPREVIEW4.0字段截取文件信息,将其转换为图片格式。 一、使用RevitAPI中ElementType.GetPreviewImage方法 [Autodesk.Revit.Attributes.Transac.

weixin_44631419的博客 1757

【第九期】你也许不知道的几个 JS 特性

本期前端小知识介绍的是 JS 的几个不常见的东西。小知识给 for 循环命名loop1: for (let i = 0; i < 3; i++) { // "loop1&...

yck199的博客 132

《网络安全自学教程》- Windows安全机制:安全标识符,身份鉴别和访问控制

这篇文章详细介绍Windows和Linux如何标识用户,如何根据标识验证用户身份,如何根据用户身份做访问控制。

wangyuxiang946的博客 1万+

推荐八款来自极客标签的超棒前端特效[第九期]

日期:2013-7-11  来源:GBin1.com 本周,我们带来了极客社区推荐的10款前端特效,仍然是非常有趣的小动态效果的页面生成。喜欢的可以直接将我们的在线调试代码插入,希望可以带给大家一些更好的帮助和不同以往的更好的体验! 使用CSS来实现三维步行机器人效果 这是一款使用CSS来制作的效果,运行代码你将看到360旋转的机器人行走特效!注意,请使用Firefox浏览! GB

GBin1.com 932

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

(第九期)VSCode插件与快捷键完全指南:前端开发必备神器

本文为前端初学者提供VSCode高效开发指南,推荐必装插件包括:中文语言包、标签自动重命名、Live Server实时预览等8款实用工具,并详细介绍格式化、代码翻译等内置功能。同时提供20+个高效快捷键操作表,涵盖基础编辑、选择操作、界面控制等场景,帮助开发者快速提升编码效率。文章还包含开发环境配置建议、效率提升技巧和常见问题解决方案,建议初学者循序渐进掌握核心功能,逐步形成高效开发习惯。

2301_80944977的博客 1387

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2019最新Web全栈架构师第九期视频教程全套

视频好不好,谁看谁知道,话不多说,先看目录: 课件代码软件资料 01课 vue核心API&&组件设计 (2019.3.15) 02课 Vue-router&Vuex (2019.3.18) 03课 vue源码解析 (2019.3.20) 04课 项目实战 (2019.3.22) 05课 项目实战第二节 (2019.3.25) 06课 服务端渲染SSR (2019.3.27)...

di_pingxian的博客 1966

2014年黑马第九期JAVAEE+hadoop大数据 全套下载

2014年黑马第九期JAVAEE+hadoop大数据 全套下载 day39_js.rar 955.4M 2015-12-01 23:18 day38_Hibernate04.rar 1.44G 2015-12-01 23:17 day37_Hibernate03.rar 1.11G 2015-12-01 23:17 day36_Hibernate02.rar 3.73

qq_38472584的博客 530

console的用法,以及debug技巧

     大家好,我是IT修真院成都分院第九期的学员徐炜,一枚正直纯洁善良的前端程序员。今天给大家带来的是CONSOLE的用法,以及DEBUG技巧。一.背景介绍       调试技巧,在任何一项技术研发中都可谓是必不可少的技能。掌握各种调试技巧,必定能在工作中起到事半功倍的效果。 例如,快速定位问题、降低故障概率、帮助分析逻辑错误等等。在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本...

nemunemu的博客 1115

第九期 Web全栈架构师

课件代码软件资料 01课 vue核心API&&组件设计 (2019.3.15) 02课 Vue-router&Vuex (2019.3.18) 03课 vue源码解析 (2019.3.20) 04课 项目实战 (2019.3.22) 05课 项目实战第二节 (2019.3.25) 06课 服务端渲染SSR (2019.3.27) 07课 TypeScript&&am...

zhengxiuchen86的博客 1373

【小沐学WebGIS】基于Three.JS绘制三维城市建筑(WebGL / vue / react )

【小沐学WebGIS】基于Three.JS绘制三维城市建筑(WebGL / vue / react )。将GIS数据(如GeoJSON或Shapefile)转换为Three.JS支持的格式(如JSON或GLTF),通过BufferGeometry或外部模型加载器(如GLTFLoader)导入建筑模型。

爱看书的小沐 1282

【备忘】2014年黑马第九期JAVAEE+hadoop大数据 全套下载

day39_js.rar 955.4M 2015-12-01 23:18 day38_Hibernate04.rar 1.44G 2015-12-01 23:17 day37_Hibernate03.rar 1.11G 2015-12-01 23:17 day36_Hibernate02.rar 3.73G 2015-12-01 23:17 day35_Hibernate0

yimianchunfen的博客 1863

前端开源项目周报0221

由OpenDigg 出品的前端开源项目周报第九期来啦。我们的前端开源周报集合了OpenDigg一周来新收录的优质的前端开源项目,方便前端开发人员便捷的找到自己需要的项目工具等。 NeteaseCloudWebApp 高仿网易云音乐的webappredux-query 查询并管理网络状态的库DejaVue Vuejs可视化及压力测试multi.js 多属性选择框的替代品dot-dom 小巧虚拟DOM

opendigg的博客 674

【小沐杂货铺】基于Three.JS绘制动物世界Animal(WebGL / vue / react )

基于Three.JS绘制动物世界Animal(WebGL / vue / react );动物世界模拟的原理是结合 three.js 的 3D 渲染能力与行为算法,创建一个动态、交互式的虚拟生态系统。场景构建提供环境基础,行为算法驱动动物动态,物理引擎和用户交互增强真实感。

爱看书的小沐 784

DDFE 技术周刊(第九期)2017.1.1

JavaScript DDFE 原创 - flow的使用 年终盘点!2016 年 50 个最佳的轻量级 JavaScript 框架和库 Javascript填坑史 不写分号的前端攻城师们注意了!需要加分号的情况又多了一种 JS 5种不同的方法实现装饰者模式(译) fuse-box - A blazing fast js bundler/loader with a comprehensi...

weixin_33910759的博客 155

编程微刊第九期文章汇总(2018.9)

index9.png 1. 推荐阅读 把13亿中国人民都拉到一个微信群里在技术上能实现吗? 4年后谷歌终于解释了 Chrome 中萌萌哒小恐龙的起源 为何一定要有自己的博客 如何选择平台 2. 公众号文章 推荐几个Vue开发必备插件,要收藏 1000 多个项目中的十大 JavaScript 错误以及如何避免 彻底弄懂HTTP缓存机制及...

祈澈菇凉 512
上一篇: 前端技巧第八期JavaScript中断网络请求
下一篇: 前端技巧第十期JavaScript作用域链
everyStudy
博客等级 码龄4年 292粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值