js
zhhvera
这个作者很懒,什么都没留下…
展开
-
【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 · 492 阅读 · 0 评论 -
【vue】vue常见特性——自定义指令
自定义指令为什么需要自定义指令呢?官网有内置指令的相关用法,可以进行查阅但是内置质量数量有限,有时候不满足我们的需求,所以需要自定义指令如何定义指令?//自定义focus函数,刷新页面之后光标自动移到绑定的位置 Vue.directive("focus", { inserted: function (el) { el.focus(); } })如何使用指令? <input v原创 2020-06-18 22:30:25 · 176 阅读 · 0 评论 -
【vue】vue常用特性——表单
表单操作表单是进行数据交互的常用手段常见表单操作input:单行文本select:选择,如果需要多选的话,需要在 slect 标签中选择multple=“true”,表示可以多选,然后对应vue中数据类型为数组radio:单选操作checkbox:多选textarea:多行文本,与text一样的操作,不可以在标签中间输入值**操作为:**使用v-model实现数据绑定,多选操作则在vue中data选择数组,不是单个的值表单域修饰符number:转换为数值trim:去掉开始和结尾的空格原创 2020-06-18 21:55:03 · 289 阅读 · 0 评论 -
【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 · 583 阅读 · 0 评论 -
【JS的有趣操作】或运算寻找第一个真值
||运算可以用来寻找第一个真的值在js中或运算符 || 做了如下的事情:从左到右依次计算操作数。处理每一个操作数时,都将其转化为布尔值。如果结果是 true,就停止计算,返回这个操作数的初始值。如果所有的操作数都被计算过(也就是,转换结果都是 false),则返回最后一个操作数**大概意思就是:**从左往右开始依次找,如果找到真的值,那就停止,返回真的值,如果没有真的,就返回最后一个值【并且,返回的值不是做完布尔运算之后的值,而是操作数的初始形式】let a="";let b="我是拯救世界原创 2020-06-17 10:59:33 · 201 阅读 · 0 评论 -
深拷贝和浅拷贝
值的类型基本类型和对象基本类型有六种: 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 · 110 阅读 · 0 评论 -
【前端性能优化】避免DOM的回流
回流元素位置发生变化,需要重新排布和渲染避免DOM的回流1. 放弃传统的操作dom,基于vue/react数据影响视图模式mvvp/mvc/虚拟dom/dom diff…[尽可能的避免的重绘和回流]2. 分离读写模式浏览器都有批量渲染机制:如果有连续修改样式的内容,浏览器会有渲染队列机制,先统一加载到队列之中,然后进行统一的渲染;**分离读写:**将操作样式和读取样式分开来写,利用浏览器的队列渲染机制【图中:console.log()放在中间问题很大】4. 样式集中改变box.style原创 2020-06-15 22:05:18 · 751 阅读 · 0 评论 -
浏览器渲染原理
用户在浏览器地址栏中输入网址,到页面加载出来,中间发生了哪些事情?基本概念:**进程:**比如打开n个程序,则是n个进程**线程:**一个程序中进行多个操作,则是多个线程**栈内存:**提供环境,用来执行代码堆内存:1.HTTP的请求阶段用户在浏览器输入网址后,浏览器会帮助我们向服务器发送请求;请求阶段需要注意的:DNS解析、DNS缓存,TCP协议的三次握手和四次握手、http和https的区别(http2)2.响应阶段:响应阶段需要注意的点:HTTP状态码304缓存原创 2020-06-15 20:44:47 · 134 阅读 · 0 评论 -
变量的解构赋值(举例)
各种情况的解构+默认值情况数组的解构赋值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 · 207 阅读 · 0 评论 -
数据结构和算法(对生活的抽象)
数据结构和算法什么是数据结构?计算机中,存储和组织数据的方式数据的组织方法对效率影响很大数据结构类型:队列树堆数组栈链表图散列表什么是算法(Algorithm)?不同的算法,执行效率不一样一个有限指令集,每条指令的描述不依赖于语言数据结构的实现离不开算法(解决一个问题的方法步骤就是这个问题的算法)具体数据结构介绍数组熟悉数组ApI的调用 数组是一种线性结构,并且可以在数组的任意位置 插入和删除数据是一段一段的内存,扩容、插入和删除元素的操作耗时 数组通过下标来去原创 2020-06-13 21:17:20 · 306 阅读 · 0 评论 -
变量提升与函数提升
面试题目:**考察点:**变量提升&作用域console.log(b)//undefinedvar b=3;变量提升通过var 定义的变量,在定义前就可以访问值:undefined函数提升通过function声明的函数,在之前就可以直接调用值:函数定义(对象)变量提升和函数提升的原因**注意:**用var 声明变量然后赋值的函数不能直接调用var f=function(){}function f(){}[可以直接调用]...原创 2020-06-11 17:29:42 · 81 阅读 · 0 评论 -
原型与原型链
原型(prototype)List item**原型对象:**每个函数都有一个prototype对象,默认指向一个object空对象,即称为原型对象**constructor:**原型对象中有一个constructor,指向函数本身(函数有prototype,prototype有constructor,指向函数)给原型对象添加属性,实例可以访问List item显式原型和隐式原型**显式原型:**每个函数都有一个prototype对象【创建函数的时候创建】隐式原型:每个实例对原创 2020-06-11 17:09:43 · 129 阅读 · 0 评论