avatar
文章
93
标签
59
分类
7
首页
主页
文章
  • 分类
  • 标签
  • 归档
友链
  • 本站友链
关于
Logo个人博客
首页
主页
文章
  • 分类
  • 标签
  • 归档
友链
  • 本站友链
关于

个人博客

前端路由-原生SPA
发表于2021-07-14|JavaScript
22:前端路由-原生SPA一、什么是路由 路由:就是根据不同的地址,响应不同的内容。一般情况下,在项目开始之前,都会对路由地址进行规划、设定,然后在项目开发过程中,针对预先规划的路由地址进行处理和响应。 就是地址和页面一一对应关系的集合 就是一个 url 地址,对应哪个组件(页面) 前端路由的本质 根据地址栏变化(不重新向服务器发送请求),局部更新不同的页面内容,完成前端业务场景切换 前端路由的思路 URL 地址栏中的 Hash 值发生变化 前端 JS 监听 Hash 地址的变化 window.onhashchange = function(){ } 前端 JS 把当前 Hash 地址对应的组件渲染到浏览器中 二、什么是SPA SPA:单页面应用,Single Page Application 只有Web 页面的应用,是加载单个 HTML 页面,并在用户与应用程序交互时,动态更新该页面的 Web...
对象高级
发表于2021-07-14|JavaScript
21:对象高级一、数据劫持 数据劫持:能够拦截到数据被使用或被修改的时机,在这个时机除了可以获取数据的值或对数据的值进行修改之外,还可以执行其他功能。 当对数据进行修改时,除了要修改数据自身之外,还希望对所有使用了该数据的位置进行同步修改。 对象的访问器属性 访问器属性由 “getter” 和 “setter” 方法表示。在对象字面量中,它们用 get 和 set 表示: 1234567891011let obj = { _msg: "hello world", get msg() { // 当读取 obj.msg 时,getter 起作用 return this._msg; }, set msg(value) { // 当执行 obj.msg = value 操作时,setter 起作用 this._msg = value }}; 当读取 obj.msg 时,getter 起作用,当 obj.msg 被赋值时,setter...
设计模式
发表于2021-07-14|JavaScript
20:设计模式一、设计模式 什么是设计模式 设计模式是一种固定的解决问题的方式 是一套经过代码设计经验总结优化之后的固定的方式 是软件工程的基础,是代码的基石脉络 是一套经过反复使用、多人知晓的、经过分类的、代码设计经验的总结 为了代码的可重用性、让代码更容易被他人理解、保证代码的可靠性。设计模式使代码的编写真正的工程化;设计模式是软件工程的基石脉络,如同大厦的结构 设计模式的分类(W3C平台) 构造器模式,模块化模式,暴露模块模式,单例模式,中介者模式,原型模式,命令模式,外观模式,工厂模式,Mixin模式,装饰模式,亨元(Flyweight)模式,MVC模式,MVP模式,MVVM模式,组合模式,适配器模式,外观模式,观察者模式,迭代器模式,惰性初始模式,代理模式,建造者模式,… 二、单例模式 单个实例,多次操作只操作(产生)一个实例 应用: 一个项目中所有的信息提示框只需要有一个即可 改内容,改样式 贪吃蛇中的食物对象 优势:节省性能,提升执行速度 语法: const obj1 = {}; const obj2 = new...
函数高级
发表于2021-07-13|JavaScript
19:继承一、继承 面向对象三大特点:封装,继承,多态 封装:打包 继承:如果一个对象A不具有某个功能a,通过某种方式使用了对象B的a功能 的过程 多态:对象或功能的多种形态,在使用某个对象时,不关心从哪来,在封装某个对象时,不关心将要在哪被使用 继承 构造函数执行之后得到的实例,继承了原型身上的方法(实例继承了类的原型) 类与类之间的继承 继承方式 构造函数继承(改变this指向继承) call,apply,bind 简单方便易操作 非常易于做多继承 只能继承构造函数内的属性或方法,不能继承原型身上的属性或方法 原型对象继承 其实就是在拷贝原型对象,同时注意深浅拷贝 只能继承原型对象上的属性或方法,不能继承构造函数内的属性或方法 可以实现多继承 原型链继承 既能继承构造函数内的属性或方法,又能继承原型上的属性或方法 但是不方便处理参数 不适合多继承 混合(组合)继承 构造函数+原型对象 构造函数+原型链 集合了各种方式的优点 ES6新增的class的继承...
函数高级
发表于2021-07-13|JavaScript
18:函数高级一、闭包函数1. 函数定义阶段 在堆内存中开辟一段存储空间 把函数体内的代码存储在这一段空间内 把堆空间地址赋值给栈内存中的变量 2. 函数调用阶段 按照变量名内的空间地址找到堆内存中对应的存储空间 在调用栈中开辟一段新的作用域执行空间 在执行空间中进行形参赋值 在执行空间中进行预解析(声明提升,检查报错等) 在执行空间中完整执行一遍函数内的代码 将当前作用域执行空间,销毁 3. 不会销毁的函数执行空间 当函数内返回了一个复杂数据类型 并且函数外部有变量接收了这个复杂数据类型 函数执行完毕后的执行空间不会被销毁 12345678910function fn() { const obj = { name: 'admin' } return obj}const res = fn();console.log(res); // { name: 'admin' }// 如果需要释放这个空间,给 res 重定向, 即可res = null; 4....
面向对象编程
发表于2021-07-13|JavaScript
17:面向对象编程一、什么是面向对象 面向对象编程(Object-Oriented Programming, OOP)是一种软件开发方法,它将数据和方法封装在一起,形成一个对象,通过对象之间的交互实现程序的功能。 每个对象都有自己的状态和行为,对象之间通过调用彼此的方法来实现交互。 这种编程范式强调代码的可重用性、可维护性和灵活性,使得程序开发更加高效和可靠。 同时,面向对象编程也是一种更加自然的编程方式,因为它更接近我们日常生活中的实体和行为。 二、面向过程和面向对象 面向过程: 关注过程的编程模式 在面向过程编程中,数据和方法是分离的,程序主要由一系列函数组成,每个函数都是一个独立的模块,它们之间通过参数和返回值进行交互。 程序的执行顺序是由函数的调用顺序决定的。...
DOM动画
发表于2021-07-13|JavaScript
16:DOM动画缓冲运动的封装123456789101112131415161718192021222324function move(ele, obj, cb){ clearInterval(ele.t) ele.t = setInterval(()=>{ let state = true; for(let key in obj){ let now = parseInt(getStyle(ele, key)); let speed = (obj[key] - now) / 10; speed = speed < 0 ? Math.floor(speed) : Math.ceil(speed); ele.style[key] = now + speed + "px"; if(now !== obj[key]) state = false; } if(state){ clearInterval(ele.t); ...
ES6
发表于2021-07-13|JavaScript
14:ES6一、声明关键字 ES6新增的声明关键字: let,const:声明变量 class:声明类 import,export:模块化开发 let和const的特点 不存在提升 不允许重复声明 全局不会绑定到window 块级作用域 暂时性死区 const声明的变量不允许修改地址 使用规范:const -> let ->...
正则
发表于2021-07-13|JavaScript
15:正则一、正则的概念和意义 正则:正确的规则,用来约束字符串的规则,正则的数据类型是对象,正则对象,正则表达式 正则的意义: 节省代码量,减少代码冗余 并没有节省性能 如:从一串杂乱的字符串中取出所有的数字,放在数组中 1234567891011121314var str = “asd256asd834as5da38sd512zcacas";var linshi='';var arr=[];for(var i = 0; i < str.length; i++){ if(str[i]>=0 && str[i]<=9){ linshi += str[i]; }else{ if(linshi != ''){ arr.push(linshi) linshi = ''; } }}console.log(arr); 二、正则的创建 字面量:var...
this
发表于2021-07-13|JavaScript
13:this一、this是哪里 this在英文中的含义是【这】。那么【这】是【哪】? this关键字一般存在于函数中,表示一个指针,指向了当前函数的执行对象。也叫当前函数的**【执行】上下文。** 注意**【执行】**这两个字,如果函数没有执行,那么this是没有内容的,只有当函数执行时,this才被绑定了内容。 总结一句话:谁【执行】了**this**所在的函数,**this**就是谁。 二、常见的this指向2.1 默认绑定 当一个没有明确隶属对象的函数,被直接调用时。该函数内部的this指向window。 123456function fn(){ console.log(this.a);}var a = 10;fn(); //10// 这里的this指全局对象window 当然要注意,在ES5的严格模式下,没有明确隶属对象的函数在默认执行时,其内部的this指向undefined。 2.2...
1…567…10
avatar
admin
文章
93
标签
59
分类
7
公告
一个前端程序员,爱折腾,爱技术分享
最新文章
利用cloudflare搭建twikoo评论系统2024-12-15
利用github Action编译安卓内核驱动2024-11-10
解决safari浏览器使用window.open失效的问题2023-07-10
使用 IPv6 连接到 Cloudflare Tunnel 的边缘节点2023-07-05
宝塔7.7原版+开心脚本+优化脚本2023-06-20
分类
  • JavaScript35
  • Linux19
  • Node5
  • windows11
  • 其他1
  • 前端17
  • 安卓1
标签
GKI Android Aria2 命令行工具 系统维护 DD脚本 docker 自动打卡 游戏开发 测速 Linux 临时邮箱 游戏外挂 故障处理 GitHub Actions UE4 锐速 教程 BBR 宝塔面板 服务器配置 内存分析 Mac 系统管理 远程桌面 Ubuntu 系统配置 青龙面板 内核编译 cloudflare 服务器 浏览器兼容性 FAS Python3安装 数据恢复 windows 邮箱 twikoo 防火墙 iptables
归档
  • 十二月 2024 1
  • 十一月 2024 1
  • 七月 2023 2
  • 六月 2023 2
  • 五月 2023 1
  • 四月 2023 1
  • 二月 2023 1
  • 六月 2022 1
网站信息
文章数目 :
93
最后更新时间 :
©2018 - 2025 By admin