- 共有7种数据类型
- Number(数字)
- Boolean(布尔值)
- String(字符串)
- Null (空)
- Undefined (未定义)
- Symbol (es6新增,表示独一无二的值)
- Object(对象)
- 1中前6种都是基本数据类型,这些类型可以直接操作保存在变量中的实际值。只有Object是引用数据类型。
基本数据类型 | Object |
---|---|
栈的形式存储 | 堆的形式存储 |
保存与赋值指向数据本身 | 保存于赋值指向对象的一个指针 |
用type of 来判断类型 | 用instance of 来判断类型 |
存储空间固定 | 存储空间不固定 |
javascript并不是严格的自上而下执行的语言。变量提升的最主要概念就是var 变量名=某值
其实是两个语句,应分开为var 变量名=undefined
,变量名=某值
。
变量提升即会将当前作用域的所有变量的声明提升到程序的顶部。
- var 的「创建」和「初始化」都被提升了。
- function 的「创建」「初始化」和「赋值」都被提升了。
具体说来:
- 当整体作用域内有var创建时,将var语句提到最前面,即第一句为
var 变量名=undefined
赋值语句还保留在原处。(此规则在函数内仍然适用,即把创建变量语句提前,赋值语句保留在原地) - 当变量名与函数名一致时,变量名会被函数名覆盖、或者函数名内已经赋值变量名无法改变,总之还会显示函数所赋值的效果。
- 当函数两次赋值,则按顺序最终会保留靠后的。
- 答案分别是:
答案 |
---|
undefined |
boolean |
number |
string |
object |
网友评论