JS 里的数据类型

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 循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值