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