JS数据类型

254 阅读3分钟

JS数据类型共有7种

1. 数值 number

写法(前三种常用)

  • 整数写法:1
  • 小数写法: 0.1
  • 科学计数法: 1.23e4
  • 八进制写法: (用的很少)
  • 十六进制写法: 0X3F或0x3F
  • 二进制写法: 0b11或0B11

特殊值

  • +0和-0
  • 无穷的: lnfinity、+lnfinity、-lnfinity
  • 无法表示的数字: NaN(他是一个不确定的未知数字,NaN≠NaN)

64位浮点数

JS数字的储存形式

  • 浮点就是浮动的点,小数点可以动
  • 123.456可以表示为1.23456×10^2
  • 123.456也可以表示为12345.6×10^-2

64位储存一个number

  • 符号占一位(0正1负)
  • 指数占11位(-1023~1024)
  • 有效数字占52位(开头1.省略) 1.png
  • 范围
  • 最大二进制数字 1.png
  • 最小二进制数字 2.png

2. 字符串 string

每个字符两个字节,阉割版UTF8

写法(注意引号不属于字符串的一部分)

  • 单引号: '你好'
  • 双引号: "你好"
  • 反引号: ``

转义(用另一种写法表示你想要的东西)

  • '表示'
  • "表示"
  • \n表示换行
  • \r表示回车
  • \t表示tab制表符
  • 双\表示\
  • \uFFFF表示对应的Uincode字符
  • \xFF表示前256个Uincode字符
  • 多行字符 ` 表示回车
  • 只有对象有属性

字符的长度

  • 字符串.length (查询字符串长度)
  • '\a\b\c'长度为3
  • ''长度为0
  • ' '长度为1

通过下标读取字符

  • let a = 'hello'
  • s[0]为"h"
  • s[4]为"o" -(s[0]为第一个字符)

1.png

base64 转码

  • window.btoa( 内容 ) 可以讲正常字符串转为Base64编码的字符串 1.png

  • window.atob( '内容' ) 可以把Base64编码过的字符串转为原来的字符串 2.png

3. 布尔 bool

布尔只有两个值 true真 false假

1. 否定运算

  • !value 加!取它的相反值

2. 相等运算

  • 1 === 2 得false
  • 3 === 4 得false
  • 1! = 2 得trua
  • 3! == 4 得true

3. 比较运算

  • 1>2得false
  • 2>1得true

五个falsy值(相当于假但又不是真的假)

1. undefined
2. null
3. 0
4. NaN
5. ''

4. 符号 symbol

5. 空 undefined 和

6. 空 null

区别

  • 细节一 : 如果变量声明了,但没有赋值,那么默认值就是undefined,而不是null
  • 细节二 : 如果一个函数没有写return,那么默认return是undefined,而不是null
  • 细节三 : 前端程序员习惯上把非对象的空值为undefined,把对象的空值写为null

7. 对象 object(见下一篇文章)

补充 : var、let、const

let 声明 规则

  1. 遵循块作用域,使用范围不能超出{}
  2. 同一区域内不能重复申明
  3. 赋不赋值都可以
  4. 必须先申明再使用
  5. 全局申明的let变量里,不会变window属性
  6. For循环配合let有奇效

const声明 规则

  1. 跟let几乎一样
  2. 只有3和6不一样(const声明时就要赋值,且不能改)

在变量声明时即指定了值也指定了类型

  • var a = 1
  • 指定a的值为1
  • 指定a的类型为number

但值和类型可以随意变化

name和'name'的区别

  • name是变量:值可变,也可以是'name',也可能是"hello"
  • 'name'是字符串常量:'name'只能是'name',不能是其他值

补充:类型转换

image.png