温故而知新

文章详细介绍了JS中的forin和forof遍历的区别,forin遍历数组的下标,forof遍历元素值。CSS中的BFC(BlockFormattingContext)特性导致了同BFC内元素上下外边距的重叠现象。v-model的双向数据绑定原理涉及v-bind和v-on的组合使用。JavaScript的循环机制包括宏任务和微任务,如setTimeout、Promise等,以及async/await的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. for in 和 for of 是js中常用的遍历方法。但是两者有什么区别呢?
const arr = ['a', 'b', 'c']
for(let i in arr){
    console.log(i)
    // '0', '1', '2'
}
for(let i of arr){
    console.log(i)
    // a, b, c
}

  1. for in 是ES5的语法标准,而for of则是ES6语法标准。
  2. 通过上述代码我们可以发现for in遍历的是下标,而for of遍历的是属性值
    而且。for in所遍历的下标是Strign类型而不是Number类型。
  3. 两者多可以遍历数组,for in可以遍历对象 for of不行

2.CSS 中的 BFC 是什么?

BFC 的特性
BFC 主要有两个特性,我们来学习一下。

特性1:上下外边距重叠
同一个 BFC 下的两个相邻块级元素,会发生上下方向的 margin 重叠。

比如前一个 div 设置了 margin-bottom: 20px,下一个 div 设置了 margin-top: 10px,然后你会发现它们的上下距离其实是 20px(二者的最大值),而不是 30px(二者之和)。

 

 

3.v-model双向数据绑定原理

一、简介

v-model实现双向绑定的语法糖,常用于表单与组件之间的数据双向绑定.

1. 原理

分两步骤

  1. v-bind绑定一个value属性
  2. v-on指令给当前元素绑定input事件

可看出v-model绑定在表单上时,v-model其实就是v-bind绑定value和v-on监听input事件的结合体

v-model = v-bind:value + v-on:input

2. 实现

用v-bind:value + v-on:input来模拟实现v-model

<input type="text" :value="username" @input="username = $event.target.value" />

4.JavaScript的循环机制

一、简介

js单线程从上到下执行

常见的宏任务与微任务

宏任务: setTimeout setInterval ajax Dom事件

 微任务:promise.then/finally/catch   async/await 隐式创建promise.then

// // 事件循环 
setTimeout(function () {   //setTimeout 宏任务
  console.log('1');
});
async function test(){
	console.log('5')
	await async2();
	// 隐式创建一个微任务 promise.then()
	console.log('6')
}
new Promise(function (resolve) {
  console.log('2');
  resolve();
}).then(function () {
  console.log('3');
}).finally(()=>{
	console.log('8');
})
function async2(){
	console.log('7');
}
test()
console.log('4');
 
//2 5 7 4 3 6 8 1
 
 
 

注意:async/await的执行顺序

遇到await会阻塞后面的代码,先执行async外面的同步代码,同步代码执行完,再回到async内部,继续执行await后面的代码。(好好理解一下上面的说明。也就是说,await只会阻塞当前async方法内的代码,不会影响外部代码的执行)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叮咚前端

你的鼓励是我们的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值