
前端面试题
文章平均质量分 80
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浏览器渲染原理
reflow的本质就是重新计算layout树。当进行了会影响布局树的操作后,需要重新计算布局树,会引发layout。为了避免连续的多次操作导致布局树反复计算,浏览器会合并这些操作,当JS代码全部完成后再进行统一计算。所以,改动属性造成的reflow是异步完成的。也同样因为如此,当JS获取布局属性时,就可能造成无法获取到最新的布局信息。浏览器在反复权衡下,最终决定获取属性立即reflowrepaint的本质就是重新根据分层信息计算了绘制指令。原创 2024-08-11 14:53:07 · 551 阅读 · 0 评论 -
1.事件循环
主线程就会启动更多的线程来执行代码, 所以一个进程中可以包含多个线程。一个进程至少有一个线程,所以在进程开启之后会自动创建一个线程来执行代码,该线程称之为主线程。如果让渲染主线程等待这些任务的时机达到,就会导致主线程长期处于阻塞状态,从而导致浏览器卡死。为了避免相互影响,为了减少连环崩溃的几率,当启动浏览器后,它会自动启动多个进程。程序运行需要有他自己的专属的内存空间,可以把这块内存空间简单的理解为进程。每个应用至少有一个进程,进程之间相互独立,即使要通信,也要双方同意。其中,最主要的进程有。原创 2024-08-04 19:23:15 · 342 阅读 · 0 评论 -
前端面试题(18)Git
1.简述git第一次使用时,需要进行哪些配置git全局配置,初始化开发人员信息git config --global user.name ‘开发人员名称’git config --global user.email ‘开发人员邮箱’2.简述git中如何将一个新的文件如何添加到本地仓库生成版本记录的过程本质上就是将一个新的文件如何添加到本地仓库生成版本信息记录的过程git add 文件名称git commit 文件名称 -m “完善的注释”3. 简述git中如何完成本地仓库和远程仓库的原创 2021-11-23 23:56:55 · 280 阅读 · 0 评论 -
前端面试题(17)ES6
21.梳理下面的代码,最终输出的数据是什么?请说明原因 let person = { 'pName': 'zhangsan', 'pAge': 20, 'pSex': 'nale' } let { pName: name, pAge } = person console.log(name); c原创 2021-11-21 01:10:10 · 587 阅读 · 0 评论 -
前端面试题(16)ES6
#11.声明类型的语法,正确的是(BC)A class Person() {}B class Person {}C function Person() {}D function Person{}12.关于ES6中constructor() 的描述,正确的是?(ABD)A 类型中的构造函数,用来在创建对象的同时初始化对象属性B 创建指定类型的对象时,会自动调用执行C 类型中的构造函数,需要手工调用执行D 类型中的普通函数,需要手工调用执行13.箭头函数的使用,操作语法正确的是 (BD)A原创 2021-11-21 01:08:13 · 474 阅读 · 0 评论 -
前端面试题(15)ES6
1.ES6中的let关键字和val关键字声明变量的区别var关键字是原生JS中声明变量的关键字,let关键字是ES6语法中新增关键字let关键字声明的变量不能重复声明,var关键字可以重复声明变量let关键字解析变量没有预解析,var关键字声明的变量包含预解析过程let关键字提供了块级作用域,var关键字没有块级作用域,只有局部、全局作用域2.简述模板字符串的使用优势常规字符串中如果需要进行字符串和变量数据的拼接,需要通过连接符号+进行拼接,如果字符串和拼接 变量数量较多,拼接过程非常繁琐原创 2021-11-21 01:06:15 · 232 阅读 · 0 评论 -
前端面试题(14)
131.如何使用jQuery来给一个元素添加 和删除class属性$(selector).addClass(cllssName)$(selector).removeClass(className)132.使用document.getElementById()和$(#id)哪种方式效率更高document.getElementById()是原生js语法,直接调用JS引擎完成数据处理,效率更高。$(‘#div’)是jQuery对原生js的封装提供的函数,首先调用JS代码,然后调用JS引擎尽管原生原创 2021-11-21 01:03:21 · 149 阅读 · 0 评论 -
前端面试题(13)
121.$(:input)选择器描述正确的是(D)A 选择页面中所有标签名称为input的标签B 选择页面中id=‘input’ 的所有标签C 选择页面中class='input’的所有标签D 选择页面中input/select/textarea/button等所有表单标签122.window.onload和$(document).ready(fn)的联系和区别联系:它们都是等待网页数据加载后才执行对应代码的事件函数区别:window.onload 在一个网页结构中只能出现一次,出现多次只有原创 2021-11-21 01:00:33 · 352 阅读 · 0 评论 -
前端面试题(12)
111.简述函数语法中,arguments和形式参数的关系arguments是函数声明时的一个内建参数,可以接收函数在调用时传递的所有参数数据的特殊变量形式参数是函数声明时候,放在函数声明后面括号中的变量,声明函数如果需要执行就需要接收这些参数数据arguments是一个内建关键词,可以表示或者描述参数112.请说明你对闭包的理解,闭包有什么特点,并写出一个简单的闭包代码闭包本质上就是在函数的内部声明了另一个函数,通过闭包可以扩展外部函数中局部变量的作用域范围,让外部函数中的局部变量避免了变原创 2021-11-21 00:58:12 · 693 阅读 · 0 评论 -
前端面试题(11)
101.用函数递归实现计算斐波那契数列第n位数据function feibo(n){ if(n<= 2) { return 1 } return feibo(n-2) + feibo(n-1)}102.用函数的递归实现计算给定数值n的阶乘fucntion jieCheng(n){ if(n<=1) { return 1 } return n*jieCheng(n-1)}103.JS代码实现一个账号、邮箱的验证var r原创 2021-11-21 00:55:22 · 159 阅读 · 0 评论 -
前端面试题(10)
91.元素的样式、类如何改变获取样式: 元素.currentSytle(样式名称)或者getComputedStyle(元素).样式名称设置样式:元素.style.样式名称 = 样式值改变类: 元素.className = “新名称”92.什么是懒加载?懒加载就是延迟加载,当用户触发了一定的事件之后再加载目标元素的操作93.document.write和innerHTML的区别document.write()会改变页面文档,不建议使用innerHTML操作闭合标签内部内容94.原创 2021-11-19 13:59:07 · 113 阅读 · 0 评论 -
前端面试题(9)
81.简述JS中常见的兼容性问题浏览器窗口:document.documentElement.clientWidth||document.body.clientWidth事件对象: var event = window.event || ev阻止冒泡: event.stopPropagation() || event.cancelBubble = true阻止默认行为: event.preventDefault() || event.returnValue = false键盘事件:event.k原创 2021-11-19 13:57:15 · 633 阅读 · 0 评论 -
前端面试题(8)
71.数组的操作中,判断一个数据是否包含在数组中可以选择的操作是什么?如果向数组中添加数据可以选择的操作是什么?如果从数组中删除数据可以选择的操作是什么?indexOf() includes() find() findIndex() some()arr[索引] = 值 push() unshift() splice()pop() shift() splice()72.如果要进行字符串中部分字符的替换,可以选择的操作是什么?replace() split()/join()73.元素原创 2021-11-19 13:55:53 · 127 阅读 · 0 评论 -
前端面试题(7)
61.编写一个函数,实现字符串的翻转,如输入“123”,得到结果“321”function reverse(str) { var newStr = "" for(var i = str.length- 1;i>= 0;i--) { newStr += str[i] }return newStr}62.下面哪些数据使用for循环无法遍历(B)A var s = ‘heloe’B var n = 20C var x = document.getEle原创 2021-11-19 13:54:03 · 233 阅读 · 0 评论 -
前端面试题(6)
51.编写一个可以获取1-任意值之间随机数的函数function getRandom(maxNum) { return Math.ceil(Math.random() * maxNum)}52.什么是数组的深浅拷贝数组的拷贝,就是通过复制的方式,复用数组中的数据浅拷贝:引用赋值,将一个数组在引用变量中存储的内存地址赋值给另一个变量,通过两个变量都可以操作这个数组中的数据深拷贝:真实数据赋值,堆内存中直接将原始数组又复制了一个新的数组,两个数组互相独立,操作数据互不影响,代码中创建原创 2021-11-19 13:52:20 · 246 阅读 · 0 评论 -
前端面试题(5)
41.写出数学对象中包含了哪些方法以及对应含义解释Math.ceil() 向上取整Math.floor()向下取整Math.round() 四舍五入Math.trunc() 截断数据Math.max() 获取最大值Math.min() 获取最小值Math.random() 获取0-1之间的随机数Math.sin()/cos()/tan() 获取对应三角函数值Math.pow()/Math.sqrt() 求幂次方/开根号42. 说出this的概念以及所有指向的环境JavaScrip原创 2021-11-19 13:50:51 · 166 阅读 · 0 评论 -
前端面试题(4)
31.简述你对this的理解this指代的是当前对象,在JavaScript操作页面标签对象时,this会出现如下几种情况直接声明全局函数,函数内部的this指代的浏览器窗口对象window声明函数挂载到标签事件属性上,函数内部this指代的是当前标签对象函数出现在JSON对象中,函数内部的this指代的就是当前JSON字面量对象32.请描述你对预解析的理解JavaScript语法规范中,在变量声明时,变量所在的作用域空间,会将变量的声明提升到所有代码的最前面,就是语法规范中的变量预解析,原创 2021-11-19 13:47:52 · 359 阅读 · 0 评论 -
前端面试题(3)
21.分析下面代码的输出结果,并说明原因var myName = 'zhangsan'function fn() { console.log(myName) var myName = "lisi"}fn()undefined 变量提升/预解析JavaScript语法规范中,变量在自己所在的作用域中进行赋值时,会出现一个预解析的过程,先声明后操作,所以会出现undefined22.编写代码,找出111-999中的水仙花数(水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿原创 2021-11-19 13:45:46 · 330 阅读 · 0 评论 -
前端面试题(2)
11.简述JS如何操作标签属性获取元素 ele获取属性:ele.属性名ele[’‘属性名’]设置属性:ele.属性名 = ‘属性值’ele[’‘属性名’] = “属性值”12.简述JS如何操作标签样式获取元素ele获取行内样式 ele.style.样式名获取非行内样式非ie getComputedStyle(ele).样式名ie ele.currentStyle.样式名设置样式 ele.style.样式名 = ‘样式值’13.简述JS如何操作标签内容获取元素ele闭合原创 2021-11-19 13:43:03 · 276 阅读 · 0 评论 -
前端面试题(1)
1.简述JavaScript的特点JavaScript是一门基于对象的、事件驱动的、跨平台的、弱类型的、函数优先的、解释型的编程语言基于对象:JavaScript封装了很多对象提供了强大的功能,提高了开发效率事件驱动:JavaScript可以友好的响应用户的操作,通过事件的方式进行处理跨平台:JavaScript本身对于操作系统平台依赖性很低弱类型:JavaScript对于变量中存储的数据的类型不是强制的函数优先:JavaScript开发过程中以灵活运用到函数式程序开发优先解释型:JavaS原创 2021-11-19 13:41:30 · 262 阅读 · 0 评论