vue 基础补充

for-in for-of

for in 遍历数组和对象 并且会把原型自定义属性都会遍历出来 。所以遍历的时候都会加上hasOwnProperty 表示只会遍历自身对象或者数组的属性
for of 只会遍历自身的属性 自动过滤原型自定义的属性 对象没有for of方法,可以迭代的对象都可以用for-of array set map string...
const arr = [10, 20, 30, 40, 50];
const obj = { name: "zs", age: 10, gender: "male" };
Array.prototype.AA = 1;
Object.prototype.BB = 2;
for (let key in arr) {
  if (!arr.hasOwnProperty(key)) break;
  console.log(key, arr[key]);
}
//for in 遍历数组和对象 并且会把原型自定义属性都会遍历出来 。所以遍历的时候都会加上hasOwnProperty 表示只会遍历自身对象或者数组的属性
for (let key in obj) {
  if (!obj.hasOwnProperty(key)) break;
  console.log(key, obj[key]);
}

//for of 只会遍历自身的属性 自动过滤原型自定义的属性 对象没有for of方法,可以迭代的对象都可以用for-of array
for (let item of arr) {
  console.log(item);
}
//string for-of
let str = "abcdef";
for (let item of str) {
  console.log(item);
}
//map for-of
const map = new Map()
  .set(1, 100)
  .set("abc", 200)
  .set(true, 300);
for (let [key, value] of map) {
  console.log(key, value);
}
//对象不可以遍历
// for (let item of obj) {
//   console.log(item);
// }
View Code

 

函数默认值

传入undefined或者不传该参数,将触发该参数等于默认值

function fn(x=1,y=2){
  console.log(x,y);
}
//传入undefined或者不传该参数,将触发该参数等于默认值
fn(undefined,null)//1 ,null
fn(1) // 1 2
fn(1,false) //1 false
View Code

 

展开运算符和原型对象上的属性

const user = { name: 'zs', age: 10 }
// eslint-disable-next-line no-extend-native
Object.prototype.AA = 100
console.log(user.AA)
// const { name, ...rest } = user
// console.log(name, rest) // zs { age: 10 } 注意这里:展开运算符不会带上原型对象上的属性
const { name, age, AA } = user
console.log(name, age, AA) // zs 10 100 解构赋值居然又可以
View Code

 

posted on 2020-12-02 21:15  章画  阅读(93)  评论(0编辑  收藏  举报

导航