| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 前端面试题(基础部分) -> 正文阅读 |
|
[JavaScript知识库]前端面试题(基础部分) |
1.作用域
注意:let var const区别 let 只作用域块元素当中 定义的是变量 var 作用与全局当中 定义的变量 const 定义的常量 2.函数封装(例子:字符串拼接)题目:将foo='get-element-by-id' 拼接成getElementById
注意: split('')通过什么符号字母进行截取 且返回的结果是数组 charAt('拿那一位') toUpperCase()大写 substr(start,length)字符串中抽取从 start 下标开始的指定数目的字符 join('')通过字母或者符号进行数组的拼接 返回的是一串字符串 3.冒泡排序
4.数组反转5.语义化标签title,header,nav,main,article,h1~h6,ul,ol,address,canvas,dialog,aside,section,figure,details,mark 6.h5新特性(标签)header标签包含引导和导航等,通常包含h1~h6、搜索框、logo等。 footer标签一般配合address标签(显示地址),包含作者信息、相关链接等。 nav标签一般包含多个a标签,构建导航组件。 aside标签主要装载广告、侧边栏。 article标签包含文章,一般内嵌header、footer、h1、p标签。 section标签可以用在以上任一一个标签中划分组件。 hgroup顾名思义是h1~h6的集合 7.闭包闭包的实质是因为函数嵌套而形成的作用域链 闭包的定义即:函数 8.去重
9.flex属性 水平居中
10.rem布局rem px em区别
rem是全部的长度都相对于根元素<html>元素。通常做法是给html元素设置一个字体大小,然后其他元素的长度单位就为rem。
px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 一般电脑的分辨率有{1920*1024}等不同的分辨率 1920*1024 前者是屏幕宽度总共有1920个像素,后者则是高度为1024个像素 11.this指向a.如果是一般函数,this指向全局对象window; b.在严格模式下"use strict",为undefined. c.对象的方法里调用,this指向调用该方法的对象. d.构造函数里的this,指向创建出来的实例. 12.清除浮动1.使用空标签清除浮动。 这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。 2.使用after伪对象清除浮动 该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置 height:0,否则该元素会比实际高出若干像素; #parent:after{ content:"."; height:0; visibility:hidden; display:block; clear:both; } 3.设置overflow为hidden或者auto 4.浮动外部元素 13.VUE生命周期以及特点在beforeCreate和created这个生命周期,进行初始化事件,进行数据的观测,到了created的时候,放在data里面的数据已经完成了绑定 在created和beforeMount这个生命周期,它会判断vue实例对象有没有el这个属性,如果没有生命周期就结束了,如果有就判断有没有template这个属性,如果有就把他作为模板渲染,如果没有就把外部HTML作为模板 在beforeMount和mounted这个生命周期,会把vue实例对象的el替换成挂载的DOM元素,这时data里的数据还没被渲染 在mounted完成之后,挂载的DOM元素数据被渲染上去 14.Promise怎么使用、解决了什么、怎么中断 15.块元素有哪些行内元素:a, b, i, abbr, span, sub, sup, strike, strong 块级元素:div, p, h1-h6, ul, textarea, table, button 空元素:hr, input, br, img, link, meta 16.vue-router两种模式、几种、区别 vue-router是vuex.js官方的路由管理器,它和vue.js的核心深度集成,让构建但页面应用变得易如反掌 <router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航。 通过 to 属性指定目标地址 <router-view> 组件是一个 functional 组件,渲染路径匹配到的视图组件。 17.浏览器储存方式cookie: 一般由服务器生成,可设置失效时间. localStorage:仅在客户端(即浏览器)中保存,除非被清除,否则永久保存 sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除 19.性能优化减少http请求 把js脚本置地加载 css放在head中 20.css哪些属性可以继承可继承的样式: font-size font-family color, UL LI DL DD DT; 不可继承的样式:border padding margin width height ; 21.VUEX优缺点、属性、action mutation区别、看过vuex源码 vuex是一个专为vue.js应用程序开发的状态管理器,它采用集中式存储管理应用的所有组件的状态,并且以相 应的规则保证状态以一种可以预测的方式发生变化。 state: vuex使用单一状态树,用一个对象就包含来全部的应用层级状态 mutation: 更改vuex中state的状态的唯一方法就是提交mutation action: action提交的是mutation,而不是直接变更状态,action可以包含任意异步操作 getter: 相当于vue中的computed计算属性 24.v-show v-if区别前者为false的时候为 display:none,后者为false的时候,不生成节点 前者有更高的切换渲染消耗,频繁切换建议使用后者 27.深度拷贝 浅度拷贝说法①
说法②
29.http状态码1xx(临时响应) 100: 请求者应当继续提出请求。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备进行切换。 2xx(成功) 200:正确的请求返回正确的结果 201:表示资源被正确的创建。比如说,我们 POST 用户名、密码正确创建了一个用户就可以返回 201。 202:请求是正确的,但是结果正在处理中,这时候客户端可以通过轮询等机制继续请求。 3xx(已重定向) 300:请求成功,但结果有多种选择。 301:请求成功,但是资源被永久转移。 303:使用 GET 来访问新的地址来获取资源。 304:请求的资源并没有被修改过 4xx(请求错误) 400:请求出现错误,比如请求头不对等。 401:没有提供认证信息。请求的时候没有带上 Token 等。 402:为以后需要所保留的状态码。 403:请求的资源不允许访问。就是说没有权限。 404:请求的内容不存在。 5xx(服务器错误) 500:服务器错误。 501:请求还没有被实现。 30.link标签和import区别1 属性差别。link属于XHTML标签,而@import完全是CSS提供的语法规则。 link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。 2 加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显. 3 兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。 4 使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。 31.跨域解决方案(1)response 添加 header:resp.setHeader("Access-Control-Allow-Origin", "*"); (2)jsonp (原理即利用script标签可以跨域) (3)代理 32.webpack理解、常用打包插件、常见的loader webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。 简单说就是模块加载器,通过使用Webpack,能够像Node.js一样处理依赖关系,然后解析出模块之间的依赖,将代码打包。 css-loader: 将样式打包成字符串。 style-loader:将样式字符串添加到页面的style标签中 33.transform画一条0.5px的直线?
34.盒模型盒模型的组成,由里向外content,padding,border,margin. 在IE盒子模型中,width表示content+padding+border这三个部分的宽度 在标准的盒子模型中,width指content部分的宽度 35.labellabel标签主要是方便鼠标点击使用,扩大可点击的范围,增强用户操作体验 36.js 递归用js递归的方式写1到100求和?
37.target、currentTarget的区别?currentTarget当前所绑定事件的元素 target当前被点击的元素 39.说一下自己常用的es6的功能module、class、promise
40.get post put delete1、POST /url 创建 2、DELETE /url/xxx 删除 3、PUT /url/xxx 更新 4、GET /url/xxx 查看 41.js基本类型和引用类型基本数据类型:Undefined、Null、Boolean、String、Number、Symbol (es6)。引用类型:Object。Object可以细分为: 43.require import区别区别1:模块加载的时间 require:运行时加载 import:编译时加载(效率更高)【由于是编译时加载,所以import命令会提升到整个模块的头部】 区别2:模块的本质 require:模块就是对象,输入时必须查找对象属性 import:ES6 模块不是对象,而是通过 export 命令显式指定输出的代码,再通过 import 命令输入(这也导致了没法引用 ES6 模块本身,因为它不是对象)。由于 ES6 模块是编译时加载,使得静态分析成为可能。有了它,就能进一步拓宽 JavaScript 的语法,比如引入宏(macro)和类型检验(type system)这些只能靠静态分析实现的功能。 44.img中的alt title区别alt是图片加载失败时,显示在网页上的替代文字; title是鼠标放在图片上面时显示的文字,title是对图片的描述与进一步说明; alt是img必要的属性,而title不是; 对于网站seo优化来说,title与alt还有最重要的一点: 搜索引擎对图片意思的判断,主要靠alt属性。所以在图片alt属性中以简要的文字说明,同时包含关键词,也是页面优化的一部分。条件允许的话,可以在title属性里进一步对图片说明。 45.BFC规范理解一、什么是BFC? BFC全称:块级格式化上下文(block formatting context),简单来说它就是一种属性,这种属性会影响元素与元素之间的位置、间距 二、形成BFC的条件 1、float:给元素添加浮动(属性值为left、right,但none除外) 2、position:给元素添加定位(属性值为absolute或fixed) 3、display:给元素添加display属性(属性值为 inline-block、table-cell或table-caption) 4、overflow:给元素添加overflow 属性(属性值为hidden、auto或scroll,但visible除外) 三、BFC形成后出现的常见问题 1、margin重叠问题 2、浮动相关问题 46.null underfined区别null表示"没有对象",即该处不应该有值 undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。 47.vue组件之间的传递父子件向子组件传值 组件内部通过props接收传递过来的值
子组件向父组件传值
兄弟组件传值 建立事件中心 建立全局组件 监听事件 点击触发兄弟组件事件
48.apply call
作用 : 1??他们可以通过传入其他对象来改变当前this的指向 区别 :
49.css 选择符1.id选择器( # myid) 2.类选择器(.myclassname) 3.标签选择器(div, h1, p) 4.相邻选择器(h1 + p) 5.子选择器(ul > li) 6.后代选择器(li a) 7.通配符选择器( * ) 8.属性选择器(a[rel = "external"]) 9.伪类选择器(a: hover, li:nth-child) 50.vue通信props和$emit 2.中央事件总线 EventBus(基本不用) 3.vuex(官方推荐状态管理器) 4.$parent和$children |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年5日历 | -2025/5/11 17:21:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |