笔记
Milk595
努力做自己喜欢做的事
展开
-
web前端知识体系梳理
基础知识也许你听过 程序 = 算法 + 数据结构 这句话,那么这句话是针对哪种开发人员说的呢?是写 js 的、写 java 的还是写 C++ ?答案是针对所有的程序员,无论你是前端、客户端、server 端,都适用。那么这些针对所有程序员都适用的东西,就称之为基础知识。一般来说基础知识分为:算法数据结构面向对象思想设计模式这部分我觉得是前端程序员最容易忽略的,因为只有复杂的逻辑处理才能让这些知识有用武之地。从前端的最初时代到 jQuery 时代,受限于网速、浏览器、JS 引擎这些限制,J.转载 2020-07-12 14:19:10 · 416 阅读 · 0 评论 -
【错题记录】前端面试选择题【篇一】
前端面试刷题1. 实现翻书的效果可以使用css3里的什么方法rotateY解析:2. display:none 和 visibility:hidden的说法,正确的是1. display:none与visibility:hidden都可以用来隐藏某个元素2. display:none在隐藏元素的时候,将其占位空间也去掉;而visibility:hidden只是隐藏了内容而已,其占位空间仍然保留解析:一、两者的功能都是隐藏某个元素二、不同的是 :display属性设定为“none”的元原创 2021-01-04 13:13:51 · 280 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇十)
JavaScript专项练习(篇十)1. 下述代码实现结果是解析:答案 鼠标单击Button1后将Button1**移动**到Button2的后面clone 方法复制的button1属于一个新的元素 视觉上是button1经过点击后到了button2的后面,但是实质上新clone的button1和原来的button1并非属于同一个元素。移动的话其实不严谨2. 下面的输出结果:(function() { var a = b = 5; })(); console.log(b);原创 2020-12-20 01:37:24 · 242 阅读 · 2 评论 -
【阅文笔记】让你轻松了解何为 作用域闭包【你不知道的JavaScript(上)】
作用域闭包词法作用域就是定义在词法阶段的作用域。 换句话说, 词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的, 因此当词法分析器处理代码时会保持作用域不变(大部分情况下是这样的)词法作用域 有 查找JavaScript中闭包无处不在, 你只需要能够识别并拥抱它闭包是基于词法作用域书写代码时所产生的自然结果, 不需要为了利用它们而有意识地创建闭包。 闭包的创建和使用在你的代码中随处可见。 缺少的是根据自己的意愿来识别、 拥抱和影响闭包的思维环境一、实质问题闭包的定义,你需要掌原创 2020-12-19 19:11:18 · 143 阅读 · 1 评论 -
【错题记录】JavaScript专项练习(篇九)
JavaScript专项练习(篇九)1. 如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是a. typeof(arr)b. arr instanceof Arrayc. arr.toString==='[object Array]'d. Object.prototype.toString.call(arr) === '[object Array]'typeof(arr) 返回的是 Objectinstanceof 在跨 frame 对象构建的场景下会失效arr原创 2020-12-19 14:14:11 · 514 阅读 · 1 评论 -
【错题记录】JavaScript专项练习(篇八)
1. 下面哪个选项中的对象与Browser有关a. window,locationb. location,historyc. navigator,windowd. historylist,location解析:答案 b原创 2020-12-18 00:41:28 · 263 阅读 · 1 评论 -
【错题记录】JavaScript专项练习(篇七)
1. 以下代码执行后,result 的值是:var result = "75team2017".match(/\d+\w*/g);解析:答案 75team2017因为“+”和“*”都是贪婪匹配,它们尽可能多地匹配字符,所以“\d+"匹配”75“,”/w*“匹配”team2017“,而”/g"就没有使用的机会了"属于html中的特殊字符的转义,为双引号2.你想通过 XMLHttpRequest更新以下元素,即通过div显示状态,哪个是正确的做法(把XHR的状态返回在这个div原创 2020-12-17 22:42:44 · 748 阅读 · 0 评论 -
【阅文笔记】提升【你不知道的JavaScript(上)】
提升函数作用域和块作用域的行为是一样的, 可以总结为: 任何声明在某个作用域内的变量, 都将附属于这个作用域。但是作用域同其中的变量声明出现的位置有某种微妙的联系,这正是提升一、先有鸡还是先有蛋直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。 但实际上这并不完全正确, 有一种特殊情况会导致这个假设是错误的。考虑下面代码:????a = 2;var a;console.log( a );你认为 console.log(…) 声明会输出什么呢?很多开发者会认为是 u原创 2020-12-16 03:23:22 · 280 阅读 · 0 评论 -
【阅文笔记】块作用域【你不知道的JavaScript(上)】
块作用域函数作用域是最常见的作用域单元,但其他类型的作用域单元也是存在的。除 JavaScript 外的很多编程语言都支持块作用域,因此对于主要使用 JavaScript 的开发者来说, 块作用域这个概念会很陌生尽管你可能连一行带有块作用域风格的代码都没有写过, 但下面代码一定很熟悉:for (var i=0; i<10; i++) { console.log( i );}我们在 for 循环的头部直接定义了变量 i, 通常是因为只想在 for 循环内部的上下文中使用 i, 而忽略了原创 2020-12-16 02:30:47 · 185 阅读 · 0 评论 -
【阅文笔记】函数作用域【你不知道的JavaScript(上)】
函数作用域一、函数作用域我们已经知道, 在任意代码片段外部添加包装函数, 可以将内部的变量和函数定义“隐藏” 起来, 外部作用域无法访问包装函数内部的任何内容看下面代码:var a = 2;function foo() { // <-- 添加这一行 var a = 3; console.log( a ); // 3} // <-- 以及这一行foo(); // <-- 以及这一行console.log( a ); // 2它并不理想,首先,必须声明一个具名函数 fo原创 2020-12-16 00:43:29 · 134 阅读 · 0 评论 -
【阅文笔记】函数中的作用域、隐藏内部实现、规避冲突【你不知道的JavaScript(上)】
作用域包含了一系列的“气泡”, 每一个都可以作为容器, 其中包含了标识符(变量、 函数) 的定义。 这些气泡互相嵌套并且整齐地排列成蜂窝型, 排列的结构是在写代码时定义的究竟是什么生成了一个新的气泡?一、函数中的作用域对于上面的问题,最常见的答案:JavaScript 具有基于函数的作用域, 意味着每声明一个函数都会为其自身创建一个气泡,而其他结构都不会创建作用域气泡 事实上这并不完全正确考虑以下代码:function foo(a) { var b = 2; // dosomething原创 2020-12-16 00:17:37 · 178 阅读 · 0 评论 -
【阅文笔记】词法作用域【你不知道的JavaScript(上)】
词法作用域作用域共有两种工作模型。 第一种是大多数编程语言所采用的词法作用域。 另外一种叫作动态作用域(少有编程语言用)词法作用域就是定义在词法阶段的作用域。换句话说, 词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的, 因此当词法分析器处理代码时会保持作用域不变考虑以下代码:function foo(a) { var b = a * 2; function bar(c) { console.log(a, b, c) } bar(b * 3)}foo(2); /原创 2020-12-15 21:36:03 · 96 阅读 · 0 评论 -
【阅文笔记】作用域是什么【你不知道的JavaScript(上)】
作用域是什么1.1 编译原理在传统编译语言的流程中, 程序中的一段源代码在执行之前会经历三个步骤, 统称为“编译”一、分词/词法分析这个过程会将由字符组成的字符串分解成有意义的代码块, 这些代码块被称为词法单元。 例如, 考虑程序 var a = 2;。 这段程序通常会被分解成为下面这些词法单元: var、 a、 =、 2 、 ;二、解析/语法分析这个过程是将词法单元流(数组) 转换成一个由元素逐级嵌套所组成的代表了程序语法结构的树。 这个树被称为“抽象语法树”(AST)。var a = 2原创 2020-12-15 17:34:25 · 106 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇六)
1. 下列描述中,错误的是a. 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上b. 面向对象的三大特性包括:封装,继承,多态解析:答案 a引用对象引用的是实际的对象,对引用的修改就是对对象的修改2. 从字符串 const str = ‘qwbewrbbeqqbbbweebbbbqee’;中能得到结果 [“b”, “bb”, “bbb”, “bbbb”] 以下错误语句是a. str.match(/b+/g)b.原创 2020-12-15 02:24:37 · 1311 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇五)
1.以下程序执行后返回的结果是var p1 = { name:'小明', age:'12', action:function(where,doing){ console.log(this.age + '岁的'+this.name + '在' + where + doing); } }var p2 = { name:'小红', age:'15'}console.log(p1.action.call(p2,'操场上','运动'))解析:答案 15岁的小红在操场上运动原创 2020-12-14 21:29:18 · 1041 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇四)
1.下列正确定义函数的是a. function foo() {}b. Function foo() {}c. var foo = new Function() {}d. var foo = new function() {}解析:答案 aa:function foo() {} 是普通函数声明b:Function 应是小写c、d:使用了Function构造函数,正确写法:var foo = new Function();在JavaScript定义一个函数一般有如下三种方式:1.函数关键字原创 2020-12-14 18:28:31 · 1112 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇三)
1.下面代码执行结果是var datas=[10,20,30];datas.unshift(40,50); // 首部添加 [40,50,10,20,30]datas.pop(); // 尾部删除 [40,50,10,20]datas.push(60,70); // 尾部添加 [40,50,10,20,60,70]datas.shift(); // 首部删除 [50,10,20,60,70]console.log(datas.toString());解析:答案 50,10,20,60,原创 2020-12-12 20:50:02 · 766 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇二)
1.下列事件哪个不是由鼠标触发的事件a. clickb. contextmenuc. mouseoutd. keydown解析:答案 dclick 鼠标点击事件contextmenu 当浏览者按下原创 2020-12-12 18:21:55 · 1135 阅读 · 0 评论 -
【错题记录】JavaScript专项练习(篇一)
1.下面这段JS程序的执行结果是:var a = [1,2,3];var b = a.slice();b.push(4);console.log(a)解析:这里是输出a,答案是[1,2,3]slice()方法返回新数组,不会改变原数组。它的参数有两个,第一个参数start,缺省为0,第二个参数end,缺省为末尾2.以上代码,在浏览器中执行的结果是var A = { n:4399};var B = function() { this.n = 9999};var C = f原创 2020-12-11 19:54:44 · 399 阅读 · 1 评论 -
【开发那些事】记第一次独立开发PC端页面【React+ahooks】
记第一次独立开发PC端页面遇到的问题11.2日下午,与波涛哥对接客车效益项目,第一次知道项目有主项目和子项目之分,子项目(后端)依赖于主项目上, 通过扩展包的形式加载(具体如何实现还需要后续了解),先启动主项目,后启动子项目,子项目后端的修改需要重启主项目,在这之后,我开始安装项目的依赖,我用npm install、cnpm install等形式安装主项目总会出错,后来问了涛哥和林哥都没有解决,时间就到了11.3日下午,直到超哥说用yarn install,问题才解决了,这时候我才意识到时间花费太多了,问原创 2020-12-03 20:21:37 · 695 阅读 · 0 评论