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.省略)
- 范围
- 最大二进制数字
- 最小二进制数字
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]为第一个字符)
base64 转码
-
window.btoa( 内容 ) 可以讲正常字符串转为Base64编码的字符串
-
window.atob( '内容' ) 可以把Base64编码过的字符串转为原来的字符串
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 声明 规则
- 遵循块作用域,使用范围不能超出{}
- 同一区域内不能重复申明
- 赋不赋值都可以
- 必须先申明再使用
- 全局申明的let变量里,不会变window属性
- For循环配合let有奇效
const声明 规则
- 跟let几乎一样
- 只有3和6不一样(const声明时就要赋值,且不能改)
在变量声明时即指定了值也指定了类型
- var a = 1
- 指定a的值为1
- 指定a的类型为number
但值和类型可以随意变化
name和'name'的区别
- name是变量:值可变,也可以是'name',也可能是"hello"
- 'name'是字符串常量:'name'只能是'name',不能是其他值