面试题
loushumei
这个作者很懒,什么都没留下…
展开
-
获取当前页面url参数的三种方法
知识先填坑:location.search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号(包含?)?之后的部分)假设访问路径为:file:///Users/xiao**/learn/js_basics/11.html?a=100&b=20&c=30;分别通过【正则匹配】、【拆分字符串成数组】、【新API URLSearchParams】三种方式获取参数方法如下:方法一、正则方法匹配需要的参数//search属性获取到带?的参数字符串console.l原创 2020-08-25 15:52:48 · 3648 阅读 · 0 评论 -
[10,20,30].map(parseInt)返回结果解析
话不多说,直接上结果:[10, NaN, NaN]剖析使用的方法和参数:map的参数和返回值map() 方法定义在JavaScript的Array中, 它返回一个新的数组, 数组中的元素为原始数组调用函数处理后的值。array.map(function (currentValue, index, arr), thisIndex).currentValue: 必须。 当前元素的的值。index: 可选。 当前元素的索引。arr: 可选。 当前元素属于的数组对象。thisIndex可选。原创 2020-08-24 19:36:18 · 819 阅读 · 2 评论 -
http缓存详解
1.为什么缓存?相对于cpu的计算和页面加载速度(mm级)来说,网络请求更耗时,所以通过http缓存的方式时间来减少网络请求,从而能达到访问前端页面的性能优化。http缓存策略分为强制缓存和协商缓存2.强制缓存 Catch-ControlCache-Control 在Response Headers中,控制强制缓存的逻辑.(例如 Cache-Control:max-age=31536000(秒)=1年).Expires 在Response Headers中,设置缓存过期,已被Catc原创 2020-07-09 16:03:04 · 1140 阅读 · 0 评论 -
Promise 状态的表现与变化以及执行顺序
Promise三种状态:pending 过程中resolved 已成功rejected 已拒绝状态的表现pending状态,不会触发then和catchresolved状态,会触发后续的then回调函数rejected状态,会触发后续的catch的回调函数状态变化:pending–> resolved 成功.pending–> rejected 失败.变化不可逆.// pending状态的Promiseconst p1 = new Promise((resolve, r原创 2020-06-24 18:58:04 · 941 阅读 · 0 评论 -
描述event-loop(事件轮询)机制
event loop是什么?JS是单线程运行的.异步要基于回调来实现.event loop就是异步回调的实现原理event loop执行过程Browser console 浏览器打印窗口 Call Stack 调用栈. Web APIs 处理定时或异步的API. Event Loop 事件轮询. Callback Queue 回调函数队列. 实例:console.log('Hi');setTimeout(function cb1() { con原创 2020-06-23 20:31:06 · 538 阅读 · 0 评论 -
从输入url到渲染页面的整个过程
加载资源的形式html代码.媒体文件,如图片、视频等.javascript、css.1.加载资源的过程DNS解析(域名服务解析):域名->IP地址浏览器根据IP地址向服务器发送http请求服务器处理http请求,并返回给浏览器2.渲染页面的过程根据HTML生成DOM Tree根据css代码生成CSSOM(CSS对象模型)将DOM Tree和CSSOM整合形成Render Tree浏览器根据 Render Tree 渲染页面如果遇到<script>则暂停渲染,原创 2020-06-10 18:28:00 · 1823 阅读 · 0 评论 -
前端常用的开发环境核心内容整理[ git | chrome | h5抓包 | webpack | linux ]
一、Git 代码版本管理工具1.常用的git服务器github | coding.net(码云)2.git的常用命令git init [project-name] //新建一个目录,将其初始化为Git代码库 git clone [url] //下载一个项目和它的整个代码历史git add . //将工作区的“新建/修改”添加到暂存区git checkout xxx // 恢复暂存区的指定文件到工作区git commit -m "xxx" //将暂存区的内容提交到本地库git stat原创 2020-06-02 21:27:04 · 231 阅读 · 0 评论 -
AJAX跨域问题讲解
为什么会发生产生跨域问题?####[ 产生跨域的原因 ]1.浏览器限制2.跨域(协议,域名,端口任何一个不同)3.XHR(XMLHttpRequest)请求也就是说当我们发送的是XMLHttpRequest请求不同的域名,浏览器就会限制访问,那么就会产生跨域问题。####[ 解决跨域问题的思路 ]1.改动客户端浏览器参数来解除限制 浏览器启动加入 --disable-web-security2.Jsonp解决是XHR请求的问题.3.跨域: 被调用方支持跨域,调用方的隐藏请求##跨原创 2020-05-27 15:37:14 · 157 阅读 · 0 评论 -
手写Promise加载一张图片
Promise产生的原因常见的回调地狱场景:// 回调地狱 callback hell// 获取第一份数据$.get(url1, (data1) => { console.log(data1) //获取第二份数据 $.get(url2, (data2) => { console.log(data2) //获取第三份数据 $.get(url3, (data3) => { console.原创 2020-05-19 13:36:37 · 389 阅读 · 0 评论 -
前端使用异步的场景有哪些
同步和异步的区别是什么javascript语言是单线程机制。所谓单线程就是按次序执行,执行完一个任务再执行下一个。【同步】:按照一定的顺序去执行,执行完一个才能执行下一个,会阻塞代码执行【异步】:不会阻塞代码执行前端使用异步的场景有哪些1. 网络请求,如 ajax请求、图片加载//ajax请求console.log('start')$.get('./data.json',function(data){ console.log(data)})console.log('end')原创 2020-05-08 20:18:36 · 1500 阅读 · 0 评论 -
JS关于作用域、闭包的面试题
1.创建10个a标签,点击时弹对应的序号常见做法 ❌var afor (var i = 0; i < 10; i++) { a=document.createElement('a') a.innerHTML=i a.addEventListener('click',function(e){ e.preventDefault()//取消默认事件 ...原创 2020-05-06 23:33:49 · 232 阅读 · 0 评论 -
call和apply和bind的区别、手写bind函数
call、apply、bind的区别1.定义:call apply看作是对象的方法,通过调用方法的形式间接调用函数。都是为了改变某个函数运行时的上下文(context)(函数体内部 this 的指向)而存在的。bind方法主要的作用是将函数绑定至某个对象,当函数f()上调用bind()方法并传入对象o作为参数,这个方法将返回一个新的函数。2.参数:【call、apply bind 相同点...原创 2020-05-05 22:55:06 · 196 阅读 · 0 评论 -
浅析作用域、自由变量、闭包
作用域全局作用域: 变量未受到函数的约束,在全局可以使用,如windows对象,document对象函数作用域: 在函数中定义的变量只能在当前函数中有效块级作用域(ES6):在某个{}声明的,只在当前{}有效自由变量一个在当前作用域中没有定义,但是被使用了向上级作用域,一层一层一席寻找,直至找到为止如果到全局作用域都没找到则报错 xx is not definedlet a...原创 2020-04-27 11:08:59 · 167 阅读 · 0 评论 -
手写一个简易的Jquery考虑插件及扩展性
通过手写一个简易的DOM节点查询功能的Jquery实例,了解Jquery内部实现原理及理解Class与继承。页面DOM节点如下<p>第一段文字 1</p><p>第一段文字 2</p><p>第一段文字 3</p>定义jquery对象class jQuery{ // constructor 构造器 ...原创 2020-04-21 20:00:54 · 429 阅读 · 0 评论 -
javascript中赋值、浅拷贝、深拷贝的区别及实例详解
赋值当把一个对象a赋值给另外一个对象b时,赋的值是对象a在栈中的地址,而不是堆中的数据。let a={ name:'xiaoming', age:21, grade:{ language:60, math:81, english:99, science:94 },}let b=ab.nam...原创 2020-04-11 20:52:52 · 259 阅读 · 0 评论 -
javascript中值类型和引用类型的区别
js的变量类型有哪些1、值类型(基本类型):字符串(string)数值(number)布尔值(boolean)undefined、null2、引用类型:对象(Object)数组(Array)函数(Function)值类型和引用类型的区别【值类型】1.占用空间固定,保存在栈中,在当前环境执行结束时销毁2.保存和赋值是值的本身3.可以使用typeof检测数据类型4.基本...原创 2020-04-11 19:20:48 · 150 阅读 · 0 评论 -
JavaScript学习笔记6 之易错题整理
本篇内容是关于容易出错题的整理,这些题也有利于对javascript的语法逻辑的理解,分析的内容仅供参考: 1 2 /*1*/ 3 var x=0 , y=0 , c=1; 4 function add(n) {n=n+1;} 5 x=add(c); 6 alert(x);//4 7 function add(原创 2016-09-23 10:09:10 · 306 阅读 · 0 评论