1. 变量的类型
- Undefined 未定义
- 未定义类型只有一个值undefined,这个值的意思是变量没有定义
- 未定义有两种情况,一个是真的没有定义,一个是定义了但是没有赋值
- Null 空对象
- 空对象类型只有一个值null,代表一个空对象指针
- Boolean 布尔类型
- 布尔类型有两个值:true和false
- Number 数字类型
- 用来表示数字
- 可以表示整数和小数(也叫浮点数或者双精度数)
- String 字符串类型
- 用单引号或者双引号括起来的字符序列
- 单引号和双引号表示的字符串完全一样
- Object 对象类型
- 对象是一组数据和功能的集合
- null代表了一个空对象指针,所以用 typeof 检测时会返回 ‘object’
- 函数在ES中是对象,但函数也有一些特殊的属性,所以用 typeof 检测时会返回 ‘function’
- 数组在ES中是对象
- 注意点:JS变量的类型由值决定,并且随着值的变化而变化
2. 转数值
- 显式转换parseInt 和 parseFloat
- parseInt用来转换整数,parseFloat可以转换整数和小数
- 转换规则为
- 忽略字符串前面的空格
- 如果第一个字符不是数字或者负号加数字,会返回NaN(Not a Number)
- 从左到右解析直到第一个非数字为止
- isNaN
由于NaN和NaN并不相等,所以用isNaN函数来判断转换后的值是不是数字
- 隐式转换
减法(-) 乘法(*) 除法(/) 比较(==)
- 案例:加法计算器
3. 转字符串
- toString()
- +""
4. 布尔值
- 真:true,非零数字,非空字符,非空对象,
- 假:false,数字零,空字符,null,undefined
5. 变量的作用域
- 全局变量
定义在所有函数外面,所有的函数都可以使用的变量
- 局部变量
定义在函数的内部,指定在函数内部或者函数的子函数中使用
6. 闭包
子函数可以使用父函数中的变量的一种现象
7. 变量的类型
- 基本类型
- 基本类型指定的是简单的数据,包括,Undefined,Null,Boolean,Number,String
- 基本类型访问的变量的实际值
- 基本类型不能动态的添加属性
- 基本类型变量复制时会新建一个变量并分配空间,将变量的值分配在新的空间上
- 引用类型
- 引用类型主要指保存在内存中的对象,包括对象,数组,函数
- 引用类型访问的是引用,引用是指向内存的一个指针
- 引用类型可以动态的添加属性
- 引用类型复制时不会新建空间,只是复制了一个新的引用
- 引用类型
8. 变量命名
- 变量名 = 类型 + 对象描述
- 类型指变量的数据类型,JS命名类型有
array 数组a
boolean 布尔值b
float 浮点数l
function 函数fn
int 整型i
object 对象o
regular 正则r
string 字符串s
- 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解