
前端面试
reisaru
这个作者很懒,什么都没留下…
展开
-
模块管理工具(amd、cmd、commonjs、es6)和webpack
模块化概念——在进行项目分析或者编码时,先把项目进行拆分,拆分成很多的类,对象,很多的函数等等。能够提高代码的复用性。这些被拆分出来的类型,对象,函数就是模块。1) 前端模块化ES6之前,因为JavaScript不支持模块化,所以在前端里出现了第三方的解决方案 AMD和CMD。AMD:Asynchronous Module Definition,中文名是异步模块定义的意思,需要加载require.js库;对外导出使用return主模块再使用其他模块:require([引入的其它模块列表],原创 2020-09-21 15:28:42 · 437 阅读 · 0 评论 -
JavaScript的for...in和for...of和可迭代对象
前置知识:生成器 generator函数: 比起普通的函数,函数名和function之间多了*,乍一看很像c++的指针。function * generatorForLoop(num) { for (let i = 0; i < num; i += 1) { yield console.log(i); }}const genForLoop = generatorForLoop(5);genForLoop.next(); // 首先 { value: 'console.原创 2020-09-17 16:04:46 · 386 阅读 · 0 评论 -
CSS相关 错题集
Readonly只针对input(text/password)和textarea有效,而disabled对于所有的表单元素有效,包括select,radio,checkbox,button等。块级元素实际占用的宽度:border+padding+width原创 2020-09-15 16:49:17 · 192 阅读 · 0 评论 -
闭包和变量提升和异步同步相关 错题集
前置知识点:在es5中只有全局作用域和函数作用域,而es6中新增了一个块级作用域,就是可以在js文件里任意出使用{ }形成相对独立的作用域(一般用于if和for内部)。变量提升:先解析代码,获取所有声明的变量,然后代码自上而下依次运行将变量提升到自身所在作用域的头部,这将导致脚本还未执行,而变量却存在,只不过变量的值为undefined。因此注意:变量声明可以提升 但是赋值初始化不提升。计算机语言从右往左的解读模式让var a = b = 1; b 为未被定义,直接被认为是全局变量,而va原创 2020-09-15 16:50:15 · 201 阅读 · 0 评论 -
原型链以及类型变量相关
js里万物皆可对象。注意:arr.foo只是给arr增加了一个属性foo,arr.foo和arr.length地位是并列的:就是arr的一个属性,同时arr的数组方法跟这些属性是毫不相关的。结果是2。依次是数组对象、对象、正则对象。叛逆的null。虽然是基础类型但是typeof的结果是object。4. new对象和if(对象)这里会弹出hi。一旦使用new生成的,都是对象。if判断对象,只要不是null举例(来自知乎某大佬答案):function Person (na..原创 2020-09-15 16:50:01 · 309 阅读 · 0 评论 -
js对字典序列的处理
对于javascript来说,字典类(Dictionary)的基础是Array类,js中的Array既是一个数组,同时也是一个字典。所以除了直接遍历外,还能用Object.keys的对复杂类型进行遍历。对已经定义好的字典序列使用for遍历取全部值。注意这里必须是字典序列而不是array里面的字典元素! var dic = {c:4, a:2, d:3, b:1}; // 定义一个字典 console.log("输出最初的字典元素: "); for(var key in di原创 2020-07-06 12:25:18 · 2057 阅读 · 0 评论 -
JS笔试记录(一)【基本类型与类型转换/字符串与数字的加减/全局的对象/页面生命周期】
基本类型与类型转换六个原始类型(primitive type):String、Number、Boolean、Undefined、Null、Symbol(ES6新增);复杂数据类型Object 是元类型的扩展、有数组Array、Function。简单数据类型把数据名和值直接存储在栈当中。可以用typeof运算来检测。但是typeof null返回object。复杂数据类型在栈中存储数据名和...原创 2020-04-23 01:31:38 · 205 阅读 · 0 评论 -
JavaScript变量提升与函数提升
起因是一个这样基础的问题:function foo() { console.log('foo1');}foo(); // foo2function foo() { console.log('foo2');}foo(); // foo2到底为什么第一个的输出也是foo2呢,这就涉及到一个变量提升和函数提升的问题。这个讲的挺好的:https://ww...原创 2020-03-24 14:30:30 · 252 阅读 · 0 评论