一、深入V8引擎原理 1.JavaScript代码的执行 JavaScript代码下载好之后,是如何一步步被执行的呢? 我们知道,浏览器内核是由两部分组成的,以webkit为例: WebCore:负责HTML解析、布局、渲染等等相关的工作; JavaScriptCore:解析、执行JavaScript代码; 另外一个强大的JavaScript引擎就是V8引擎。 2.V8引擎的执行原理 我们来
一、异步代码的困境 1.异步任务的处理 在ES6出来之后,有很多关于Promise的讲解、文章,也有很多经典的书籍讲解Promise 虽然等你学会Promise之后,会觉得Promise不过如此; 但是在初次接触的时候都会觉得这个东西不好理解; 那么这里我从一个实际的例子来作为切入点: 我们调用一个函数,这个函数中发送网络请求(我们可以用定时器来模拟); 如果发送网络请求成功了,那么告知调用
一、前端数据请求方式 1.前后端分离的优势 早期的网页都是通过后端渲染来完成的:服务器端渲染(server side render): 客户端发出请求 -> 服务端接收请求并返回相应HTML文档 -> 页面刷新,客户端加载新的HTML文档; 服务器端渲染的缺点: 当用户点击页面中的某个按钮向服务器发送请求时,页面本质上只是一些数据发生了变化,而此时服务器却要将重绘的整个页面再返回
一、迭代器与可迭代对象 1.什么是迭代器 迭代器(iterator),使用户在容器对象(container,例如链表或数组)上遍访的对象,使用该接口无需关心对象的内部实现细节。 其行为像数据库中的光标,迭代器最早出现在1974年设计的CLU编程语言中; 在各种编程语言的实现中,迭代器的实现方式各不相同,但是基本都有迭代器,比如Java、Python等; 从迭代器的定义我们可以看出来,迭代器是帮
一、首次使用的必要设置 1.Eclipse 的安装 将 Eclipse 解压或安装到没有中文且没有空格的路径下。 d:\develop\eclipse 2.设置 workspace 首次启动,选择指定的工作空间(workspace),用于存放 java 代码。 注:中间的蓝框,不建议打钩.如果打钩,每次 Eclipse 会自动进入上面选中的 workspace 中.不利于 Eclipse 开
一、computed函数使用 1.computed 在前面我们讲解过计算属性computed:当我们的某些属性是依赖其他状态时,我们可以使用计算属性来处理 在前面的Options API中,我们是使用computed选项来完成的; 在Composition API中,我们可以在 setup 函数中使用 computed 方法来编写一个计算属性; 如何使用computed呢? 方式一:
一、认识CompositionAPl 1.Options API的弊端 在Vue2中,我们编写组件的方式是Options API: Options API的一大特点就是在对应的属性中编写对应的功能模块; 比如data定义数据、methods中定义方法、computed中定义计算属性、watch中监听属性改变,也包括生命周期钩子; 但是这种代码有一个很大的弊端: 当我们实现某一个功能时,这个功
一、认识插槽Slot作用 1.认识插槽Slot 在开发中,我们会经常封装一个个可复用的组件: 前面我们会通过props传递给组件一些数据,让组件来进行展示; 但是为了让这个组件具备更强的通用性,我们不能将组件中的内容限制为固定的div、span等等这些元素; 比如某种情况下我们使用组件,希望组件显示的是一个按钮,某种情况下我们使用组件希望显示的是一张图片; 我们应该让使用者可以决定某一块区域到底
一、Vue组件的嵌套关系 1.认识组件的嵌套 前面我们是将所有的逻辑放到一个App.vue中: 在之前的案例中,我们只是创建了一个组件App; 如果我们一个应用程序将所有的逻辑都放在一个组件中,那么这个组件就会变成非常的臃肿和难以维护; 所以组件化的核心思想应该是对组件进行拆分,拆分成一个个小的组件; 再将这些组件组合嵌套在一起,最终形成我们的应用程序; 我们来分析一下下面代码的嵌套逻辑,假如
一、防抖与节流 1.认识防抖与节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动中 而JavaScript是事件驱动的,大量的操作会触发事件,加入到事件队列中处理。 而对于某些频繁的事件处理会造成性能的损耗,我们就可以通过防抖和节流来限制事件频繁的发生; 防抖和节流函数目前已经是前端实际开发中两个非常重要的函数,也是面试经常被问到的面试题。 但
一、前端路由的发展历程 1.认识前端路由 路由其实是网络工程中的一个术语: 在架构一个网络时,非常重要的两个设备就是路由器和交换机。 当然,目前在我们生活中路由器也是越来越被大家所熟知,因为我们生活中都会用到路由器: 事实上,路由器主要维护的是一个映射表; 映射表会决定数据的流向; 路由的概念在软件工程中出现,最早是在后端路由中实现的,原因是web的发展主要经历了这样一些阶段: 后端路由阶段
一、认识Axios库 为什么选择axios? 功能特点: 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 http请求 支持 Promise API 拦截请求和响应 转换请求和响应数据 补充: axios名称的由来? 个人理解没有具体的翻译. axios: ajax i/o system 二、axios发送请求 1.axios请求方式 支持多种请求方式
一、认识应用状态管理 1.什么是状态管理 在开发中,我们会的应用程序需要处理各种各样的数据,这些数据需要保存在我们应用程序中的某一个位置,对于这些数据的管理我们就称之为是 状态管理。 在前面我们是如何管理自己的状态呢? 在Vue开发中,我们使用组件化的开发方式; 而在组件中我们定义data或者在setup中返回使用的数据,这些数据我们称之为state; 在模块template中我们可以使用这些数
一、Pinia和Vuex的对比 1.什么是Pinia呢? Pinia(发音为/piːnjʌ/,如英语中的“peenya”)是最接近piña(西班牙语中的菠萝)的词; Pinia开始于大概2019年,最初是作为一个实验为Vue重新设计状态管理,让它用起来像组合式API(Composition API)。 从那时到现在,最初的设计原则依然是相同的,并且目前同时兼容Vue2、Vue3,也并不要求
异常概述与异常体系结构 在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常” 。(开发过程中的语法错误和逻辑错误不是异常) Java程序在执行过程中所发生的异常事件可分为两类
基本概念:程序、进程、线程 程序(program),是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process),是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的
Git 教程 前言 认识版本控制 版本控制的英文是Version control; 是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程 版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步; 简单来说,版本控制在软件开发中,可以帮助程序员进行代码的追踪、维护、控制等等一系列的操作 版本控制的功能 ◼ 对于我们日常开发,我们常常面临如下
一、Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。 数组在内存存储方面的特点: 数组初始化以后,长度就确定了。 数组声明的类型,就决定了进行元素初始化时的类型 数组在存储数据方面的弊端: 数组
一、Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。 ③Spring是一个IOC(DI)和AOP容器框架。 ④Spring的优良特性 [1]非侵入式:基于Spring开发的应用中的对
包装类(Wrapper)的使用 针对八种基本数据类型定义相应的引用类型—包装类(封装类) 有了类的特点,就可以调用类中的方法,Java才是真正的面向对象 装箱 基本数据类型包装成包装类的实例称为装箱 方法 方式一、通过包装类的构造器实现 int i = 500; Integer t = new Integer(i); 方式二、通过字符串参数构造包装类对象 Float f = new Fl
一、枚举类 主要内容: 如何自定义枚举类 如何使用关键字enum定义枚举类 Enum类的主要方法 实现接口的枚举类 1. 入门 类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、......、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay
一、为什么要有泛型 1.泛型的设计背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以==在<u>JDK1.5</u>之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决==。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此<u>把元素的类型设计成一个参数,
一、File类的使用 java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关 File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。 如果需要访问文件内容本身,则需要使用输入/输出流。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。 File对象可以作
一、网络编程概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程 序的支持,程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库,可以实现无痛的网络连接,联网的底层 细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并 且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一 的网络编程环境 1.网络基础 计算机网络: 把分布在不同地理区域的
一、Java反射机制概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可 以通过这个对象看到类的结构。==这个对象就像一面镜子,透过这
1 事务概述在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。事务就是一组由于逻辑上紧密关联而合并成一个整体(工作单元)的多个数据库操作,这些操作要么都执行,要么都不执行。事务的四个关键属性(ACID)原子性(atomicity):“原子”的本意是“不可再分”,事务的原子性表现为一个事务中涉及到的多个操作在
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号