// 1、typeof 返回数据类型的字符串表达var a;console.log(typeof a==='undefined',typeof a === undefined) //true ,false// 2、对象var b1={b2:[1,'abc',console.log],b3: function(){console.log('b3')}}console.log(b1 instanceof Object, b1 instanceof Array) // true falseconsole.log(b1.b2 instanceof Array,b1.b2 instanceof Object) // true true
1、xxx 是基本数据,保存的就是这个数据
2、xxx 是对象, 保存的是对象的地址值
3、 xxx 是一个变量, 保存的xxx的内存内容(可能是基本数据,也可能是地址)
// obj1 obj2 指向同一个对象 var obj1 = {name: 'Tom'}var obj2 = obj1 obj2.age =12 console.log(obj1.age,obj1.name) //12function fn(obj){obj.name = 'A'}fn(obj1)console.log(obj2.name) //Avar a = {age: 12}var b = aa = {name: 'BOB', age:13}b.age=14console.log(b.age,a.name,a.age) // 14 BOB 13function fn2(obj){obj = {age: 15} //obj 指向了一个新的对象,并未改变原来对象的值}fn2(a)console.log(a.age) // 13
理解1: 都是值(基本/地址值)传递
理解2:可能是值传递,也可能是引用传递(地址值)
var a = 3;function fn(a){a = a+1}fn(a);console.log(a) //3
1、内存生命周期
2、释放内存
1、属性名包含特殊字符: - 空格
2、属性名不确定
var p = {}// 1、 给p对象添加一个属性:content-type: text/json// p.content-type = 'text/json' 不能用p['content-type'] = 'text/json'console.log(p['content-type'])// 2、属性名不确定var proName = 'myAge'var value = 18// p.proName = value 不能用p[proName] = valueconsole.log(p[proName])
上一篇:2022年杂学之机器人篇