Q:怎么判断一个字符串是不是回文字符串?
A:
function isPlalindrome(str){
if(typeof str!== 'string') return false;
return str.split('').reverse().join('') === str;
}
var str = "123454321";
if(isPlalindrome(str)){
console.log(str,"是回文字符串");
}else{
console.log(str,"不是回文字符串");
}
Q:两种以上方式实现已知或者未知宽度的垂直水平居中。
A:
(1)定位 + margin-left 和 margin-top 的方式(已知 child 的宽高)
.parent{
position:relative;
}
.child{
position:absolute;
top:50%;
left:50%;
width:100px;
height:100px;
margin-left:-50px;
margin-right:-50px;
}
(2)定位+transform
.parent{
position:relative;
}
.child{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
}
(3)flex布局
.parent{
display:flex;
justify-content:center;
align-items:center;
}
.box{
width:100px;
height:100px;
border:1px solid #ccc;
margin-right:10px;
}
Q:什么是事件流?
A:事件流分为两种:捕获事件流和冒泡事件流。
捕获事件流从根节点开始,一直往子节点查找执行,直到查找执行到目标节点。
冒泡事件流从目标节点开始执行,一直往父节点冒泡查询执行,直到查到根节点。
DOM事件流分为三个阶段,一个是捕获阶段,一个是处于目标节点阶段,一个是冒泡阶段。
Q:什么是事件委托机制?
A:https://blog.csdn.net/weixin_39111384/article/details/109453818
Q:手写一个promise
A:
https://www.jianshu.com/p/1eea8ce8c7a5
一、promise的简单介绍
什么是Promise
Promise 是一个对象,用来传递异步操作的消息。它代表了某个未来才知道结果的事情(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步的处理。
Promise 的作用
promise 的主要作用是能够解决 JS 多层次回调代码难以理解和维护的问题,把嵌套回调写成看起来是平行的代码。
Promise的出现主要是解决地狱回调的问题。
地狱回调: 比如结果需要请求很多接口,并且这些接口的参数需要另外接口返回的数据作为依赖,这样就需要我们一层嵌套一层,形成了地狱回调。
Promise 的本质
Promise的本质是分离了异步数据和业务逻辑。
基本的API
Promise.resolve() // 异步操作成功
Promise.reject() // 异步操作失败
Promise.prororype.then()
Promise.prototype.catch()
Promise.all() //所有的完成
Promise.all([p1,p2,p3])