JS中的数据类型

197 阅读2分钟

1-JS中的数据类型

7种

  • 数字number
  • 字符串string
  • 布尔bool
  • 符号symbol
  • 空undefined
  • 空null
  • 对象object
  • 总结:四基两空一对象

以下不是数据类型

  • 数组,函数,日期
  • 它们都属于object

数字number

写法

  • 整数写法:1
  • 小数写法:0.1
  • 科学计数法:1.23e4
  • 八进制写法:0123 /00123 /0o123
  • 十八进制写法:0x3F /0x3F
  • 二进制写法:0b11 /0B11

特殊值

  • 正0和负0:都等于0,要严谨
  • 无穷大:Infinity,+Infinity,-Infinity
  • 无法表示的数字:

    NaN:但它是一个数字

64位浮点数

JS数字的存储形式

  • 浮点就是浮动的点,意思是小数点会乱动
  • 123.456可以表示为1.23456e10^2
  • 也可以表示为12345.6e10^-2
  • 64位存储一个number

    符号占1位

    指数占11位

    有效数字占52位

字符串String

写法

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

    引号不属于字符串的一部分,就像书名号不属于书名的一部分一样

转义

  • 错误写法

  • 'it's ok'
  • 正确写法

  • 'it\'s ok' //这就是转义
  • \'表示'
  • \"表示"
  • \n表示表示换行

  • \r 表示回车
  • \t表示tab制表符
  • \\ 表示 \

字符串

字符串的长度

'123'.length   //3
'\n\r\t'.length  //3
''.length //0
''.length //1

通过下标读取字符

string[index]
let s='hello';
s[0] //'h'
注意index从0开始
s[0]是第一个字符
注意index到length
let s='hello';
s[5] //undefined
s[4] //'0'

布尔bool

五个falsy值

  • falsy就是相当于false但不又是false的值,分别是undefined null 0 NaN ''

undefined和null两种空类型

区别

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

    但仅仅是习惯上而已

变量声明

var a =1
let a =1
const a =1
a = 1

区别

  • var是过时得到,不好用的方式
  • let是新的,更合理的方式
  • const是声明时必须赋值,且不能再改的方式
  • 最后这种方式是错误的,不能这样声明

let声明

规则

  • 遵循块作用域,即使用范围不能超出{}
  • 不能重复申明
  • 可以赋值,也可以不赋值
  • 必须先声明再使用,否则报错
  • 全局声明的let变量,不会变成window的属性
  • for循环配合let有奇效

name和'name'的区别

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

类型转换

number=>string

  • Stirng(n)
  • n +''

)

string=>number

  • Number(s)
  • parselnt(s) / parseFloat(s)
  • s-0

x=>bool

  • Boolean(x)
  • !!x

x=>string

  • String(x)
  • x.toString()