学习笔记
文章平均质量分 70
ExMaterial
努力成为全栈工程师中。(2024年10月1日)
展开
-
深入剖析JavaScript(二)——异步编程
目前主流的JavaScript执行环境都是以单线程执行JavaScript的。JavaScript早期只是一门负责在浏览器端执行的脚本语言,主要用来操作DOM,如果其添加的同时又删除了DOM,浏览器就不知道该如何是好,所以其就被设计成为单线程模型。而随着JavaScript能做的事情越来越多,如果一直维持同步编程的话,就会导致浏览器卡在某个耗时操作无法进行下一步,造成浏览器假死的现象,影响用户体验。因此,异步编程应运而生。原创 2022-09-02 15:20:43 · 354 阅读 · 0 评论 -
深入剖析JavaScript(一)——函数式编程
函数式编程(Functional Programming, FP),FP 是编程范式之一,我们常听说的编程范式还有面向过程编程、面向对象编程。面向对象编程:面向对象有三大特性,通过封装、继承和多态来演示事物之间的联系,如果更宽泛来说,抽象也应该算进去,但是由于面向对象的本质就是抽象,其不算是三大特性也不为过。函数式编程:函数式编程的思想主要就是对运算过程进行抽象,它更像一个黑盒,你给入特定的输出,进过黑盒运算后再返回运算结果。你可以将其理解为数学中的y = f(x)。原创 2022-09-01 18:41:07 · 420 阅读 · 1 评论 -
构建webpack知识体系 | 青训营笔记
前端项目是由很多资源文件组合而成,为了保证代码的正确运行,要考虑文件之间的引用关系,必须严格按照依赖顺序书写代码,除此之外,还有很多其他问题,大大影响开发效率。为了解决这些问题,市面上出现了很多工具,如gulp、rollup、vite等,其中目前最具影响力、应用最为广泛的当属webpack。webpack本质上是一种前端资源编译、打包工具。......原创 2022-08-11 17:13:33 · 332 阅读 · 1 评论 -
你真的精通HTML吗?——那些“看不见”的HTML标签及其使用场景
提到HTML,前端工程师的第一反应肯定是这么简单的语言,有什么不会的?如果你还抱有上述看法,建议你接着看下去。原创 2022-07-28 19:50:26 · 472 阅读 · 0 评论 -
Vue3 compositionAPI重构Todolist应用
Vue3 compositionAPI重构Todolist应用原创 2022-07-27 21:35:57 · 203 阅读 · 0 评论 -
用Vue3实现的一个TodoLists案例
这是一个用Vue3实现的一个TodoList案例。下面这张图是最终的实现效果。下面是代码实现。原创 2022-07-22 05:00:00 · 839 阅读 · 0 评论 -
Promise的四个相关面试题
宏队列:dom事件回调、ajax事件回调、定时器回调微队列:promise回调、mutation回调如对上述名词有不理解之处,请自行上MDN官方文档查询为了方便起见,代码行由最终的输出指定,如1代表第二行代码,2代表第五行代码。解析:promise为微队列,setTimeOut为宏队列,均为异步。先执行同步调用的最后一行代码。再执行2、4,最后执行1。所以对应的执行顺序为:3、2、4、1分析:所以对应的执行顺序为:2、5、3、4、1分析:所以对应的执行顺序为:3、7、4、1、2、5分析:所以对原创 2022-06-18 12:00:00 · 163 阅读 · 0 评论 -
利用鼠标框选checkbox-JS实现
这是一篇关于我怎样花了四个小时并借鉴前人代码链接地址才完成的一个用鼠标框选checkbox的一篇文章。这是某厂在我投递简历后要我先完成并放在github上给它看的效果图。先来说下要完成这张所需要的功能:鼠标按下后,选中的内容中所有复选框(checkbox)都需为“checked”;鼠标点击其他位置后之前选中的内容都归原,也即初始化。需求讲完了,那就直接上代码吧。<!DOCTYPE html><html lang="en"><head> <原创 2022-05-17 23:08:53 · 902 阅读 · 3 评论 -
面试准备之手写Promise
本文是我在看完尚硅谷Promise教程后整理的手写Promsie,内容可能会稍许有点偏差,仅供参考。当然,都看到手写Promise了,所以肯定对Promise的基本使用是没问题了,下面就来看看如何手写一份Promise吧。一、搭建Promise骨架新建lib文件夹,添加Promise.js文件。首先采用ES5语法实现,后续会讲解ES6语法实现// 自定义Promise函数模块: IIFE(function (window) { // Promise构造函数 // executor原创 2022-04-30 16:04:41 · 2414 阅读 · 0 评论 -
JavaScript中不同类型值与Boolean类型的值的转换
不同类型与Boolean类型的值的转换是Boolean类型的重点,如下所述:String类型转换为Boolean类型空字符串""或者’'都会转换为false。任何非空字符串都会转换为true,包括只有空格的字符串" "。 ** Number类型转换为Boolean类型**0和NaN会转换为false。除了0和NaN以外,都会转换为true,包括表示无穷大和无穷小的Infinity和-Infinity。 Object类型转换为Boolean类型当object为n原创 2022-04-13 19:54:03 · 766 阅读 · 0 评论 -
前端er学习框架前必须要了解的Node.js基础知识
安装Node.js可以通过多种方式安装。个人推荐的是直接上官网:http://nodejs.cn/download/,选择对应自己电脑版本的安装包,一直点击就可安装了。npm 包管理器简介npm 是 Node.js 标准的软件包管理器。下载npm 可以管理项目依赖的下载。安装所有依赖如果项目具有 package.json 文件,则通过运行:npm install它会在 node_modules 文件夹(如果尚不存在则会创建)中安装项目所需的所有东西。安装单个软件包也可以通过运行以原创 2022-04-10 20:33:48 · 461 阅读 · 0 评论 -
四张图带你了解Vue组件的三大核心概念——属性、时间、插槽
Vue组件的三大核心概念为属性、时间、插槽.原创 2022-04-10 10:24:00 · 760 阅读 · 0 评论 -
一文带你入门Ajax(新手上路版)
前言到B站找了视频看了,发现大多讲的不是很清楚,所以我觉得自己看文档,并把我认为适合学习的东西总结出来,希望也能帮到你了解Ajax。因为我个人也是刚入门前端三个月,所以可能内容难免会有所差错,望各位读者不吝赐教。学习资源:w3c文档(本来想看MDN的,但是目前英语水平略差,就看中文的好了。)AJAX 简介AJAX 是开发者的梦想,因为您能够:不刷新页面更新网页在页面加载后从服务器请求数据在页面加载后从服务器接收数据在后台向服务器发送数据什么是 AJAX?AJAX = Asynchr原创 2022-04-09 12:16:41 · 314 阅读 · 0 评论 -
使用node.js完成一个石头剪刀布游戏
var playerAction = process.argv[process.argv.length - 1];console.log(playerAction);var random = Math.random() * 3;if (random < 1) { var computerAction = 'rock'} else if (random > 2) { var computerAction = 'scissor'} else { var comp原创 2022-04-08 22:08:50 · 2460 阅读 · 0 评论 -
“透视HTTP协议”之破冰篇个人总结
01 | 时势与英雄:HTTP的前世今生HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文;HTTP/0.9 是个简单的文本协议,只能获取文本资源;HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准;HTTP/1.1 是目前互联网上使用最广泛的协议,功能也非常完善;HTTP/2 基于 Google 的 SPDY 协议,注重性能改善,但还未普及;HTTP/3 基于 Google 的 QUIC 协议,是将来的发展方向。这篇主要介绍了HTTP的起源以及发展,想要有更深入的了解建原创 2022-04-08 13:41:40 · 249 阅读 · 0 评论 -
尚硅谷 vue_test 笔记
笔记脚手架文件结构├── node_modules ├── public│ ├── favicon.ico: 页签图标│ └── index.html: 主页面├── src│ ├── assets: 存放静态资源│ │ └── logo.png│ │── component: 存放组件│ │ └── HelloWorld.vue│ │── App.vue: 汇总所有组件│ │── main.js: 入口文件├── .gitignore: g转载 2022-04-02 23:47:36 · 176 阅读 · 0 评论 -
Hexo博客发布
发布文章方法一进入博客所在目录,右键打开 Git Bash Here,创建博文:hexo new "My New Post"然后 source 文件夹中会出现一个 My New Post.md 文件,就可以使用 Markdown 编辑器在该文件中撰写文章了。写完后运行下面代码将文章渲染并部署到 GitHub Pages 上完成发布。以后每次发布文章都是这两条命令。hexo g # 生成页面hexo d # 部署发布方法二也可以不使用命令自己创建 .md 文件,只需在文件开头手动原创 2022-03-28 20:40:35 · 393 阅读 · 0 评论 -
浏览器中的页面循环系统
15 | 消息队列和事件循环:页面是怎么“活”起来的?使用单线程处理安排好的任务任务按顺序在线程中依次被执行。在线程运行过程中处理新任务要想在线程运行过程中,能接收并执行新的任务,就需要采用事件循环机制。处理其他线程发送过来的任务消息队列是一种数据结构,可以存放要执行的任务。它符合队列“先进先出”的特点,也就是说要添加任务的话,添加到队列的尾部;要取出任务的话,从队列头部去取。16 | WebAPI:setTimeout是如何实现的?定时器最基础的使用方式function showNam原创 2022-03-26 18:44:17 · 1274 阅读 · 0 评论 -
浏览器中的JavaScript执行机制和V8工作原理
07 | 变量提升:JavaScript代码是按顺序执行的吗?先来一段代码showName();console.log(myname);var myname = 'Someone';function showName() { console.log('函数 showName 执行了');}第 1 行输出“函数 showName 被执行”,第 2 行输出“undefined”。从上面两段代码的执行结果来看,我们可以得出如下三个结论。在执行过程中,若使用了未声明的变量,那么 Jav原创 2022-03-25 15:15:49 · 616 阅读 · 0 评论 -
宏观视角下的浏览器
01丨Chrome架构:仅仅打开了1个页面,为什么有4个进程?进程和线程 多线程可以并行处理任务,但是线程是不能单独存在的,它是由进程来启动和管理的。那什么又是进程呢? 一个进程就是一个程序的运行实例。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。总结来说,进程和线程之间的关系有以下 4 个特点。进程中的任意一线程执行出错,都会导原创 2022-03-24 20:40:34 · 853 阅读 · 0 评论 -
day03~正则表达式
正则表达式检测是否存在.test() 方法let testStr = "freeCodeCamp";let testRegex = /Code/;testRegex.test(testStr);匹配时忽略大小写实例:/ignorecase/i这个字符串可以匹配字符串 ignorecase、igNoreCase 和 IgnoreCase。提取匹配项使用 .match() 方法来提取找到的实际匹配项。"Hello, World!".match(/Hello/);let ourStr原创 2022-03-11 20:07:30 · 78 阅读 · 0 评论 -
基础JavaScript
了解基础JavaScript原创 2022-02-28 20:55:08 · 677 阅读 · 1 评论