其他分享
首页 > 其他分享> > 今日总结521

今日总结521

作者:互联网

 

注意:if --else :三目/三元

当条件一不满足,进入else的时候。变相在else

上加了上个条件的反条件;

对象。一堆键值对的集合(无序的)

严格写法:JSON写法; 键名加上引号;最后一个‘,’好不写。

in 判断 里面有没有某个键值对。判断的是键名 eg: ‘name' in obj;

判断数组的时候是判断其下标是否存在。2 in arr。

将对象转换成字符串JSON.stringify()-----------------处理前端数据,转换成字符串。发向后端;

 

对象方法不会被转换;

//JSON.stringify(obj,['name','number'],4) canshu1:obj,canshu2:过滤的对象,canshu3,换行的空格数。

JSON.parse(str)【处理后端数据,转换为js对象,用于前端渲染】

对象的增删改查:1obj.name 2 obj['name'] 3obj[name] var name = 'name';

shan delete obj.name gai obj.name = '.....' cha obj.name

for in 是遍历数组的。得到的是key; obj[key]。必须这样写,因为此时的key是变量。

Object.keys().得到的是一个键名的数组集合;

Object.values().得到的是一个键值的数组集合;

引用类型和基本类型 数据 。。

基本类型是值类型。他们拷贝的是值。拷贝后互不相干。比较的也是值。00000

eg:undefined , Null , String , Number

,Boolean , 。。。

引用类型的值(引用的是地址),拷贝的也是地址,比较的也是地址。

注意:核心是地址;

eg:object . Array..///

堆和栈是两种不同的内存区域:

堆:(heap) 栈:(stack);

简单说 :值类型引用的类型变量本身分配在栈中分配内存。

引用类型的变量在堆中分配内存;

symbol 是ES6中新添的数据类型;

独一无二的symbol;

一个参数。类似于备注。

symbol无法遍历得到。

对象的合并;

浅层拷贝 ---- 拷贝的是地址

方法:Object.assign()。

无限参数,第一个是target(目标对象)后面是你想把他们合并的对象。

eg:var obj ={name:'zs',age:20,height:180}

var obj1=Object.assign({},obj);

简单的for --in ;

eg:for(let key in obj){

obj1[key]=obj[key]}

深层拷贝 ====拷贝的是值;;

for in + 递归实现:

eg:function kaoB(obj){

var obj1 = obj instanceof Array ? [ ] :{ };

for(let key in obj){

obj1[key] = typeof obj[key] ==='object' ? kaoB(obj[key]) : obj[key] }

return obj1; }

还可以通过JSON方法实现:

思路是把对象转化成字符串;此时他就是一个值而已对他进行拷贝 就变相是等价于深度拷贝;拷贝完后吧新的字符串转换成对象即可;

 

对象中的this指向问题:

谁调用的包含this的函数(方法),this就指向谁:

形参不能为this:

 

 

 

 

标签:总结,obj,name,对象,eg,521,key,今日,拷贝
来源: https://blog.csdn.net/haiTongZhouyj/article/details/90414547