js面试题
简单记录一下js中的常见面试题。
金小壮
仰望星空,脚踏实地
展开
-
2021.05.14 前端面试分享
1. Vue和jQuery的区别jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操作,其实和原生的HTML的区别只在于可以更方便的选取和操作DOM对象Vue对象将数据和View完全分离开来了。对数据进行操作不再需要引用相应的DOM对象,可以说数据和View是分离的,他们通过Vue对象这个vm实现相互的绑定。2. 闭包的理解,闭包的缺点闭包(closure)指有权访问另一个函数作用域中变量的函数常驻内存,增加内存使用量;使用不当造成内存泄漏3. 接着问到:什么是原创 2021-05-14 19:15:05 · 155 阅读 · 0 评论 -
JavaScript 宏任务和微任务
宏任务分类:setTimeout setInterval Ajax 事件绑定等宏任务所处的队列就是宏任务队列第一个宏任务队列中只有一个任务:执行主线程的js代码宏任务队列可以有多个当宏任务队列的中的任务全部执行完以后会查看是否有微任务队列,如果有先执行微任务队列中的所有任务,如果没有就查看是否有宏任务队列。微任务分类:new Promise().then(回调) process.nextTick微任务所处的队列就是微任务队列只有一个微任务队列在上一个宏任务队列执行完华后如原创 2021-04-30 16:44:55 · 216 阅读 · 2 评论 -
排序算法
排序算法 :sort方法: 改变原数组let arr = [22,31,21,1,7,45];function seq(a,b){ return a-b}arr.sort(seq);console.log(arr)冒泡排序两个for循环 嵌套循环遍历let arr1 = [33,22,21,41,5,1]function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i+原创 2021-04-29 18:53:01 · 127 阅读 · 0 评论 -
从一个url地址到最终页面渲染完成,发生了什么?
1. DNS解析:将域名地址解析为IP地址浏览器DNS缓存系统DNS缓存路由器DNS缓存网络运行商DNS缓存递归搜索: 例如 csdn.jinxiaozhaung.com .com 域名下查找DNS解析 .jinxiaozhuang 域名下查找DNS解析 .csnd 域名下查找DNS解析 出错了 2. TCP连接,TCP三次握手第一次握手,由浏览器发起,告诉服务器我要发送请求了第二次握手,由服务器发起,告诉浏览器我准备接受了,你发送吧第三次握原创 2021-04-28 19:08:42 · 197 阅读 · 0 评论 -
js学习笔记--闭包的应用
闭包的应用什么是闭包:闭包(closure)指有权访问另一个函数作用域中变量的函数,一个作用域可以访问另外一个函数的局部变量闭包的作用:延长变量的作用范围1. 利用闭包的方式得到当前li的索引号思路:页面中定义一个li列表获取li的集合,进行遍历,为每个li绑定点击事件,打印当前li的索引在循环内,创建立即执行函数,立即执行函数内部是包裹着点击事件的,自执行函数的参数是for循环变量代码块:<body> <ul class="nav">原创 2020-09-22 17:11:39 · 283 阅读 · 0 评论 -
this 简单明了指向问题
回顾一下 JavaScript 中 this 的指向问题(非严格模式下的 this 指向)函数的不同调用方式决定了 this 的指向不同普通函数 this 指向 window function fn() { console.log('普通函数的this' + this); } window.fn();对象的方法 this 指向的是对象 var o = { sayHi: function().原创 2020-11-05 20:17:15 · 186 阅读 · 1 评论 -
模块化与闭包
在《《JavaScript核心技术开发解密》》讲模块化与闭包中,提到了一个案例,实现每隔一秒 body的背景颜色就随着一个数字的递增在固定的三种颜色之间切换。目前流行的模块化开发思路,无论是requier,还是ES6中的module,虽然实现方式不同,但是核心的思路都是一样,模块化其实就是建立在单例模块基础之上的,因此模块化开发和闭包息息相关。下面实现每隔一秒 body的背景颜色就随着一个数字的递增在固定的三种颜色之间切换的案例首先创建一个专门用来管理全局状态的模块。这个模块中有一个私有变量保存.原创 2020-11-02 11:56:30 · 806 阅读 · 2 评论 -
前端基础面试题--基础数据类型与引用数据类型(Obiect)
今天在图书馆看到《JavaScript核心技术开发解密》这本书,里面讲了js的基础核心知识,拿来回顾一下,加深对基础知识的理解,感觉还不错,值得推荐,下面是随手记录一下知识点总结。基础数据类型与引用数据类型发生复制行为后的不同结果看下面两个demo//demo01.jsvar a = 20;var b = a;b = 30;//这时a的值是多少//demo02.jsvar m = { a: 10 , b: 20}var n = m;n.a = 15;//这时m.a的值是多.原创 2020-10-27 20:07:48 · 625 阅读 · 2 评论 -
Node.js异步编程 异步函数 async await 关键字
ES7中新增了异步函数语法,异步函数就是基于Promise对象的基础上进行封装,用来解决异步编程,可以让我们将异步代码写成同步的形式,让代码不再有回调函数嵌套,使代码变得清晰明了。1.什么是同步API,什么是异步API同步API:只有当前API执行完成后,才能继续执行下一个APIconsole.log('before'); console.log('after');异步API:当前API的执行不会阻塞后续代码的执行console.log('before');setTimeout(.原创 2020-10-20 12:58:52 · 1438 阅读 · 1 评论 -
js学习笔记--ES6
前言 :ES6新增了若干语法,例如:let 关键字、const 声明常量、数组以及对象解构赋值、箭头函数、剩余参数等;以及ES6的内置对象扩展,包括Array 的扩展方法、String 的扩展方法还有Set 数据结构等,今天这里只记录一下Let 关键字和箭头函数的经典面试题,想要了解更多请至码云...原创 2020-09-25 22:33:05 · 234 阅读 · 0 评论 -
利用js将手机号中间四位变成*号
前言:无意间留意到一个面试题,需求是利用js将手机号中间四位变成*号,简单记录一下。1. 利用字符串的substr方法substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。语法:str.substr(start[, length])参数start:开始提取字符的位置。length:可选。提取的字符数。 var tel = 15617076160; tel = "" + tel; var newTel = tel.substr(0,3) + "****".原创 2020-09-26 23:09:06 · 1558 阅读 · 0 评论