一些方法的正确用法

concat()

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
这方法对于在React中很有用,可以在不直接改变传入到子组件的属性值的情况下,间接对属性值改变

let newCount = props.count.concat(); 
newCount.splice(0, 1)

Object.assign() 方法

该方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };

const returnedTarget = Object.assign(target, source);

console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }

console.log(source);
//expected output: Object { b: 4, c: 5 }

console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }

map()方法

map()会处理原数组的每个元素,然后返回一个经过函数处理的新数组。
在这里插入图片描述

正则表达式之lastIndex

在这里插入图片描述
我们看上述图片,设置一个正则表达式reg,让它去匹配字符串ab,匹配成功true,并且lastIndex为1。

那么下次正则再匹配字符串是以索引为1的序列开始匹配,所有下次test(‘ab’)就为false了,匹配不到a,因为从b开始匹配。

哪怕你更换了字符串也一样
在这里插入图片描述
除非重新把lastIndex置为0
在这里插入图片描述
因此,如果正则是全局模式,可能需要每次匹配字符串后,需要把lastIndex置为0.

concat()函数

该方法用户把一个数组连接其他对象,返回一个新的数组,新数组是原数组的一个副本,不会改变原数组。

let arr1 = [1];
let obj2 = {b: 2};
let newArr = arr1.concat(obj2);

console.log(newArr);//[ 1, { b: 2 } ]
console.log(arr1);//[ 1 ]

Object.create()

来看一个例子:

const person = {
  isHuman: false,
  printIntroduction: function() {
    console.log(`My name is ${this.name}. Am I human? ${this.isHuman}`);
  }
};

这是一个对象,里面有属性和方法;

const me = Object.create(person);

我们使用Object.create会创建一个新对象,把这个新对象赋值给me(注意:这个新对象是个空对象,不能直接把Object.create的值赋给一个有值的对象,这样会把这个对象变成空对象,假如有个对象为obj = {a: 1},如果obj = Object.create(person),那么obj就变成了{}),
那么me这个新对象会有一个属性__proto__,它指向person,也就是说
proto = person;
proto 里的属性,是被代理过的,也就是me对象能够me.__proto__的属性,相当于me.proto.属性 取值。
所以:

me.name = 'Matthew'; // "name" is a property set on "me", but not on "person"
me.isHuman = true; // inherited properties can be overwritten

me.printIntroduction();
// expected output: "My name is Matthew. Am I human? true"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值