12 2020 档案
摘要:现在的前端技术的发展日新月异,各种新技术层出不穷。前后端分离的开发模式也让前端开发者的地位日益提升,待遇日渐水涨船高,自然有很多小伙伴慕名入了前端开发的坑,希望能在前端领域大展宏图。但一个残酷的现实是 市场上从不缺少初级前端开发,稀缺的的永远是高级前端开发 。物以稀为贵,一名高级前端开发的薪资是初级
阅读全文
摘要:前端和后端开发之间的界线正在发生变化。有一些常见的错误会导致前端开发人员增加工作量、浪费时间,本文将介绍一些常见的错误以及如何避免这些错误。 公司向他们的开发人员和程序员提出更多的要求,让他们完成与自己技能相关的任务,希望通过只雇佣一小部分人来降低开发团队的成本,而不是聘请专家。 此外,企业正在投资
阅读全文
摘要:写了那么多代码,你知道你用的编程语言为什么叫那个名字么? Java 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的
阅读全文
摘要:前端的技术的极速发展,对前端同学来说也是一个不小的挑战,有各种各样的东西需要学,在开发过程中经常会被后端同学嘲讽,对于前端来讲根本就不存在类的概念,很多时候需要把大量的业务代码堆积在页面或者组件中,使组件和页面变得特别的臃肿,一旦业务逻辑复杂的情况下,及时组件化做的很好,仍然避免不了难以维护。 之所
阅读全文
摘要:“怎么可以进大厂” 这个问题,跟“怎么可以在30岁前赚到1000万” 和 “怎么可以在40岁前赚到一个亿”本质是一样的,不存在一个明确指引,可以指引一个人一定可以成功,如果有这种武功秘籍,我早就发达了! 这世上不存在这种武功秘籍,如果有人告诉你有,那一定是割韭菜的了,最好离这种人远远的,小心被割。
阅读全文
摘要:Index MySQL索引的基本操作 CREATE INDEX idx_price on OrderItems(item_price); ALTER TABLE OrderItems DROP INDEX idx_order_num_price; Explain MySQL 提供了一个 EXPLAI
阅读全文
摘要:一、规则引擎使用场景: 用于页面,流程,扩展点实现的选择;输出结果:实现的位置; 编排无数的条件积木和行为积木,达到业务逻辑计算,券库存消减的目的;输出结果:商品重计算后的价格; 通过订单,售后单,会员等信息编排和判断,达到多因子决策给出最佳答案的效果;输出结果:响应式回答/营销推荐,也或分步骤完成
阅读全文
摘要:一、流式计算的背景在日常生活中,我们通常会先把数据存储在一张表中,然后再进行加工、分析,这里就涉及到一个时效性的问题。如果我们处理以年、月为单位的级别的数据,那么多数据的实时性要求并不高;但如果我们处理的是以天、小时,甚至分钟为单位的数据,那么对数据的时效性要求就比较高。在第二种场景下,如果我们仍旧
阅读全文
摘要:有时当你需要移动一个文件时,mv 命令似乎不是最佳选项,那么你会如何做呢? 不起眼的 mv 命令是在你见过的每个 POSIX 系统中都能找到的有用工具之一。它的作用是明确定义的,并且做得很好:将文件从文件系统中的一个位置移动到另一个位置。但是 Linux 非常灵活,还有其他移动文件的办法。使用不同的
阅读全文
摘要:开发人员的技能范围很广——资历往往不能决定一个人的能力。那么,是什么让一些人比他们的同龄人更优秀呢?是什么将他们与平庸的人群区分开来? 拥有五年、十年甚至十五年的「工作经验」并不一定能保证你是一个高效的高级开发人员,甚至不一定会拥有这个头衔。当然,也有一些成功的高级开发,他们往往年纪更大,也不是很具
阅读全文
摘要:一、数据库命令规范 1、所有数据库对象名称必须使用小写字母并用下划线分割 2、所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 3、数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 4、临时库表必须以tmp_为前缀并以日期为后缀,备份表
阅读全文
摘要:随着系统访问量的提高,复杂度的提升,响应性能成为一个重点的关注点。而缓存的使用成为一个重点。redis 作为缓存中间件的一个佼佼者,成为了面试必问项目。本文分享一下Redis几道常见的面试题: 缓存雪崩 1.1 什么是缓存雪崩? 如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。 我们都知
阅读全文
摘要:SDN的内涵与外延 软件定义网络(Software-Defined Networking)概述 SDN的概念主要体现的是技术架构视角,强调的是实现网络设备的软件硬件解耦、网络系统的控制面与转发面解耦,以及整体全面的可编程性。SDN的优势在于它是基于系统全局信息进行网络转发等的策略决策的,实现了网络管
阅读全文
摘要:php 是什么? php 代表超文本预处理器(Hypertext Pre-processor)。早期的 PHP 被用于个人主页,然后才升级更新为超文本预处理器。PHP 是一种服务器端脚本语言,用于开发静态或动态网站和 Web 应用程序。 为什么要使用 PHP 进行服务器端编程? PHP 是开源的,并
阅读全文
摘要:需求 首先介绍一下本项目的背景,是基于 vue-cli3.1.1 的单页应用,目前测试环境和生产环境都在线上,并且都在同一个域名下,其中生产环境部署在根目录下,测试环境部署在名为 test 的子目录下,根据生产环境和测试环境的不同,某些界面和交互有细微的差别。 根据以上项目的基本情况,分析出需求如下
阅读全文
摘要:对角线生成器(Diagonal Generator)用于将两个点连接起来,连接线是三次贝塞尔曲线,该生成器使用d3.svg.diagonal()创建。有两个访问器,source()和target(),还有一个投影函数projection(),用于将坐标进行投影。现有数据: var width = 6
阅读全文
摘要:一、vue监听数组vue实际上可以监听数组变化,比如 data () { return { watchArr: [], }; }, watchArr (newVal) { console.log('监听:' + newVal); }, created () { setTimeout(() => {
阅读全文
摘要:1. 脚手架怎么工作? 功能丰富程度不同的脚手架,复杂程度自然也不太一样。但是总体来说,脚手架的工作大体都会包含几个步骤: 初始化,一般在这个时候会进行环境的初始化,做一些前置的检查 用户输入,例如用 vue-cli 的时候,它会“问”你很多配置选项 生成配置文件 生成项目结构,这是候可能会使用一个
阅读全文
摘要:1.单项数据绑定 <div id="di"> <input type="text" :value="input_val"> </div> <script> var app = new vue({ el: '#di', data: { input_val: 'hello world ' } }) </
阅读全文
摘要:1.props和$emit 父组件向子组件传递数据是通过prop传递的,子组件传递数据给父组件是通过$emit触发事件来做到的。 Vue.component('child',{ data(){ return { mymessage:this.message } }, template:` <div>
阅读全文
摘要:前言 前几天写了一篇react另一个状态管理工具Unstated的源码解析。开启了我的看源码之路。想一想用了好长时间的redux,但从没有深究过原理,遇到报错更是懵逼,所以就啃了一遍它的源码,写了这篇文章,分享我对于它的理解。 API概览 看一下redux源码的index.js,看到了我们最常用的几
阅读全文
摘要:1 状态共享 随着组件的细化,就会遇到多组件状态共享的情况,vuex当然可以解决这类问题,不过就像vuex官方文档所说的,如果应用不够大,为避免代码繁琐冗余,最好不要使用它,今天我们介绍的是vue.js 2.6新增加的Observable API ,通过使用这个api我们可以应对一些简单的跨组件数据
阅读全文
摘要:constructor函数中bind class ReactEvent extends Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } handleCli
阅读全文
摘要:脚手架工具 选用react官方推荐的脚手架工具create-react-app 安装npm install create-react-app -g 项目初始化步骤 1、在github上创建一个项目仓库:首页 > new 2、将github上创建的仓库clone到本地:git clone git@gi
阅读全文
摘要:页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的。如果一个页面,有角色越权访问,这时就得做出限制了。 Vue 动态添加路由及生成菜单这是我写过的一篇文章,通过动态添加路由和菜单来做控制,不能访问的页面不添加到路由表里,这是
阅读全文
摘要:背景: 多人协作模式下,修改代理比较麻烦,而且很容易某个开发人员会修改了vue.config.js文件后提交了。第一,很容易引起冲突。 第二,很容易出现代理错误,需要排查。而且现在微服务盛行,在生产环境下有网关配置,不会出错,但是在本地调试会造成麻烦,如修改了代理地址需要同步修改代理中的地址,很麻烦
阅读全文
摘要:在小程序开发的过程中,小程序的体积会随着版本的迭代变的越来越大,这时候我们就希望能够将小程序分成多个包从服务器下载,这样既可以加快首屏的渲染也便于后续按需加载的实现。小程序在微信客户端 6.6.0,基础库 1.7.3 及以上版本开始支持 分包功能。在构建小程序分包项目时,构建会输出一个或多个分包。每
阅读全文
摘要:概述 一个指令用来引入新的html语法。指令是DOM元素上的标记,使元素拥有特定的行为。举例来说,静态的html不知道如何来创建和展现一个日期选择器控件。让HTML能识别这个语法,我们需要使用指令。指令通过某种方法来创建一个能够支持日期选择的元素。我们会循序渐进地介绍这是如何实现的。 如果你写过An
阅读全文
摘要:如果走完安装流程后运行Flutter时提示: export LANG=en_US.UTF-8 Error running pod install 需要在配置文件.bash_profile中加上: export LANG=en_US.UTF-8 1.flutter开发者网站下载url_launcher
阅读全文
摘要:每当我们想要创建一个基于 Nodejs 的命令行工具时,就会衍生出一堆问题需要解决,比如如何准备开发环境,如何打包转译代码,如何使代码在转译后保持可调用的状态同时尽可能的压缩体积,以及怎样设计项目分配 Command 与 Option 等等,这会浪费巨大的时间,而且并非一定有成果。这时你可以注意到社
阅读全文
摘要:我什么时候应该使用 Refs ? 我们建议在以下情况下使用 refs: 与第三方 DOM 库集成 触发命令式动画 管理焦点,文本选择或媒体播放 译注:第三点是否也可以理解为使用 event 对象呢?在 React 中就是合成事件(SyntheticEvent)。官方文档中提到:避免使用 refs 来
阅读全文
摘要:Flutter 代码开发规范文档 仅做参考 标识符三种类型大驼峰类、枚举、typedef和类型参数 class SliderMenu { ... } class HttpRequest { ... } typedef Predicate = bool Function<T>(T value); 包括
阅读全文
摘要:Zone.js到底是如何工作的? 如果你阅读过关于Angular 2变化检测的资料,那么你很可能听说过zone。Zone是一个从Dart中引入的特性并被Angular 2内部用来判断是否应该触发变化检测。如果你去到zone.js的GitHub页面,你会发现它对Zone是这么定义的: Zone是一个在
阅读全文
摘要:1.$refs的使用场景 父组件调用子组件的方法,可以传递数据。 父组件: <div id="app"> <child-a ref="child"></child-a> <button @click="getMyEvent">点击父组件</button> <div> <script> import
阅读全文
摘要:简介 JavaScript是一门了不起的语言。我喜欢它的灵活性:只需以你喜欢的方式做事:更改变量类型,动态的向对象添加方法或属性,对不同的变量类型使用运算符等等。 然而动态是要付出代价的,开发人员需要知道怎样处理对于不同操作符的类型转换:加号(+),等号(==和 ),不等号(!=和!==)等等,许多
阅读全文
摘要:JavaScript 错误 - Throw 和 Try to Catch try 语句使您能够测试代码块中的错误。 catch 语句允许您处理错误。 throw 语句允许您创建自定义错误。 finally 使您能够执行代码,在 try 和 catch 之后,无论结果如何。 错误总会发生! 当执行 J
阅读全文
摘要:装饰器 装饰器:装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为。 通俗的讲装饰器就是一个方法,可以注入到类、方法、属性参数上来扩展类、属性、方法、参数的功能。 常见的装饰器有:类装饰器、属性装饰器、方法装饰器、参数装饰器 装饰器的写法:普通装饰器(无法传参)
阅读全文
摘要:语法 Math.abs(x) // 必需。必须是一个数值。 示例 <script type="text/JavaScript"> document.write(Math.abs(7.25) + "<br />") document.write(Math.abs(-7.25) + "<br />")
阅读全文
摘要:定义 就是监听根元素与目标元素在指定的交叉比例时触发回调 兼容性 兼容部分现代游览器(chrome)生产环境中使用,请注意兼容需求 使用场景 在一定使用场景可替代onscroll1、写法上更加简单优雅2、避免了onscroll带来的大量位置计算,提高性能 例如1:滚动(上拉)加载 例如2: 懒加载
阅读全文
摘要:模拟 对于我们的程序来说,从 API 获取一些数据是很常见的。但是它可能由于各种原因而失败,例如 API 被关闭。我们希望测试可靠且独立,并确保可以模拟某些模块。我们把 ToDoList 组件修改为智能组件。 app/components/ToDoList.component.js import r
阅读全文
摘要:最近后台项目需要一个"全屏"的按钮, github了下, 发现都仅仅支持"开启全屏", 而没有"切换"/"监听全屏状态"等功能, 所以打算自己写一个(主要代码量不大, 嘿嘿). 写代码之前说说逻辑 所有现代浏览器(>IE11)都提供了"全屏"的api,只是不同浏览器有不同的api(基本就是前缀不同)
阅读全文
摘要:一切都从对象开始。 对象,即我们相互交流的一个载体,有其属性和方法。对象是面向对象编程的核心,不仅用于JavaScript,而且还适用于Java、C语言、C++等。不再考虑单个变量和函数,而选择自给型的对象。 以下是在讨论面向对象编程(OOP)时最常用到的概念: 对象,属性,方法 类 封装 抽象 复
阅读全文
摘要:引语 最近在社区阅读技术博客的时候偶然间看到了函数柯里化几个字,还有要求手写js函数柯里化,心想是柯里化是什么高级的东西?没听说过啊? 就带着问题出发,专门去学习了一下,做了一些整理。 什么是函数柯里化? 什么是函数柯里化?先看看维基百科如何解释: 在计算机科学中,柯里化(英语:Currying),
阅读全文
摘要:一、 介绍 ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器对ES6新特性支持度不高,所以要想在浏览器中直接使用ES6的新特性就得借助别的工具来实现。 Babel是一个广泛使用的转码器,babel可以将ES6代码完美地转换为ES5代码,所以我们不用等到浏览器的支持就可以在项目中使用
阅读全文
摘要:对象是无序属性的集合,而这些属性在创建是都带有一些特征值(可以理解为属性的属性,天生自带的),这些特征值是为了实现JavaScript引擎用的,因此JavaScript不能直接访问。 JavaScript通过这些特征值来定义属性的行为(属性是否删除,枚举,修改等)。 例如,在全局定义的属性是会挂载到
阅读全文
摘要:题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解法 1:暴力法 遍历数组中的所有元素,找到是否存在。 时间复杂度是 O(N^2),空间复杂度是
阅读全文
摘要:解构:从数组和对象中提取值,对变量进行赋值。 一、数组的解构赋值 1.数组的元素是按次序排列的,变量的取值由它的位置决定 // 模式匹配 let [a, b, c] = [1, 2, 3]; let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar
阅读全文
摘要:一、引用库 html2canvas.js和canvas2image.js的下载地址: html2canvas.js: http://html2canvas.hertzen.com/dist/html2canvas.min.jscanvas2image.js: https://github.com/S
阅读全文
摘要:一.键盘事件 onkeydown: 按下键盘时触发 onkeypress: 按下有值的键时触发 注意: onkeypress按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发对于有值的键,按下时先触发 keydown 事件,再触发这个事件 onkeyup:松开键盘时触发该事
阅读全文
摘要:总结获取url中查询参数的两种方式 通过正则表达式获取单个参数 url中的所有查询参数可以通过 window.location.search 字段获取,以字符串的形式返回。并有固定的格式 ?param1=value1¶m2=value2···,所以可以正则表达式匹配。 分析下需要匹配的格式:
阅读全文
摘要:开始 1.相关技术 本示例主要使用了 WebRTC 和 WebSocket: WebRTC(Web Real-Time Communication)即网页即时通信,是一个支持网页浏览器进行实时语音对话或视频对话的API。 WebSocket是一种在单个TCP连接上进行全双工通信的协议。在 WebSo
阅读全文
摘要:1.首先安装highcharts npm install highcharts --save 2.代码引入 //可以根据实际需求来引入对应的包 import Highcharts from 'highcharts/highstock'; import HighchartsMore from 'hig
阅读全文
摘要:链式调用原理: 链式调用原理就是作用域链;实现需要做的工作; 对象方法的处理 (操作方法) 处理完成返回对象的引用(操作对象) 第2步链式实现的方式: <1> this的作用域链,jQuery的实现方式;<2> 返回对象本身, 同this的区别就是显示返回链式对象; 一: var person =
阅读全文
摘要:背景 最近遇到一个下载的需求,由于 url 参数太长(常用的下载方法 a 标签或者 location.href 的方法都是 get 请求,get 请求参数长度有限制),无法下载,考虑了好几种方案,最终还是觉得通过 ajax 的 POST 方法进行下载,比较容易实现,下面记录实现过程以及遇到的问题。
阅读全文
摘要:该this关键字是在JavaScript中一个非常重要的概念,也是一个特别令人迷惑的这两个新的开发者和那些谁拥有在其他编程语言的经验。在JavaScript中,this是对对象的引用。该对象this是指可以改变,含蓄地基于它是否是全球性的,在对象上,或者在一个构造函数,也可以明确地变化根据的使用Fu
阅读全文
摘要:通过 babel 插件,我们很容易的就在编译时将某些代码转换成其他代码以实现某些优化。例如 babel-plugin-lodash 可以帮我们将直接 import 的 lodash 替换成能够进行 tree shaking 的代码;通过 babel-plugin-preval 在编译时执行脚本并使用
阅读全文
摘要:1. Commonjs模块规范 1.1 模块引用 var math = require('math'); 1.2 模块定义 上下文提供exports对象用于导出当前模块的方法和变量,并且他是唯一的导出出口,exports实际上是module.exports,而module.exports就是以一个暴
阅读全文
摘要:js是单线程的,为什么可以执行异步操作呢? 这归结与浏览器(js的宿主环境)通过某种方式使得js具备了异步的属性。 区分进程和线程: 进程:正在运行中的应用程序。每个进程都自己独立的内存空间。例如:打开的浏览器就是一个进程。 线程:进程的子集,是独立的。线程在共享的内存空间中运行。 浏览器是多进程的
阅读全文
摘要:js是单线程的,为什么可以执行异步操作呢? 这归结与浏览器(js的宿主环境)通过某种方式使得js具备了异步的属性。 区分进程和线程: 进程:正在运行中的应用程序。每个进程都自己独立的内存空间。例如:打开的浏览器就是一个进程。 线程:进程的子集,是独立的。线程在共享的内存空间中运行。 浏览器是多进程的
阅读全文
摘要:严格模式是什么意思?有什么用途?为什么我们应该使用它? 本文 将主要从这几个问题入手,讲述在 JavaScript 中使用严格模式的必要性。 严格模式是现代 JavaScript 的重要组成部分。通过这种模式,我们可以选择使用更为严格的 JavaScript 语法。 严格模式的语义不同于以前的 Ja
阅读全文
摘要:本文将介绍数据排序的基本算法和高级算法。这些算法都只依赖数组来存储数据。 数组测试平台 首先我们构造一个数组测试平台类 function CArray(numElements) { this.dataStore = []; this.numElements = numElements; this.t
阅读全文
摘要:平常我们都是不建议在代码上编写一些比较难理解的代码,例如 x == y 和 'A' > 'B' 。这篇文章或许不能给你带来什么大的帮助,但是却可以让你了解一些你可能没接触到的知识点。 由于有些参考资料来源于 ECMA 规范,所以感兴趣的可能需要先看《读懂 ECMAScript 规格》这篇文章,当然也
阅读全文
摘要:前一段时间,我创建了一个标题为“7个可爱的Web开发技巧”的帖子。在这里,我描述了一些有趣的技巧,您可以使用3种主要的Web技术之一来实现这些技巧-html,css和JavaScript。而且,我必须承认-你们似乎都喜欢它!因此,续集来了! 这次,为了更加一致,我决定只专注于JavaScript。它
阅读全文
摘要:介绍 我相信学习新事物并评估我们所知的东西对自己的进步非常有用,可以避免了我们觉得自己的知识过时的情况。在本文中,我将介绍一些常见的 JavaScript 知识。请享用! 1.声明 查看以下代码,并回答输出的内容(以及原因)。 // situation 1 console.log(person);
阅读全文
摘要:前言 "use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。 至今,前端 er 们基本都默认开启严格模式敲代码。 那么,你知道 Typescript 其实也有属于自己的严格模式吗? 1. Typescript 严格模式规则 当 Typescript
阅读全文
摘要:递归和闭包作为js中很重要的一环,几乎在前端的面试中都会涉及,特别闭包。今天前端组的组长冷不丁的问了我一下,粗略的回答了一下,感觉不太满足,于是重新学习了一下,写下本篇。 在说这个两个概念之前,我们先回顾一下函数表达式。 function实际上是一种引用对象,和其他引用类型一样,都有属性和方法。定义
阅读全文
摘要:JavaScript回调函数是成为一名成功的 JavaScript 开发人员必须要了解的一个重要概念。但是我相信,在阅读本文之后,你将能够克服以前使用回调方法遇到的所有障碍。 在开始之前,首先要确保我们对函数的理解是扎实的。 快速回顾:JavaScript 函数 什么是函数? 函数是在其中有一组代码
阅读全文
摘要:背景 JavaScript中,数组的遍历我们肯定都不陌生,最常见的两个便是forEach 和 map。 (当然还有别的譬如for, for in, for of, reduce, filter, every, some, ...) 之所以几天要写这个, 是因为前几天写代码的时候犯了一个低级且愚蠢的错
阅读全文
摘要:为什么有深复制、浅复制? JavaScript中有两种数据类型,基本数据类型如undefined、null、boolean、number、string,另一类是Object。简单数据类型只存储在内存中的栈区,复制的时候是值传递给新的索引。而复杂数据类型由栈区和堆区共同储存,栈区执行同样的操作,只是把
阅读全文
摘要:0.前言 记得当年面试的时候,面试官问我,前端怎么做权限控制,咱也不太会这个,只能尴尬回答道:“都是老大搭的架子,我只负责写业务模块代码”。如今自己也做了很多项目了,觉得有必有对前端权限控制做一个总结。 前端权限控制一直是前端必须掌握的一个知识点,一般来说稍微正规一点的后台系统肯定有权限控制。当然还
阅读全文
摘要:在编写js代码的过程中,运用一定的设计模式可以让我们的代码更加优雅、灵活。 下面笔者就结合诸如redux的subscribe、ES6的class、vue里面的$dispatch、jquery里面的on/off来给大家简单介绍下设计模式在这些库、语法和框架中的使用。 设计模式解决的问题 设计模式并不是
阅读全文
摘要:引语 最近一段时间在重温ES6,Promise应该是是ES6新特性中非常重要的一部分内容。其实Promise在我日常开发中已经用得比较多,但大多数时候只是知道Promise可以用来实现异步编程,也只限于单纯地会用罢了,并没有时间深入去学习过,而且网上得资料大多都比较琐碎。我就自己花时间做了一个关于P
阅读全文
摘要:引子 几乎在每一本js相关的书籍中,都会说js是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。 CPU 说到CPU和进程、线程,对计算机操作系统有过学习
阅读全文
摘要:介绍 为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体,布尔值等。 TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。 布尔值 最基本的数据类型就是简单的true/false值,在JavaScript和TypeScrip
阅读全文
摘要:什么是 TypeScript 官方网站的定义是:TypeScript 是 js 类型的超集。它假设咱们知道什么是超集,什么是类型化。为了简单起见,你可以将 TypeScript 看作是 JavaScript 之上的一个外壳。 TypeScript 是一个外壳,因为编写 TypeScript 的代码,
阅读全文
摘要:1. 网站架构的伸缩性设计 1.1. 不同功能进行物理分离实现伸缩 纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。 横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性。 1.2. 单一功能通过集群规模实现伸缩 将不同功能分离部署可以实现一定程度的伸缩性
阅读全文
摘要:目前前端三杰 Angular、react、vue 都推介单页面应用 SPA 开发模式,在路由切换时替换 DOM Tree 中最小修改的部分 DOM,来减少原先因为多页应用的页面跳转带来的巨量性能损耗。它们都有自己的典型路由解决方案,@angular/router、react-router、vue-r
阅读全文
摘要:下雪效果只是一类效果的名称,可以是红包雨等一些自由落体的运动效果,本文就是用纯css模拟下雪的效果,更多效果大家可以自行发挥。 1.前言 由于公司产品的活动,需要模拟类似下雪的效果。浏览器实现动画无非css3和canvas(还有gif),对比下css3和canvas的优缺点: 动画自由度:canva
阅读全文
摘要:package.json 在 Node.js 中,模块是一个库或框架,也是一个 Node.js 项目。Node.js 项目遵循模块化的架构,当我们创建了一个 Node.js 项目,意味着创建了一个模块,这个模块的描述文件,被称为 package.json。 package.json 属性说明: na
阅读全文
摘要:我酷爱模块化设计。长期以来我都热衷于将网站分离成组件,而不是页面,并且动态地将那些组件合并到界面上。这种做法灵活,高效并且易维护。 但是我不想我的设计看上去是由一些不相关的东西组成的。我是在创造一个界面,而不是一张超现实主义的照片。 很幸运的是,已经有一项叫做 css 的技术,就是特意设计用来解决这
阅读全文
摘要:一. js动画和css动画区别。 css实现动画:animation transition transform js实现动画:setInterval setTimeout requestAnimationFrame JS动画: 优点: 1. 过程控制,可以在动画播放过程中对动画进行控制:开始、暂停、
阅读全文
摘要:首先简单说下思路:本地git仓库与远程仓库关联(github、码云等平台),然后pm2按照指定配置登录服务器,拉取远程仓库的代码更新,再执行一些指定的命令(如打包等)。 创建本地项目并关联到远程仓库 本地新建名为web的项目,进入项目并创建一个简单的Nodejs文件app.js, mkdir web
阅读全文
摘要:css3的过渡属性,给web应用带来了简单优雅的动画,但是比起初次相见,他(transition)有许多细则。在这片文章中,我将会专研css3的过渡(transition)中更加复杂的部分,从链式和事件到硬件加速和动画函数。让浏览器控制动画序列,通过改变帧率,减少绘画和减少GPU的工作,能够优化性能
阅读全文
摘要:如果你在日常工作中使用css,那么你的主要目标很可能集中在使事情看起来是正确的。最终得到的正确结果远比如何实现更重要。这意味着相比正确的语法和视觉效果我们更少关注css的实现原理。 你可能还没有意识到,但CSS的视觉效果通常是操纵隐藏属性的间接结果。一些CSS属性(如 background-colo
阅读全文
摘要:1.前言 在上家公司开发后台管理系统的时候,频繁要处理各种数据显示的问题,一开始是实现就好。后来写多了,自己看得也难受了。就想着怎么优化代码和复用了。下面就通过一个简单的例子,怎么让 API 更加的实用,更好的复用。 1.代码的实用性,只能尽量,尽量再尽量。不会出现完美的API,或者是一次编写,永不
阅读全文
摘要:项目需求写完有一段时间了,但是还是想回过来总结一下,一是对项目的回顾优化等,二是对坑的地方做个记录,避免以后遇到类似的问题。 需求 利用微信强大的社交能力通过小程序达到裂变的目的,拉取新用户。生成的海报如下 需求分析 1、利用小程序官方提供的api可以直接分享转发到微信群打开小程序2、利用小程序生成
阅读全文
摘要:本文将会从一个大型的网站发展历程出发,一步一步的探索这个网站的架构是如何从单体架构,演化到分布式架构,然后演化到高并发架构的。 一、单块架构 一般一个网站刚开始建立的时候,用户量是很少的,大概可能就几万或者几十万的用户量,每天活跃的用户可能就几百或者几千个。 这个时候一般网站架构都是采用单体架构来设
阅读全文
摘要:需求 最近在做一个项目需求,分享领好书活动,获取用户的个人信息以及unionID,并诱导用户分享给好友或朋友圈,达到裂变拉新的目的。在做的过程中遇到了一些坑的地方,所以回过来总结一下 技术方案 使用微信js-SDK自定义分享到好友和分享到朋友圈 实现步骤 1、要实现微信H5网页自定义分享功能,必须先
阅读全文
摘要:编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋。对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目,那就需要对css进行管理和规范了,否则会发生不可挽回的后果(吓唬谁呢??)。 背景 css谈模块化
阅读全文
摘要:命名禁止缩写 精简扼要地对class命名,请勿使用自定义缩写。 class name的命名必须是行为、有语意的。 禁止在非特殊情况下写!important css本身有权重设计,任意地使用!important会造成权重混乱而无法维护。 不可轻易限定宽高 用户可以自行设定自己的浏览器,例如Androi
阅读全文
摘要:属性选择器非常神奇。它们可以使你摆脱棘手的问题,帮助你避免添加类,并指出代码中的一些问题。但是不要担心,虽然属性选择器非常复杂和强大,但是它们很容易学习和使用。在本文中,我们将讨论它们是如何运行的,并给出一些如何使用它们的想法。 通常将 html 属性放在方括号中,称为属性选择器,如下: [href
阅读全文
摘要:一. 跨站脚本攻击(XSS,Cross-site scripting) 是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用 户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的攻击,例如
阅读全文
摘要:为什么说能使用html/css解决的问题就不要使用js呢?两个字,因为简单。简单就意味着更快的开发速度,更小的维护成本,同时往往具有更好的体验,下面介绍几个实例。 1. 导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮。你可以用js控制,但是用一点css技巧就
阅读全文
摘要:在手机上使用css动画时很多时候会感到卡顿,然后网上很多教程说开启GPU加速 transform: translate3d(0,0,0); 可解决,但是为什么开启GPU加速就能让动画顺滑呢? 我们从浏览器内部去理解下 js是单线程的,但是浏览器可以开启多个线程,渲染一个网页需要两个重要的线程来共同完
阅读全文
摘要:明白何谓Margin Collapse 不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较大值会被保留下来,可以从下面这个简单的例子来学习: .square { width: 80px; h
阅读全文
摘要:1.下载文件 使用downloadFile下载API /* 直接这样写的话,会出现下载文件后缀名为unknown的情况 */ wx.downloadFile({ url: '', success (res) { console.log(res.filePath); } }) 改进后的下载保存 /*
阅读全文
摘要:一、vue项目初始化-引入typescript 使用typescript构建vue应用和使用js一样,都是通过vue-cli去初始化并创建一个vue项目,只不过使用typescript构建的时候要在脚手架问卷操作的时候勾选上typescript选项。 二、typescript Vue项目比较 使用t
阅读全文
摘要:模板语法 文本绑定,两个大括号,中间加上data里面的数据,message里面不仅可以是变量还可以是表达式 <body> <div id="main"> // 变量 {{ message }} <br/> // 表达式 {{ number + 1}} </div> </body> <script>
阅读全文
摘要:子通信父 父组件 <template> <div class="parent"> 我是父组件 <!--父组件监听子组件触发的say方法,调用自己的parentSay方法--> <!--通过:msg将父组件的数据传递给子组件--> <children :msg="msg" @say="parentSa
阅读全文
摘要:所有这些新的react Hook之间都有一个宗旨:就是为了使函数组件像类组件一样强大。useContext hook 与其它几个有点不一样,但它在特定场景下还是很有用的。react 的 Context API 是一种在应用程序中深入传递数据的方法,而无需手动一个一个在多个父子孙之间传递 prop。当
阅读全文
摘要:一、回顾一下官方vue-router插件的使用 要想自己实现一个vue-router插件,就必须先了解一下vue-router插件的基本使用,我们在使用vue-router的时候,通常会定义一个router.js文件,里面主要就是干了以下几件事: ① 引入vue-router模块; import R
阅读全文
摘要:1.为什么需要使用Context 在react中,数据传递一般使用props传递数据,维持单向数据流,这样可以让组件之间的关系变得简单且可预测,但是单项数据流在某些场景中并不适用,看一个官方给出的例子:有三个组件APP, Toolbar ,ThemedButton,关系如图:(为了方便大家理解(偷懒
阅读全文
摘要:发起 HTTP 请求 首先我们需要先导入 http 的支持包,然后创建 httpClient。 import 'dart:io'; var httpClient = new HttpClient(); HttpClient 支持常见的 get、post、put、delete 请求。 处理异步 众所周
阅读全文
摘要:一.组件的构成 组件:由 template + css + js 三部分组成(.vue文件) 1)组件具有复用性 2) 复用组件时,数据要隔离 3) 复用组件时,方法不需要隔离,因为方法使用隔离数据就可以产生区别 组件介绍: 1) 每一个组件都有自己的template(虚拟DOM),最后要替换掉真实
阅读全文
摘要:关于数据监听,vue提供了两种方式watch和computed(计算属性) 常规用法 watch:{ id(newVal,oldVal){ // do somethings ... } } 深层监听 // 深度监听,可监听到对象、数组的变化 watch:{ obj:{ deep: true, //
阅读全文
摘要:0x1 前言 之前写的项目都是人家编写好的脚手架,里面包含项目所需的环境文件,但由于有些东西用不到打包增加软件体积,所以自己从头搭建个环境。是基于 Native Base + react-navigation + Redux 的 react Native 脚手架,现在项目环境如下: { "name"
阅读全文
摘要:谈到机器学习,我们脑海首先蹦出的编程语言是什么?一定是python。其实除了python,JavaScript也是不错的选择。都说现在是大前端时代,从移动开发、服务器端,甚至桌面软件开发(比如大名鼎鼎的VS Code),都有JavaScript的身影。 用Javascript写机器学习应用,当然不会
阅读全文
摘要:类被会替代吗? Hooks不会替换类,它们只是一个你可以使用的新工具。React 团队表示他们没有计划在React中弃用类,所以如果你想继续使用它们,可以继续用。 我能体会那种总有新东西要学的感觉有多痛苦,不会就感觉咱们总是落后一样。Hooks 可以当作一个很好的新特性来使用。当然没有必要用 Hoo
阅读全文
摘要:1.vue的生命周期 生命周期钩子描述 beforeCreate 在实例初始化前,数据观测和event/watcher事件配置之前被调用 created 实例被创建完成后调用。在这一步,实例已经完成以下配置:数据观测,属性和方法的运算,watcher/event事件的回调。挂载阶段还没开始,$el属
阅读全文
摘要:初始化一个 react 项目 yarn create create-app hooks-context-based-state-management-react-app cd hooks-context-based-state-management-react-app yarn start 或者可以
阅读全文
摘要:你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使用jQuery的理由是他把我的工作变得简单多了,开发Web应用已经几乎离不开它。曾经
阅读全文
摘要:为什么要服务端渲染(ssr) 至于为什么要服务端渲染,我相信大家都有所闻,而且每个人都能说出几点来。 首屏等待 在 SPA 模式下,所有的数据请求和 Dom 渲染都在浏览器端完成,所以当我们第一次访问页面的时候很可能会存在“白屏”等待,而服务端渲染所有数据请求和 html内容已在服务端处理完成,浏览
阅读全文
摘要:概述 vuex 是一个专为 vue.js 应用程序开发的状态管理模式。也就是说 Vuex 用于单页面应用组件之间的数据共享,在组件嵌套很多层的情况下,Vue 中父子组件的通信过程就变得很麻烦,此时使用 Vuex 方便了组件间的通信。vuex官网上说是一个vue的状态管理工具。其实我们可以简单地把状态
阅读全文
摘要:1.jsX理解 举例: const element = <h1>Hello, world!</h1>; 这被称为 jsX,是一个 JavaScript 的语法扩展。建议在 react 中配合使用 JSX,JSX 可以生成 react “元素”,而且JSX 可以很好地描述 UI 应该呈现出它应有交互的
阅读全文
摘要:1 使用Webpack如何做按需加载 大家都知道Webpack是现在流行的前端打包编译工具,通过模块之间的依赖关系,将代码打包组织到一起。Webpack目前已经到v4.x,不同版本版支持按需加载的方式不同,主要有两种: webpack1.x 中提供了 require.ensure() webpack
阅读全文
摘要:操作符 算术运算符:+ 、- 、 * 、 / 、 %、++、-- 赋值运算符:= 、+=、-=、 *=、/=、%= 比较运算符:>、>=、<、<=、!=、==、 (全等,数据类型也会去比较) 逻辑运算符:&&(与)、||(或)、! (非) 流程控制 以下在进行判断的时候为假 0 null undef
阅读全文
摘要:引言 在我们的前端日常工作中,无时无刻不在进行着变量的声明和赋值,你是否也曾碰到过变量声明报错或变量被污染的问题,如果你跟笔者一样碰到过,那么我们应该暂时停下来好好思考问题发生的原因以及如何采取相应的补救措施。当然排查问题最好的方式就是深入其底层细节,了解在JavaScript中的内存分配方式。只有
阅读全文
摘要:高阶函数 高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。 例如Array.prototype.map,Array.prototype.filter并且Array.prototype.reduce是一些高阶功
阅读全文
摘要:闭包的实现原理和作用 1、闭包的概念:指有权访问另一个函数作用域中的变量的函数,一般情况就是在一个函数中包含另一个函数。 2、闭包的作用:访问函数内部变量、保持函数在环境中一直存在,不会被垃圾回收机制处理 因为函数内部声明 的变量是局部的,只能在函数内部访问到,但是函数外部的变量是对函数内部可见的,
阅读全文
摘要:在js中,对象属于是键值对的集合 //例如 const obj = { name: '残梦', say:function(){ console.log('你好') } } 在上面这个代码中,name就属于是key,而‘残梦‘就是value 如何获取对象属性 第一种方式: .语法 student.na
阅读全文
摘要:数组拷贝经常被误解,但这并不是因为拷贝过程本身,而是因为缺乏对 js 如何处理数组及其元素的理解。js 中的数组是可变的,这说明在创建数组之后还可以修改数组的内容。 这意味着要拷贝一个数组,咱们不能简单地将旧数组分配给一个新变量,它也是一个数组。如果这样做,它们将共享相同的引用,并且在更改一个变量之
阅读全文
摘要:扩展字面量类型 当使用 const 关键字声明局部变量并使用字面量值初始化它时,TypeScript 将推断该变量的字面量类型: const stringLiteral = "https"; // Type "https" const numericLiteral = 42; // Type 42
阅读全文
摘要:引子:表单数据的克隆 工作中我们需要用到对象或者数组的复制功能 提交的form表单,需要进行处理,例如将表单中的数组变成','连接的字符串,这个时候我们直接对原表单直接处理是不妥当的 那么问题来了,我该用什么方法去克隆这个含有数组的表单呢? 深克隆和浅克隆的区别 在解决上述问题之前,我们应该明确一点
阅读全文
摘要:js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现 在面向对象的语言中,
阅读全文
摘要:1、For循环 var a = ‘Hi, my name\‘s Han Meimei, a SOFTWARE engineer‘; //for循环 function titleCase(s) { var i, ss = s.toLowerCase().split(/\s+/); for (i = 0
阅读全文
摘要:我们要谈论的是什么? 在 JavaScript 中数据结构通常总是被忽略,或者接触得不多。但是对于许多大厂而言,一般都需要你深刻了解如何管理数据。掌握数据结构也能够在解决问题时为你的工作提供帮助。 在本文中,我们将要讨论并实现的数据结构是: 栈 队列 链表 哈希表 树 栈 第一个数据结构是栈。它与队
阅读全文
摘要:本篇文章希望可以从JavaScript的技术的背景、原理和设计出发,把知识的内容呈现出来。这种形式适用于有体系和源流的知识,比较适合系统学习和理解。 JavaScript诞生与1995年,当时的主要目的之一是处理以前由服务器端语言(如Perl)负责的一些验证操作。在JavaScript之前,必须把表
阅读全文
摘要:本文的内容比较硬核,我们一起来看下 JavaScript 全局变量的底层机制到底是怎样的。文章会涉及脚本作用域、全局对象等概念。 作用域 变量的 词法作用域 (简称 作用域 )是程序中可以访问它的区域。JavaScript 的作用域是静态的(在运行时不会改变),并可以嵌套——例如: function
阅读全文
摘要:引言 作为一门强大的静态类型检查工具,如今在许多中大型应用程序以及流行的js库中均能看到TypeScript的身影。js作为一门弱类型语言,在我们写代码的过程中稍不留神便会修改掉变量的类型,从而导致一些出乎意料的运行时错误。然而TypeScript在编译过程中便能帮我们解决这个难题,不仅在JS中引入
阅读全文
摘要:前言 1.高级 WEB 面试会让你手写一个Promise,Generator 的 PolyFill(一段代码); 2.在写之前我们简单回顾下他们的作用; 3.手写模块见PolyFill. 源码 源码地址请戳,原创码字不易,欢迎 star 如果觉得看文章太啰嗦,可以直接 git clone ,直接看代
阅读全文
摘要:封装getScroll函数 1. 获取页面向上或者向左卷曲出去的距离的值 2. 浏览器的滚动事件 function getScroll() { return { left: window.pageXOffset || document.documentElement.scrollLeft || do
阅读全文
摘要:1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear(); // 获取完整的年份(4位,1970-????) myDate.getMonth(); //
阅读全文
摘要:DOM 树 html 文档的骨干是标签。根据文档对象模型(DOM),每个html标签都是一个对象,同样标签内的文本也是一个对象。因此这些对象都可通过 JavaScript 操作如果文档中有空格(就像任何字符一样),那么它们将成为 DOM 中的文本节点,如果我们删除它们,则不会有任何内容。<head>
阅读全文
摘要:1.关于indexedDB indexedDB用于在浏览器端存储大量的结构化数据。对比于其他的浏览器存储技术(cookie,localStorage),indexedDB具有以下优点: 1.存储空间特别大,远超cookie与localStorage; 2.可以通过索引实现高性能搜索; 3.所有操作完
阅读全文
摘要:概述 一直以来都在函数式编程的大门之外徘徊,要入门的话首先得熟悉各种高阶函数,数组的reduce方法就是其中之一。 reduce方法将会对数组元素从左到右依次执行reducer函数,然后返回一个累计的值。举个形象的例子:你要组装一台电脑,买了主板、CPU、显卡、内存、硬盘、电源...这些零件是组装电
阅读全文
摘要:JavaScript的数据中可通过splice/slice在指定位置添加或删除元素。另外还有slice、delete等方法实现。 splice简介 splice方法向/从数组中添加/删除项目,然后返回被删除的项目。 该方法会改变原始数组。 arrayObject.splice(index, howm
阅读全文
摘要:废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1、wxs 取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的。那还有 css 啊,不一样可以做到吗?但是个人觉得 css 复用性太差,暂不考虑。 实在不行就用 js 呗,在获取到数
阅读全文
摘要:前言 开发项目的时候突然接到了这个需求,实验过后,解决方法也蛮多种,下面就讲下常规的几种方案 1.改变router-view中的key值 通过改变router-view中的key值,来达到刷新组件的目的 <router-view :key="activeDate"></router-view> th
阅读全文
摘要:// 判断是否为undefined或null const isDef = (v) => { return v !== undefined && v !== null } // 判断是否为Promise 函数 const isPromise = (val) => { return ( val !==
阅读全文
摘要:Streams究竟是什么? 流是数据的集合 - 就像数组或字符串一样。 不同之处在于流可能无法一次全部可用,并且它们不必适合内存。(译者注:流可以分片处理数据,所以不是一次全部可用,也不用担心数据太大,内存不够) 这使得流在处理大量数据时非常强大,或者一次来自外部源的数据。 但是,流不仅仅是处理大数
阅读全文
摘要:安装nvm nvm是nodejs的版本管理工具,可以快速切换更新nodejs版本,windows系统使用nvm-windows。 curl下载: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | ba
阅读全文
摘要:为什么要使用函数式 UI? 顾名思义,用户界面允许用户与其他系统 交互 ,其理念是:相比直接与其他系统互动,这种交互界面会提供一些用户期望的好处。用户通过某种输入方式(例如按键或声音输入)表达意图,然后用户界面通过在接口系统上预定义的动作来做出响应。 用户界面基本上是天然的响应式系统 。用户界面的任
阅读全文
摘要:使用方法 v-if : <h1 v-if="xkd">侠课岛</h1> template 中配合 v-if 条件渲染一整组 : <template v-if="a"> <h1>Title</h1> <p>Paragraph one</p> <p>Paragraph two</p> </templat
阅读全文
摘要:最近开发中要实现一个需求,用户点击分享生成一个图片海报,可以供用户发朋友圈或者其他使用(感觉没人会用~),用到了小程序canvas,和web上的功能基本一样,记录一下。 还没上线一周,这个功能就被撤了 首先预设几个工具函数 1/小程序开发使用的是 rpx,但是canvas里的单位使用的 px ,就需
阅读全文
摘要:意义 就是在组件里留着差值方便后续组件内容新增 而且由于插件是写在父级中数据可以直接父级中传输而不需要传子再传父有些情况会减少写代码量 示例 <div id="app"> <msg-tag> //4.创建个组件 <template v-slot:插槽的名称> //根据插槽的名称创建插槽 //插槽里面
阅读全文
摘要:前言 我们都知道vue是数据驱动视图,而vue中视图更新是异步的。在业务开发中,有没有经历过当改变了数据,视图却没有按照我们的期望渲染?而需要将对应的操作放在nextTick中视图才能按照预期的渲染,有的时候nextTick也不能生效,而需要利用setTimeout来解决? 搞清楚这些问题,那么就需
阅读全文
摘要:组件的过渡 条件的渲染(使用v-if) 条件的展示(使用v-show) 动态组件 组件根节点 链接地址下载: <script src="http://raw.githubusercontent.com/daneden/animate.css/master/animate.css"></script>
阅读全文
摘要:对于任何一个程序员来说,最关注的两个问题无非就是:时间复杂度和空间复杂度。第一部分介绍了 V8 为改进 JavaScript 执行时间所做的速度提升和优化,第二部分则将着重介绍内存管理方面的知识。这篇文章,小编简要概述了编程语言的一般工作机制,并深入探讨了 V8 引擎的管道。第二部分将介绍一些更重要
阅读全文
摘要:前言 因为最近接手维护一个基于 ivew 的项目, 新增模块中包含很多自定义功能, 所以大量使用到了 render 函数; 故对其做一下总结...关于 render 函数, 官方文档也做了比较详细的介绍: render 函数: https://cn.vuejs.org/v2/guide... ; 一
阅读全文
摘要:路由元信息?(黑人问号脸???)是不是这么官方的解释很多人都会一脸懵?那么我们说meta,是不是很多人恍然大悟,因为在项目中用到或者看到过呢?是的,路由元信息就是我们定义路由时配置的meta字段;那么这个meta的作用是什么呢? 首先看一个场景: 通常我们在开发网站或者移动应用的时候,我们通常会有网
阅读全文
摘要:为什么要用 react 来构建小程序 Learn once, write anywhere. 因为 React 是我们最熟悉的技术。 小程序糟糕的 API 设计已经有很多文章吐槽,这里就不再赘述了。再加上现在一大堆小程序平台,每个平台之间又有大大小小的差异,这对于有跨平台需求的小程序来说无异于是一场
阅读全文
摘要:基础页面 为了演示如何通过 JavaScript 来创建 html 动画,我们将使用一张简单的网页: 实例 <!DOCTYPE html> <html> <body> <h1>我的第一部 JavaScript 动画</h1> <div id="animation">我的动画在这里。</div> </
阅读全文
摘要:JavaScript如何判断对象是否包含某属性?下面本篇就来给大家介绍几种使用JavaScript判断对象是否包含有某属性的常见方法,希望对大家有所帮助。 一、使用“!==” “!==”方法在工作中很常见,可以看出该方法可以判断继承来的属性。 let obj = { x: 1 }; obj.x !=
阅读全文
摘要:JavaScript中截取字符串有三种方法,分别是substring(),substr(),split()。下面本篇文章就来给大家介绍一下它们的使用方法,希望对大家有所帮助。 方法1:使用substring() substring()方法用于提取字符串中介于两个指定下标之间的字符。 语法: subs
阅读全文
摘要:何为单例模式?顾名思义,单例模式就是保证一个类仅有一个实例,也就是创建出来的两个实例必须相等! 构造函数静态属性创建单例 function Singleton() { // 已有实例则返回该实例,没有则创建实例 if (typeof Singleton.instance 'object') { re
阅读全文
摘要:对于前端开发者来说,缓存是大家都耳熟能详的一个知识点,但是经常在面试的过中,稍微深入询问的时候,就会出现知识点混乱,比如常见的http缓存,本地存储,cookie的使用。下面分别就这三个方面具体阐述,以此来巩固大家的知识体系。 一、cookie 1、cookie是什么? HTTP协议本身是无状态的。
阅读全文
摘要:垃圾回收 垃圾回收:在不需要字符串、对象的时候,需要释放其所占用的内存。 高级语言解释器嵌入了“垃圾回收器”,监控着所有对象,当对象生存周期结束时会将其删除。内嵌的垃圾回收器的问题:自动寻找是否一些内存“不再需要”的问题是无法判定的。垃圾回收实现只能有限制的解决一般问题。所以引出垃圾回收算法(机制)
阅读全文
摘要:语法 delete expression expression 的计算结果应该是某个属性的引用,例如: delete object.property delete object['property'] 返回值 对于所有情况都是true,除非属性是一个自己不可配置的属性,在这种情况下,非严格模式返回
阅读全文
摘要:js中设置window.location.href跳转无效 代码如下: <script type="text/JavaScript"> function checkUser() { if(2!=1){ window.location.href="login.jsp"; } } </script> <
阅读全文
摘要:题目 原题:https://github.com/Wscats/ function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.pr
阅读全文
摘要:在一个对象上触发某类事件,这个事件会向这个对象的的父级传播,从里到外,直至它被处理或者到达了对象层次的最顶层,即document对象。这个过程就是JavaScript的事件冒泡。 事件冒泡: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用
阅读全文
摘要:JavaScript怎么去字符串的空格?在JavaScript中可以使用replace()方法配合正则表达式来去空格,效率不错。 replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法: stringObject.replace(regexp/subs
阅读全文
摘要:变量是许多编程语言的基本组成部分,也是新手需要学习的第一个也是最重要的概念。JavaScript中有许多不同的变量属性,以及命名变量时必须遵循的一些规则。在JavaScript中,有三个关键字用于声明变量——var、let和const——每个关键字都会影响代码对变量的不同解释。 本教程将介绍什么是变
阅读全文
摘要:JavaScript可以通过Event对象的target事件或srcElement(IE浏览器支持)来判断按钮是否被点击。Event对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 JavaScript判断按钮是否被点击: firfox版: <html> <
阅读全文
摘要:想法 我们来想想有没有其他解决方案,假定当前项目目录结构为 ├── src | ├── config | └── controller ├── node_modules ├── index.js └── package.json 1. 全局变量 第一反应,在 Node 程序里面,我们可以直接通过 g
阅读全文
摘要:一、JavaScript 数据类型 JavaScript 数据类型有两种,分别是基本数据类型和引用数据类型。 基本数据类型 Number String Boolean Undefined Null Symbol (ES6 新增,表示独一无二的值) 引用数据类型 Object Function Arr
阅读全文
摘要:1.错误分为两种: (1)代码错误:这种错误浏览器会报错,可以根据错误类型去排错 (2)逻辑错误:这种错误浏览器不会报错,但是可以使用断点进行调试排错 2.代码错误类型 2.1语法错误: 即写的代码不符合js编码规则 报错为:Uncaught Syntaxerror:信息提示;我们可以根据后面的信息
阅读全文
摘要:find(); find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。 find() 方法为数组中的每个元素都调用一次函数执行: 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined
阅读全文
摘要:这是一组编写代码的10个实践,重点是提高可读性和降低复杂性。我已经编写了20多年的代码。我与17个编写不同语言的团队合作,共建了数百个项目。这些内容包括从简单的博客站点到支持3,000个请求/秒的API,以及畅销应用程序。 根据这些经验,结合我读过的书籍,我已经确定了代码中最重要的东西:可读性。 从
阅读全文
摘要:call,apply简介 首先介绍下call和apply两个方法,这两个方法都是挂载在函数的原型上的,所以所有的函数都可以调用这两个方法。 注意:call()方法的作用和 apply() 方法类似,区别就是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组。 例子: func
阅读全文
摘要:JavaScript 支持 setters 和 getters 已经很长时间了。他们用带有 set 和 get 关键字的简单语法来拦截对象的属性访问和值的修改操作。 const obj = { propValue: 1, get prop() { console.log("Retrieving pr
阅读全文