自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 【前端复习笔记】每日10题

JS部分介绍 js 的基本数据类型JavaScript 有几种类型的值?你能画一下他们的内存图吗什么是堆?什么是栈?它们之间有什么区别和联系?内部属性 [[Class]] 是什么?class介绍 js 有哪些内置对象?标准内置对象和全局对象,分别是什么,有什么不一样?typeof的安全防范机制undefined 与 undeclared 的区别?null 和 undefined 的区别?如何获取安全的 undefined 值?JavaScript 原型,原型链? 有什么特点?HTM

2020-06-24 21:27:01 181

原创 前端工程化——模块化规范

模块化的相关规范为什么要模块化:传统开发模式的主要问题:命名冲突问题:多个js文件之间如果存在重名的变量就会出现变量冲突问题;文件依赖问题:js文件之间不能出现相互引用模块化:把单独的一个功能封装到一个模块文件中。模块之间相关隔离,但是可以通过特定的接口公开内容部成员,也可以以来别的模块。模块化开发的好处:方便代码管理,提升开发效率,方便后期维护(一个字 厉害!)模块化规范如下:服务器端:commonJS1.模块分为 单文件模块 与 包2.模块成员导出:module.exports和e

2020-06-23 22:18:33 227

原创 【Ajax】Ajax基础知识

什么是AjaxAjax的全称是 Asynchronous JavaScript and XML, 即异步的 JavaScript and XML(名称就是简写咯,没发现吧哈哈哈)Ajax的作用Ajax能够与服务器交换少量数据,从而异步地更新部分网页异步:指的是当Ajax执行交换数据的操作时,其他的操作依然可以执行同步:在ajax请求结束之前,都不可以执行其他的操作**局部更新:**在使用过程是,js取出的数据在页面中,不会影响改变的其他部分常见应用:百度搜索的时候,输入文字,搜索栏下面会显示出

2020-06-20 21:50:36 133

原创 【vue】vue组件化开发

