一、数据类型
简单数据类型(Number,String,Boolean,Undefined,Null)
复杂数据类型(Object)
1.变量声明
-
var a = b = c = 10;
相当于 var a = 10; b = 10; c = 10; b和c没有var声明 -
集体声明:var a = 10, b = 10, c = 10;
-
var a, b, c = 10 错误的声明方式
2.简单数据类型
2.1 数字型Number
-
八进制:数字前面加0
十六进制:数字前面加0x
-
NaN:非数字
isNaN():验证是否非数字,是数字返回false,否则返回true
2.2 字符串型String
1.字符串转义符 \
2. 获取字符串长度:字符串.length
3. 字符串拼接: +
字符串 + 任何类型 = 字符串
4. 字符串型数字互相比较大小是从第一位开始比较 : ’121'<'25',所以要先转换为数字型
5. 字符串本身是不可变的,每次改变字符串的值其实是新开辟了一个内存空间来存放新的值,原来的字符串并没有变
2.3 undefined 和 null
1. undefined
- 如果一个变量没有赋值,那它就是undefined
- undefined + '我是字符串' = undefined我是字符串'
- undefined + 数字 = NaN
2. null 空值
- null + 'aaa' = null我是字符串'
- null + 数字 = 数字
3.获取变量的数据类型typeof 变量
typeof 变量
4.数据类型转换
4.1 转换为字符串类型
加号拼接转换方式为隐式转换
4.2 转换为数字型
1. parseInt(变量) 得到的是整数,会去掉数字后边的单位
2. parseFloat(变量) 得到的是浮点数,会去掉数字后边的单位
3. Number(变量)
4. 利用算数运算 - * /
4.3 转换为布尔型
Boolean(变量):
代表空,否定的值会被转换成false,其余值转换为true
5.数据类型内存分配
5.1 内存可以看作分为了两块:栈和堆
1. 简单数据类型存放在栈里,存放的是值本身(值类型)
2. 复杂数据类型先在栈里存放地址,这个地址指向堆里面的数据(引用类型