scope 和异步执行 1. let 定义在外面function countdown(){ let i; for(i=5;i>=0;i--){ setTimeout(function(){ console.log(i); },(5-i)*1000); }}countdown(); // 6个-12. let 定义在里边function countdown(){ for(let i=5;i>=0;i--){
web 前端开发工程师,面试题详解(二) 1、浅拷贝和深拷贝浅拷贝:浅拷贝只是拷贝一层,更深层次级别的只拷贝引用(或者说地址)。es6中应用浅拷贝的是Object.assign(target,source1,souce2),浅拷贝改变深层次的属性值,原对象也会改变;深拷贝:深拷贝拷贝多层,每一级别的数据都会拷贝;深拷贝改变深层次的属性值,原对象不会改变;var obj = { id:'1', name:'andy', msg:{ age:18 }, color:['pink','
对象数组去重 // 对象数组去重let obj = [{ id: '1', name: '张三', age: '20'}, { id: '2', name: '李四', age: '22'}, { id: '1', name: '张三', age: '20'}, ];let object = {};let objNew = obj.reduce((init, curVal, curIndex) => { object[curVal.id] ? "" : obj.
深度比较两个对象和两个数组 深度比较两个对象:function compare(origin, target) { if (typeof target === 'object') { if (typeof origin !== 'object') return false; // 继续去递归调用 for (const key of Object.keys(target)) { if (!compare(origin[key], target[key])) { return
回调函数的介绍 回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调方法 是 任何一个 被 以该回调方法为其第一个参数 的 其它方法 调用 的方法。很多时候,回调是一个当某些事件发生时被调用的方法。...
Async/Await的使用 Async/Await简介async/await是写异步代码的新方式,以前的方法有回调函数和Promise。 async/await是基于Promise实现的,它不能用于普通的回调函数。 async/await与Promise一样,是非阻塞的。 async/await使得异步代码看起来像同步代码,这正是它的魔力所在。使用Promise是这样的:const makeRequest = () => getJSON() .then(data => { cons
web 前端开发工程师,面试题详解 1、数组循环中key的作用:一般使用id作为key值,vue和react的虚拟DOM的Diff算法大致相同,key的作用主要是为了高效的更新虚拟DOM,只要新渲染改变的数据就可以了,其他都是就复用之前的。2、在浏览器中输入URL后,执行的全部过程:域名解析发起TCP的3次握手建立TCP连接后发起http请求服务器响应http请求浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)断开TCP连接浏览器对页面进行渲染呈现给用户TCP:传输控制协议(TCP)是一种网络通
查找字符串中出现次数最多的字符 lets='ABCDAAAA';varobj={};for(vari=0;i<s.length;i++){if(!obj[s.charAt(i)]){obj[s.charAt(i)]=1}else{obj[s.charAt(i)]++}}varmax=0;varname='';for(varjofObject.keys(obj)){if(obj[j]...
如何在Github上面传输代码 第一步:注册Github账号打开浏览器,在地址栏输入https://github.com。第二步:新建一个仓库选择 New repository第三步:将你需要上传的项目用 git bash打开右键点击文件选择Git Bash Here 选项第四步:在gitbash里面输入:git init第五步:在gitbash里面输入:git add .第六步:在gitbash里面输入:git commit -m "文件说明"//文件说明,双引号中的内容是备注,注意:...
Git bash Unknown SSL protocol error in connection to github.com:443 输入命令 git config http.sslVerify "false"
axios使用拦截器统一处理所有的http请求 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。很多情况我们要对请求和其响应进行特定的处理;如果请求数非常多,单独对每一个请求进行处理会变得非常麻烦。好在强大的axios为开发者提供了这样一个API:拦截器。拦截器分为 请求(request)拦截器和 响应(response)拦截器。http request拦截器// 添加请求拦截器a...
express的简单使用 constexpress=require("express");constbodyParser=require("body-parser");constapp=express();app.use(bodyParser.urlencoded({extended:false}));app.use(bodyParser.json());app....