当前位置: 首页 > Web前端 > HTML

一些前端知识

时间:2023-03-28 18:04:30 HTML

/*说明:这是一些随手记录的内容,还没有经过系统的整理和分级。可能后面会整理出来,也可能是这样/*1。对象遍历1.forinfor(letkeyinobj){console.log(obj[key])}2.Object.keys()2.Spreadoperator(...)1.可以使用哪些对象?可迭代对象,包括数组、类数组对象(字符串、参数对象、NodeList)、Set、Map2。为什么?扩展操作符默认调用对象的迭代器接口,任何配置了迭代器接口的对象都可以使用扩展操作符3、什么是可迭代对象?对于具有[Symbol.iterator]方法的对象,我们可以在可迭代对象本身或原型上找到[Symbol.iterator]方法。这个方法出现是为了之3.模块化标准模块化的优点或者说为什么模块化?避免命名冲突;更好的分离;按需加载;更高的可重用性;高可维护性。commonJS最初是用来弥补JS语言模块化缺陷的语言级规范。它主要用于Node.js。它分为三个部分:介绍、定义和标识符。Moudle可以直接在任何模块中使用,包括当前模块信息Require接收标识符。加载目标模块exports和modules.exports都可以导出模块数据同步加载AMD(AsynchronousModuleDefinition-异步模块定义)异步加载可以并行加载多个模块,加载完成后执行,不能保证执行顺序定义的标准化输出CMDasynchronousloading依赖就近(按需加载),加载完成后需要调用。SeaJS在推广过程中参考了模块定义ES6异步加载输出值的标准化输出。编译时输出处于代码静态分析阶段。ES6和commonJS的区别会发生吗?普通JS在运行时加载模块,ES6在编译时加载模块。普通JS的输出是值的拷贝(深拷贝),ES6的输出是值的引用。4.bable将ES6语法转为ES5会发生什么?让和常量?1、let定义的变量是全局变量,所以let直接改成var2。在块级范围内,let声明的关键字会被加下划线生成新的关键字,然后用varleta=>var_a3声明。在循环体中闭包的情况下,循环体会转化为一个自执行函数5.Map和Object的区别1.key的值类型:Map可以取任意值;Object只能是字符串或Symbol2.InsertOrder:Map会维护插入顺序;Object会按照自己的规则进行排序3.迭代:Map可以迭代,可以使用for-of和forEach;Object默认是不可迭代的,遍历需要使用for-in,Object.keys(),Object.Values()、Object.entries()等方法4.原型:Map默认不会覆盖原型属性;对象可以覆盖5、操作:MapObject创建new关键字new,{}添加mapObj.set('a',1)obj.a=1/obj[a]=1querymapObj.get('a')obj.a/obj[a]deletemapObj.delete('a')deleteobj.a/deleteobj[a]lengthmapObj.size()Object.keys(obj).length6.函数柯里化对原函数进行转换,转换后返回一个可以继续调用的函数,可以继续调用,达到继续传参的目的。传入的参数会保存在闭包中,在实际操作之前传入,返回所有参数计算后的最终结果。应用:参数多路复用*;早点返回(不同的环境执行不同的方法);延迟计算:会计、科学计算器等。*参数复用:函数中有一些参数需要执行多次,它们是相同的。这时候可以先传入相同的参数,再返回不同参数的闭包函数。此时只能对外调用闭包函数传递差分参数。7.Promise的三种状态1.Initialstate——pendingpromise执行后的初始状态,会一直保持这个状态,直到resolved或者rejected。挂起状态是唯一可以在承诺中更改的状态。resolved/fulfilled,不可逆3.失败状态——rejectedpromise执行rejected(),状态由pending变为rejected,不可逆8.git中merge和rebase的区别都可以用来合并代码,区别在于mergemerge方法相当于合并dev和master,然后推给master(暂时不考虑冲突)。Rebasemerge就是直接把基于dev的分支(basicbranch)改成最新的master。像这样:(个人理解,如有错误请指正)9.get和post的区别getpost从服务器获取数据,向服务器提交数据参数放在url中参数放在请求体中参数长度limitis2kUnlimitedparameterswillbereserved参数不保存在浏览器历史记录中,只能使用URL编码来支持多种编码。浏览器回滚是无害的。浏览器回滚会导致数据重复。提交请求会被浏览器主动缓存,不会主动。-loaderTS-->JSpostcss-loader在css中添加前缀less-loader/sass-loaderless/sass-->css,转换成js模块css-loader解析css文件,合并成一段css代码样式-loader结合一段css代码,将其转换成style标签,插入到HTML头部。file-loader处理文件(图片)地址,替换为访问地址,存入相应位置。url-loader类似于file-loader,具有图片大小配置功能。vue文件,将解析出来的脚本逻辑代码,style样式,模板template到对应的loaderraw-loader中以字符串的形式加载文件的原始内容,UTF-8编码babel-loaderES6-->ES5imports-loader导入其他模块中当前模块,处理非模块化规范eslint-loader编写的文件编译前检查ES6语法11.浏览器状态码代码含义1**信息,收到请求,继续处理2**成功,行为被成功接受,理解并接受200正常;请求完成201正常;紧跟在POST命令之后202正常;接受处理,但处理尚未完成203正常;部分资料。返回的信息只是204正常的一部分;没有反应。请求已经收到,但是没有信息可以发回,只有响应头没有正文数据3**Redirection301Moved。请求的数据有一个新的位置,并且更改是永久性的302Found。请求的数据暂时有一个不同的URI303SeeOther。请求的响应可以在另一个URI下找到,应该使用GET方法304NotModified检索。文档未按预期修改。客户端发起GET请求,但是页面内容自上次请求后没有变化。305代理被使用。请求的资源必须通过位置字段中提供的代理访问306未使用。不再使用;保留此代码以备将来使用4**客户端错误400错误请求。请求中存在语法问题,或者请求无法满足401Unauthorized。未经授权的客户端访问数据402需要付费。表示计费系统有效403Forbidden。即使未找到授权404,也不允许访问。服务器找不到给定的资源;文档不存在407代理身份验证请求。客户端必须首先使用代理415MediaTypeUnsupported对自己进行身份验证。服务器拒绝为请求提供服务,因为不支持请求实体的格式5**错误500服务器发生内部错误。由于意外情况,服务器无法完成请求501未执行。服务器不支持请求的工具502BadGateway。服务器收到无效响应503无法从上游服务器获取服务。由于临时过载或维护,服务器无法处理请求