组件化开发思想标准分治重用组合组件化需要解决的问题:我们希望尽可能多的重用代码自定义组件的方式不太容易多次使用组件可能导致冲突组件化规范:Web Components(通过创建封装好功能的定制元素解决上述问题)全局组件注册在使用组件之前,我们需要注册组件注册组件的语法为:Vue.component(name//组件名称,{data:,//组件数据template:})//template组件模板内容//实例 Vue.component("button-

2020-06-19 19:53:32 176

原创 【vue】vue常规操作——过滤器

过滤器过滤器可以用来处理数据(格式化数据)自定义过滤器指令既可以定义局部指令也可以定义全局指令过滤器的使用:既可以在插值表达式中使用,也可以使用到属性绑定中如下: <div id="app"> <label>用户名</label> <div>{{uname| upper}}</div> <input type="text" v-model.lazy="uname" /&gt

2020-06-19 15:22:18 245

原创 【vue】vue常用特性——计算属性

计算属性1.为何需要计算属性表达式的计算逻辑可能会比较复杂,使用计算属性可以是模板内容更加简洁例如,想要实现一个字符串的反转功能<div>{{msg}}</div><script>var vm= new Vue({el:"#app",data:{},//data中需要添加msg键值对 computed:{reverseString:function(){return this.msg.split(“”).reverse().join("")//需要在

2020-06-18 23:23:21 469

原创 【vue】vue常见特性——自定义指令

自定义指令为什么需要自定义指令呢?官网有内置指令的相关用法,可以进行查阅但是内置质量数量有限,有时候不满足我们的需求,所以需要自定义指令如何定义指令?//自定义focus函数,刷新页面之后光标自动移到绑定的位置 Vue.directive("focus", { inserted: function (el) { el.focus(); } })如何使用指令? <input v

2020-06-18 22:30:25 161

原创 【vue】vue常用特性——表单

表单操作表单是进行数据交互的常用手段常见表单操作input:单行文本select:选择,如果需要多选的话,需要在 slect 标签中选择multple=“true”,表示可以多选,然后对应vue中数据类型为数组radio:单选操作checkbox:多选textarea:多行文本,与text一样的操作,不可以在标签中间输入值**操作为:**使用v-model实现数据绑定,多选操作则在vue中data选择数组,不是单个的值表单域修饰符number:转换为数值trim:去掉开始和结尾的空格

2020-06-18 21:55:03 270

原创 【JS函数进阶】递归和堆栈

递归首先什么是递归?函数在解决某些问题的时候,需要调用其他的函数或者是其本身,那么对于调用其本身的情况,就可以叫做递归。实现简单函数:x的n次方第一种使用for 循环,也是初学者容易想到的方法;那么用递归怎么实现呢?function pow(x,n){if (n==1){return x}else{return x*pow(x,n-1)}alert(pow(2,3));以上程序可以说明,pow函数不断的调用其本身,那么到n==1的时候,就会停止,也就达到了平方的目的//简写如下f

2020-06-18 20:43:36 557

原创 【JS的有趣操作】或运算寻找第一个真值

||运算可以用来寻找第一个真的值在js中或运算符 || 做了如下的事情:从左到右依次计算操作数。处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数**大概意思就是:**从左往右开始依次找,如果找到真的值,那就停止,返回真的值,如果没有真的,就返回最后一个值【并且,返回的值不是做完布尔运算之后的值,而是操作数的初始形式】let a="";let b="我是拯救世界

2020-06-17 10:59:33 187

原创 深拷贝和浅拷贝

值的类型基本类型和对象基本类型有六种: null,undefined,boolean,number,string,symbol**引用类型:**数组和对象let a = { name: 'FE' }let b = ab.name = 'EF'console.log(a.name) // EF

2020-06-16 09:30:10 97

原创 【前端性能优化】避免DOM的回流

回流元素位置发生变化,需要重新排布和渲染避免DOM的回流1. 放弃传统的操作dom,基于vue/react数据影响视图模式mvvp/mvc/虚拟dom/dom diff…[尽可能的避免的重绘和回流]2. 分离读写模式浏览器都有批量渲染机制:如果有连续修改样式的内容,浏览器会有渲染队列机制,先统一加载到队列之中,然后进行统一的渲染;**分离读写:**将操作样式和读取样式分开来写,利用浏览器的队列渲染机制【图中:console.log()放在中间问题很大】4. 样式集中改变box.style

2020-06-15 22:05:18 728

原创 浏览器渲染原理

用户在浏览器地址栏中输入网址,到页面加载出来,中间发生了哪些事情?基本概念:**进程:**比如打开n个程序,则是n个进程**线程:**一个程序中进行多个操作,则是多个线程**栈内存:**提供环境,用来执行代码堆内存:1.HTTP的请求阶段用户在浏览器输入网址后,浏览器会帮助我们向服务器发送请求;请求阶段需要注意的:DNS解析、DNS缓存,TCP协议的三次握手和四次握手、http和https的区别(http2)2.响应阶段:响应阶段需要注意的点:HTTP状态码304缓存

2020-06-15 20:44:47 120

原创 变量的解构赋值(举例)

各种情况的解构+默认值情况数组的解构赋值let [a,b,c]=[3,4,5]//a=3 b=4 c=5(嵌套模式也适用,只要可以对应)let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["foo", "bar", "baz"];third // "baz"let [x, , y] = [1, 2, 3];x // 1y // 3let [head, .

2020-06-13 23:44:38 185

原创 数据结构和算法(对生活的抽象)

数据结构和算法什么是数据结构?计算机中,存储和组织数据的方式数据的组织方法对效率影响很大数据结构类型:队列树堆数组栈链表图散列表什么是算法(Algorithm)?不同的算法,执行效率不一样一个有限指令集,每条指令的描述不依赖于语言数据结构的实现离不开算法(解决一个问题的方法步骤就是这个问题的算法)具体数据结构介绍数组熟悉数组ApI的调用 数组是一种线性结构,并且可以在数组的任意位置 插入和删除数据是一段一段的内存,扩容、插入和删除元素的操作耗时 数组通过下标来去

2020-06-13 21:17:20 286

原创 vue的常见特性

Vue的常见特性- 表单操作**表单的作用:**表单是用来做用户交互的重要手段表单常见类型:input 单行文本textarea 多行文本select 下拉多选radio 单选框checkbox多选框通过vue对表单数据进行操作v-model:双向绑定**注意:**提交表单的时候是用js进行表单提交,而不是默认的表单提交表单域修饰符:number:转换为数值trim:去掉开始和结尾的空格中间的去不掉lazy:将input时间切换为change事件(input对象在失去焦点的时候

2020-06-12 23:36:05 159

原创 Vue基础语法

vue渐进式JavaScript框架参考官网和API文档库+框架(可以灵活使用)高效vue的基本使用基本流程1.提供标签用户填充数据2.引入vue.js文件3.使用vue的语法结构做功能4.把vue提供的数据填充到标签里面实例参数分析:**el:**元素的挂载位置(值可以是css选择器或者DOM元素)**data:**模型数据(值是一个对象,可以存放很多个键值对)**methods:**vue中用来定义方法(函数)调用方法中的函数,需要用this进行访问,在这里this 就是指

2020-06-12 20:17:15 412

原创 变量提升与函数提升

面试题目:**考察点:**变量提升&作用域console.log(b)//undefinedvar b=3;变量提升通过var 定义的变量,在定义前就可以访问值:undefined函数提升通过function声明的函数,在之前就可以直接调用值:函数定义(对象)变量提升和函数提升的原因**注意:**用var 声明变量然后赋值的函数不能直接调用var f=function(){}function f(){}[可以直接调用]...

2020-06-11 17:29:42 66

原创 原型与原型链

原型(prototype)List item**原型对象:**每个函数都有一个prototype对象,默认指向一个object空对象,即称为原型对象**constructor:**原型对象中有一个constructor,指向函数本身(函数有prototype,prototype有constructor,指向函数)给原型对象添加属性,实例可以访问List item显式原型和隐式原型**显式原型:**每个函数都有一个prototype对象【创建函数的时候创建】隐式原型:每个实例对

2020-06-11 17:09:43 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除