js面试题
仟北代~
乾坤已定,你我皆是牛马
展开
-
穿透与300延迟
1.移动端300ms延迟 原因:因为手机浏览器的原因,一点击一下,浏览器不知道到底是应该触发还是等待你的双击的下一次,所以就会等300ms去等待确认,这就造成了延迟 解决方法 1.meta标签里 <metaname="viewport"content="width=device-width,initial-scale=1.0,minimum-scale,maximum-scale=1,user-scala...原创 2021-08-31 21:52:10 · 112 阅读 · 0 评论 -
实现promise的常用方法
构造函数版 function handlePromise(execut) { const FULFILLED = 'resolve' const REJECT = 'rejected' const PEDDING = 'pedding' function fnPromise(res, newPromise, resolve, reject) { ...原创 2021-08-03 16:35:54 · 197 阅读 · 0 评论 -
从输入url到页面显示这个过程发生了什么
注:这题胜在区分度高,知识点覆盖广,再不懂的人,都能打赏几点,高手就在于根据自己擅长的领域自由发挥,从url规范,http协议,dns,cdn,数据库查询,到浏览器解析,css树构建,dom树构建,js执行等等方面 1.先查找缓存 首先在内存缓存中查找 硬盘缓存中查找 系统host文件中查找(当在浏览器缓存中找不到时) 路由器缓存中去查找 2.dns服务器系统解析域名 检查本机host文件系统查找缓存 检查本地dns缓存 转发至区域dns服务器解析 根服务器解析 通过递归或者迭代方法查解析查询,将解析原创 2021-06-26 23:12:02 · 83 阅读 · 1 评论 -
JavaScript面试题
1.网站性能优化 减少http请求,合并文件,使用图片精灵技术 css方面 -使用link标签, -少使用@import来引入 js方面 -将脚本放到页面的最底部 -js与css文件使用外部引入的方式 -在html中等比例操作图片,不要拉伸图片 2.html与xhtml有什么区别? xhtml可兼容各大浏览器,手机以及ipad,在语法上更严谨,区分大小写,标签必须要闭合 3.doctype有什么作用,怎么区分严格模式与混杂模式?为什么h5只需要写doctype? doctype位于文档的最顶原创 2021-06-26 16:13:33 · 67 阅读 · 0 评论 -
javascript面试题~手写call、apply、bind
1.bind bind与其他两个不同的是,调用了bind时不会立即执行,所以就要在它的内部return 一个函数 Function.prototype.myBind = function(context){ if(typeof this !== 'function'){throw new Error('Error')} let args = [...arguments].slice(1) // 得到所有的参数 let _this = this //把这个要执行的函数保存下来 return funct原创 2021-06-10 14:43:55 · 135 阅读 · 1 评论 -
sessionStorage
sessionStorage 临时会话使用,在页面关闭之后就会丢失数据 document.querySelector('#sessionstore').addEventListener('click', () =>{ let Obj = JSON.stringify(obj) sessionStorage.setItem('info', Obj) // 页面跳转 window.open('demo01.html') }) //设置数据 document.原创 2021-06-08 19:28:19 · 128 阅读 · 0 评论 -
css伪类与伪元素
a:hover{ color: red; } a:active{ color: blue; } a:focus{ background-color: brown; } /* 焦点被选中的时候 */ a:link{ /* font-size: 25px; */ co...原创 2021-06-08 15:16:45 · 62 阅读 · 0 评论 -
三道经典面试题
数组扁平化 let arr = [ [1,2,3], [1,2,3,[1,2,3,[1,2,[[1,2,3]]]]],2 ] function myFloat(arr){ let result = [] let fn = (arr) => { arr.forEach(value => {原创 2021-06-06 22:10:45 · 81 阅读 · 0 评论 -
js隐式转换问题
1.valueOf()与 toString()方法 valueOf()方法返回一个数据的原始值 toString()调用的是原型上的toString(假设对象上没有重写这个方法) let obj = { toString(){ return 1 }, valueOf(){ return 2 } } console.log(Number(obj)) //2 由此可见Number(obj)的时候,返回的是valueOf的返回值 当使用Number(obj)的时候 再来看个例子 let ob原创 2021-06-05 19:05:04 · 212 阅读 · 0 评论 -
es6 class继承二
通过extends关键字来实现继承 extend单词本身的意思就是 扩大,扩展 //书写格式 class A{} class B extends A{ constructor(){ super() } } super关键字 class A{ constructor(){ this.name = 'A' console.log(this.name) } getN原创 2021-06-05 00:45:32 · 127 阅读 · 0 评论 -
es6 Class基本语法一
class 使用与构造函数基本相同 1.基本概念 class point { toString(){} constructor(){ this.b = 5 this.a = function(){} } } let p = new point() 1.class里的方法都写在原型上 用Object.keys§是检测不到的 2.typeof point ‘function’ 3.类内部的方法都是不可枚举的 4.类内部不允许使用严格模式 5.如果一个属性方法没有this,那就是原型原创 2021-06-05 00:01:45 · 113 阅读 · 0 评论 -
js继承方法——原型链继承
function Father(name,age){ this.name = name this.age = age } Father.prototype.sayName = function(){ console.log('Father原型上的方法') } //在这里定义了一个父函数,以及在它的原型上写了一个方法 function son(name,age){ father.apply(this,[...arguments]) //这一步是为了在当前的子函数中调用father构造函数里的方原创 2021-06-04 20:06:09 · 127 阅读 · 0 评论 -
javascript继承方法(构造继承)
1.构造继承 使用构造函数来继承 function Star(name,age){ this.name=name this.age=age this.sayName=function(){ console.log(this.name) } } Star.prototype.sing=function(){ alert(this.name) } var ldh=new Star('刘德华',28) va原创 2021-06-04 19:25:29 · 250 阅读 · 0 评论 -
js正则表达式全解
1.正则表达式的两个方法 1.test() 2.exec() let str = '123' let reg = /\d/ reg.exec(str) //["1", index: 0, input: "123", groups: undefined] //exec()捕获一个符合规则的结果 // 该方法只会匹配一次结果,如果还需要其他的符合结果的 // 再次捕获 使用 reg.exec(str) // 例如: reg.exec(str) //["1", index: 0, input: "123",原创 2021-06-04 16:52:02 · 208 阅读 · 0 评论 -
js数组常用方法
会改变原数组的方法 push() 添加一个数组元素在末尾 返回添加后的长度 shift() 删除数组的第一个元素 返回删除的元素 unshift() 在数组第一个位置添加一个元素 返回长度 pop() 移除最后一个元素 返回移除的元素 reverse() 反转数组 返回反转后的数组 sort() 排序 返回排好序的方法 splice() 这个方法,可以实现更改,删除,插入的功能 // 第一个参数 起始位置 // 第二个参数 删除几个元素 // 第三个参数 要添加的元素原创 2021-06-04 03:00:23 · 442 阅读 · 0 评论 -
js常用字符串方法
字符串 关于查找位置类的方法 // 1.indexOf()返回第一次出现的位置,如果没有找到返回-1 let str = 'abcd123efg' console.log(str.indexOf('d')) //3 // 他还可以传入第二个参数,表示开始检查的起始位置 //2.lastIndexOf() //与上边的原理一样,它的作用是查找一个最后出现的位置 let str = '121212' console.log(str.lastIndexOf('2')) //5 // 他还可以传入第二个参数,表原创 2021-06-04 02:40:28 · 288 阅读 · 0 评论 -
js面试题 节流与防抖
1.什么是节流? 什么是防抖? 节流:有个函数会频繁的触发,处于优化性能考虑,在规定的时间周期内,只有第一次触发的函数才有用 防抖:原理和节流一样,是在触发的最后一次才执行 2.为什么要它们? 在绑定 scroll 、resize 这类事件时,当它发生时,它被触发的频次非常高,间隔很近。如果事件中涉及到大量的位置计算、DOM 操作、元素重绘等工作且这些工作无法在下一个 scroll 事件触发前完成,就会造成浏览器掉帧。加之用户鼠标滚动往往是连续的,就会持续触发原创 2021-05-31 00:37:21 · 286 阅读 · 0 评论