JS 里的数据类型

本文深入探讨了JavaScript中数字、字符串、符号等基本类型的特点,解释了null与undefined的区别及布尔值的转换规则,并详细解析了对象的创建、属性访问与修改的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 number

  • JavaScript内部所有数字都是以64位浮点数形式储存,11.0没有区别
  • 64 = 1(0负1正)+ 11(指数部分) + 52(小数部分)
  • 浮点数不是精确的值(二进制存储的原因),所以 0.3/0.1 //2.9999999999999996
  • NaN表示非数字,不等于任何值包括他自身
  • 0/0 //NaN
  • 非0数值除以0与计算结果太大会太小时得到Identify,Identify有正负之分
  • Infinity的运算
    • Infinityundefined计算,返回的都是NaN
    • 0乘以Infinity,返回NaN;0除以Infinity,返回0;Infinity除以0,返回Infinity
    • Infinity加上或乘以Infinity,返回的还是Infinity
    • Infinity减去或除以Infinity,得到NaN
    • Infinitynull计算时,null会转成0,等同于与0的计算

2 string

  • 字符串默认只能写在一行内,分成多行将会报错
  • 转义
  • 如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠(不推荐)
  • 连接运算符(+)可以连接多个单行字符串,将长字符串拆成多行书写,输出的时候也是单行(推荐)

3 symbol

  • 生成一个全局唯一的值(不是字符串)
  • 某种角度可以看作是一种注释

4 null, undefined 和boolean

  • null与undefined都可以表示“没有”,含义非常相似
  • 变量声明但没有赋值时值为undefined(语法规定)
  • null表示空对象,undefined表示非空对象(惯例)
  • 如果 JavaScript 预期某个位置应该是布尔值,除下面6个值外被视为false,其余均被视为true
    • undefined
    • null
    • false
    • 0
    • NaN
    • “”或”(空字符串)

5 object

  • 对象就是一组“键值对”(key-value)的集合,无序
  • 键名都是字符串
    • 定义对象时,如果键名符合标识符,那么会被自动转成字符串
    • 键名不符合标识符,则必须加上引号
    • 键名为数值时会被自动转成字符串
  • 如果不同的变量名指向同一个对象,那么都是这个对象的引用,也就是说它们指向同一个内存地址
  • obj[key]obj['key']obj.key
    • obj.keyobj['key']等价
    • obj[key]中的key表示一个变量
    • 方括号运算符内部还可以使用表达式。
    • 数字键可以不加引号,因为会自动转成字符串
    • 数值键名不能使用点运算符
var foo = 'bar';

var obj = {
  foo: 1,
  bar: 2
};

obj.foo  // 1
obj[foo]  // 2
  • JavaScript 允许属性的“后绑定”
  • 查看一个对象本身的所有属性,可以使用Object.keys方法
  • delete命令用于删除对象的属性,删除成功后返回true
  • in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false
  • for...in 循环
资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 “STC单片机电压测量”是一个以STC系列单片机为基础的电压检测应用案例,它涵盖了硬件电路设计、软件编程以及数据处理等核心知识点。STC单片机凭借其低功耗、高性价比和丰富的I/O接口,在电子工程领域得到了广泛应用。 STC是Specialized Technology Corporation的缩写,该公司的单片机基于8051内核,具备内部振荡器、高速运算能力、ISP(在系统编程)和IAP(在应用编程)功能,非常适合用于各种嵌入式控制系统。 在源代码方面,“浅雪”风格的代码通常简洁易懂,非常适合初学者学习。其中,“main.c”文件是程序的入口,包含了电压测量的核心逻辑;“STARTUP.A51”是启动代码,负责初始化单片机的硬件环境;“电压测量_uvopt.bak”和“电压测量_uvproj.bak”可能是Keil编译器的配置文件备份,用于设置编译选项和项目配置。 对于3S锂电池电压测量,3S锂电池由三节锂离子电池串联而成,标称电压为11.1V。测量时需要考虑电池的串联特性,通过分压电路将高电压转换为单片机可接受的范围,并实时监控,防止过充或过放,以确保电池的安全和寿命。 在电压测量电路设计中,“电压测量.lnp”文件可能包含电路布局信息,而“.hex”文件是编译后的机器码,用于烧录到单片机中。电路中通常会使用ADC(模拟数字转换器)将模拟电压信号转换为数字信号供单片机处理。 在软件编程方面,“StringData.h”文件可能包含程序中使用的字符串常量和数据结构定义。处理电压数据时,可能涉及浮点数运算,需要了解STC单片机对浮点数的支持情况,以及如何高效地存储和显示电压值。 用户界面方面,“电压测量.uvgui.kidd”可能是用户界面的配置文件,用于显示测量结果。在嵌入式系统中,用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值