1、什么是数据
储存在内存中代表特定信息的标识,本质上是0101...
数据的特点:可传递,可运算,
2、什么是内存
内存条通电后产生的可存储数据的空间(临时存在)
一块小内存的2个数据:内部存储的数据,地址值
内存的分类:堆空间(对象),栈空间(全局变量,局部变量)

var obj = { name:'Tom' }
var a = obj

3、什么是变量
可变化的量,由变量名和变量值组成,每个变量都对应一个小内存。变量名用来查找对应的内存,变量值就是内存中保存的数据

相关问题
1、var a = xxx, a内存中保存的到底是什么?
xxx是基本数据,那么就保存基本数据
xxx是对象,那么就保存对象的地址值
xxx是变量,那么就保存变量的类型(基本数据或地址值)
2、关于引用变量赋值的问题?
2个引用变量指向同一个对象,通过其中一个引用变量修改对象内部数据,另一个引用变量也能看见;

var obj1 = {}
var obj2 = obj1
obj2.name = 'Tom'
console.log(obj1.name) // Tom
function fn(obj){
    obj.age = 12
}
fn(obj2)
console.log(obj1.age) // 12

2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个引用变量依然指向前一个对象

var a = {age: 12}
var b = a
a = {name : 'BOB', age : 13}
b.age = 14
console.log(b.age,a.name,a.age) //14, BOB,13
function fn2(obj){
    obj = {age : 15}
}
fn2(a)
console.log(a.age) //12

3、在js调用函数传递变量参数时,是值传递还是引用传递?(两种理解都可)

var a = 3
function fn(a) {
    a = a + 1
}
fn(a) //传递的是a的值--->值传递
console.log(a) //3

function fn2(obj){
    obj.name = 'aaa'
}
n = {}
fn2(n) //传递的是n指向的对象--->引用传递
       //传递的是n指向对象的地址值--->也是值传递(地址值)
console.log(n.name) //aaa