自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记住这两点,彻底终结原型链吧

1.概念__proto__对象特有 指向上层(创建自己的那个构造函数)的pototype 因此对象可以从 prototype 中继承属性和方法prototype函数特有 用于存储要共享的属性和方法constructor函数特有,定义在prototype里面 通过new创建实例时,该实例便继承了prototype的属性和方法2. 既是函数也是对象Object:既是对...

2019-05-07 16:33:07 124

原创 图解 Map、Reduce 和 Filter 数组方法

map、reduce 和 filter 是三个非常实用的 JavaScript 数组方法,赋予了开发者四两拨千斤的能力。我们直接进入正题,看看如何使用(并记住)这些超级好用的方法!Array.map()Array.map() 根据传递的转换函数,更新给定数组中的每个值,并返回一个相同长度的新数组。它接受一个回调函数作为参数,用以执行转换过程。let newArray = oldArr...

2019-05-07 10:23:23 230

原创 原生Ajax的用法

这里主要分析XMLHttpRequest对象,下面是它的一段基础使用: var xhr = new XMLHttpRequest(); xhr.open('post','www.xxx.com',true) // 接收返回值 xhr.onreadystatechange = function(){ if(x...

2019-05-07 10:17:05 536

原创 这几个概念你可能还是没搞清require、import和export

为什么有模块概念理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持”类”(class),所以也就没有”模块”(module)了。require时代Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。原始写法模块就是实现特定功能的一组方法。 只要把不...

2019-05-07 10:11:29 371

原创 数据库

mysql数据库创建表- 数据类型 + 整数类型 int + 浮点类型 double + 日期类型 date/timestamp + 字符串类型 char varchar * 可变varchar 不可变是char * 空间换时间- 首先足够用,其次尽量小 create table 表名( id ...

2019-05-07 09:44:36 154

原创 JavaScript 面向对象编程

JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念:类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生;实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiaoming、xiaoho...

2019-05-07 09:40:58 102

原创 JS 实现双向数据绑定

近几年前端技术栈真是发展的太迅速了,从以前的针对dom操作的框架如jquery,ext.js等框架逐步过渡到当前的mvvm模式,让前端开发者将注意力从dom操作逐渐解脱出来,专注于逻辑的实现,个人认为开发效率至少提升了1倍,mvvm模式的一个核心便是数据的双向绑定。什么是数据的双向绑定?双向数据绑定上面说的是在vue框架中数据双向绑定的应用,个人认为这个特性很赞,是大幅提升开...

2019-05-07 09:32:57 115

原创 JavaScript 的 4 种数组遍历方法: for VS forEach() VS for/in VS for/of

这篇文章将详细介绍以下 4 种循环语法的区别:for (let i = 0; i < arr.length; ++i) arr.forEach((v, i) => { /* ... */ }) for (let i in arr) for (const v of arr)语法使用for和for/in,我们可以访问数组的下标,而不是实际的数组元素值:for (let...

2019-05-07 09:29:36 151

原创 JavaScript中的浅拷贝与深拷贝

前言文章开始之前,让我们先思考一下这几个问题:为什么会有浅拷贝与深拷贝 什么是浅拷贝与深拷贝 如何实现浅拷贝与深拷贝好了,问题出来了,那么下面就让我们带着这几个问题去探究一下吧!如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过以下↓数据类型在开始了解 浅拷贝 与 深拷贝 之前,让我们先来回顾一下 JavaScript 的数据类型(可以参考这里 Jav...

2019-05-07 09:16:25 77

原创 Javascript 中继承汇总

前言在阅读《Javascript高级程序设计》后的一些感想,顺便记录自己的学习,也希望能帮助到人,这就是我的初衷了。如文中有任何问题,也希望大家指正,以免误人子弟。关于js的继承,我感觉更多的是一种探索得到的结果。因为像Java,C++ 等都是有明确的 class 定义类。但是在 Javascript 中的类和函数是无法区分的,我们似乎也只能定规范,比如构造函数模式,非严格规定:第一个字母...

2019-05-06 17:28:52 100

原创 前端应该知道的web登录

还记得在上家公司做全干工程师的时候,基本从页面写到运维,当时做登录这块的时候,被session、cookie、token各种概念差点整蒙圈了,上网查询相关概念,发现很多人都是类似的疑惑,比如:来了字节跳动之后,前端很少接触HTTP请求之后的事情,而且登录相关的SDK封装的很好,所以这篇文章就简单的学习记录一下。为什么会有登录这回事首先这是因为HTTP是无状态的协议,所谓无状...

2019-05-05 12:44:26 190

原创 6个提升程序员幸福感的 JavaScript 小技巧

本文主要介绍一些JS中用到的小技巧,可以在日常Coding中提升幸福度,将不定期更新~1. 类型强制转换1.1 string强制转换为数字可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用a !== a来判断是否为NaN,因为NaN !== NaN'32' * 1 // 32'ds...

2019-05-05 12:41:42 192

原创 「前端练习场」原生 JavaScript 手写各种 数组 API

前言JavaScript 中的数组类型提供了很多原生方法供我们使用,本文会 模拟实现 一些常用的数组 API。「前端练习场」 将会持续更新,不同于之前的 【前端进阶之路】 和 【从头到脚】 这两个系列,练习场 主要侧重于基础知识的练习巩固,大家对这个系列有好的建议也可以在评论区和我交流

2019-05-05 12:34:41 191

原创 基于vue-cli3.0构建功能完善的移动端架子

基于vue-cli3.0构建功能完善的移动端架子,主要功能包括webpack 打包扩展 css:sass支持、normalize.css、_mixin.scss、_variables.scss vw、rem布局 跨域设置 eslint设置 cdn引入 路由设计、登录拦截 axios、api 设计 vuex状态管理项目地址: vue-cli3-H5demo地址: zh...

2019-05-05 12:27:12 699

原创 最全的less笔记,半小时学会!

1. less 简介less是CSS的预编译器,可以扩展CSS语言(当然也兼容CSS),可以定义变量、混合、函数等等,让CSS代码更易维护和扩展 less与传统写法相比:less后缀为" .less " less中的注释有两种// 这种注释不会编译到CSS文件/* 这种注释会编译到CSS文件*/div { font-size: 14px;}复制代码less需要编...

2019-05-05 12:22:18 335

原创 使用webpack提升vue应用的4种方式

webpack是开发Vue单页应用必不可少的工具,它能管理复杂的构建步骤,并且优化你的应用大小和性能, 使你的开发工作流更加简单。在这篇文章中,我将解释使用webpack提升你的Vue应用的4种方式,包括: 单文件组件 优化Vue构建过程 浏览器缓存管理 代码分离 关于vue-cli如果你在使用 vue-cli 提供的模板来构建你的应用,那么webp...

2019-05-05 12:13:19 193

原创 JavaScript中的垃圾回收和内存泄漏

前言程序的运行需要内存。只要程序提出要求,操作系统或者运行时就必须供给内存。所谓的内存泄漏简单来说是不再用到的内存,没有及时释放。为了更好避免内存泄漏,我们先介绍Javascript垃圾回收机制。在C与C++等语言中,开发人员可以直接控制内存的申请和回收。但是在Java、C#、JavaScript语言中,变量的内存空间的申请和释放都由程序自己处理,开发人员不需要关心。也就是说Javascr...

2019-05-05 12:08:54 106

原创 剖析 React 源码:先热个身

这是我的 React 源码解读课的第一篇文章,首先来说说为啥要写这个系列文章:现在工作中基本都用 React 了,由此想了解下内部原理 市面上 Vue 的源码解读数不胜数,但是反观 React 相关的却寥寥无几,也是因为 React 源码难度较高,因此我想来攻克这个难题 自己觉得看懂并不一定看懂了,写出来让读者看懂才是真懂了,因此我要把我读懂的东西写出来这个系列文章预计篇数会超过十篇,R...

2019-05-05 12:06:15 134

原创 JavaScript 的 this 指向问题深度解析

JavaScript 中的this指向问题有很多博客在解释,仍然有很多人问。上周我们的开发团队连续两个人遇到相关问题,所以我不得不将关于前端构建技术的交流会延长了半个时候讨论this的问题。与我们常见的很多语言不同,JavaScript 函数中的this指向并不是在函数定义的时候确定的,而是在调用的时候确定的。换句话说,函数的调用方式决定了this指向。JavaScri...

2019-05-05 12:02:53 113

原创 JavaScript中的async/await

异步的JavaScript从未如何简单!过去段时间,我们使用回调。然后,我们使用promises。现在,我们有了异步功能函数。异步函数能够使得(我们)编写异步JavaScript更加容易,但是,它自带一套陷阱,对初学者很不友好。在这个由两部分组成的文章中,我想分享下你需要了解的有关异步函数的内容。【PS:另一部分暂不打算翻译】异步功能异步功能函数包含async关键词。你可以在正常的...

2019-05-05 11:51:51 120

原创 力荐 35 个最好用的 Vue 开源库!

无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包。对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠咖啡度日也会成为家常便饭。所幸的是,随着 Vue.js 和 Nuxt.js 社区的不断壮大,每天都会出现一些很好的软件包。在下文中,我们将推荐一些非常好用的 Vue 和 Nuxt 软件包。Vue.jsVue.js 是一个非常易用的渐进式 Jav...

2019-04-26 20:28:06 93

原创 12 个 JS 技巧

大部分教程不会告诉你的 12 个 JS 技巧在这篇文章中,将分享 12 个非常有用的 JavaScript 技巧,可以帮助你写出简洁且高性能的代码。1. 过滤唯一值ES6 引入了 Set 对象和延展(spread)语法…,我们可以用它们来创建一个只包含唯一值的数组。const array = [1, 1, 2, 3, 5, 5, 1]const uniqueArray = ...

2019-04-26 20:09:41 75

原创 KOA2框架原理解析和实现

什么是koa框架?koa是一个基于node实现的一个新的web框架,它是由express框架的原班人马打造的。它的特点是优雅、简洁、表达力强、自由度高。它更express相比,它是一个更轻量的node框架,因为它所有功能都通过插件实现,这种插拔式的架构设计模式,很符合unix哲学。koa框架现在更新到了2.x版本,本文从零开始,循序渐进,讲解koa2的框架源码结构和实现原理,展示和详解ko...

2019-04-26 19:54:42 128

原创 Node.js+Express+Mysql 实现增删改查

前言这次选用nodejs+express+mysql 使用http作为客户端,express框架搭建服务端,从而实现数据的增删改查。这篇文章可以算作上篇文章的升级篇,加入了和数据库的交互。安装node 直接去官网下载选择下载即可 nodejs.org/en/download…cnpm install express //express框架安装复制代码cnpm instal...

2019-04-26 19:38:46 704

原创 JavaScript 执行机制

这一次,彻底弄懂 JavaScript 执行机制本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序。因为javascript是一门单线程语言,所以我们可以得出结论:javascript是按照语句出现的...

2019-04-26 19:28:21 297

原创 对象和包装类

JS对象对象可理解为我们生活中的对象,你有对象吗,没有可以创建一个,她有名字,年龄,外观的特点,即属性;也有一些特长,即方法。实际对象是一组没有特定顺序的值,每个属性和方法都有一个名字,每个名字都和一个值一一对应。根据面向对象设计,我们可以创建任意多个具有相同属性和方法的对象。学对象的重要意义是封装一些数据以作他用。对象的特点封装 继承 多态 具有特征和行为对象的创建...

2019-04-26 19:18:52 93

原创 原型、原型链

一. 普通对象与函数对象JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明var o1 = {}; var o2 =new Object();var o3 = new f1();function f1(){}; var f2 = function(){};var f3 = ...

2019-04-26 19:18:45 62

原创 原型和原型链二

四. __proto__JS 在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__ 的内置属性,用于指向创建它的构造函数的原型对象。对象 person1 有一个 __proto__属性,创建它的构造函数是 Person,构造函数的原型对象是 Person.prototype ,所以:person1.__proto__ == Person.prototype请看下...

2019-04-26 19:18:38 66

原创 JavaScript作用域和预解析

作用域JavaScript中作用域的概念和C语言一样, 也分为全局作用域和局部作用域 全局作用域 在任何地方都可以访问到的就是全局作用域 在script标签中或一个独立js文件中定义的就是全局作用域 <script> var num = 10; // 该变量是全局作用域 function test() { // 在函数中访问全局作用域...

2019-04-26 19:18:32 77

原创 JavaScript数组和函数

数组的基本概念JavaScript中数组的概念和C语言几乎一样, 都是指一组有序数据集合 不同的是由于JavaScript是弱语言, 所以JavaScript的数组中可以存放不同类型的数据 不同的是JavaScript中的数组是引用类型, 提供了很多便捷的属性和方法, 让我们使用起来更加简单定义数组var arr1=new Array(); var arr2=new Array(...

2019-04-26 19:18:23 160

原创 JavaScript数据及数据类型

JavaScript数据类型概述和C语言一样, 作为程序员我们最关心的是内存中的动态数据, 因为我们写的程序就是在内存中的 和C语言一样,程序在运行过程中会产生各种各样的临时数据, 为了方便数据的运算和操作, JavaScript也对这些数据进行了分类, 提供了丰富的数据类型 在JS中一共有六种数据类型 String 字符串(基本数据类型) Number 数值(基本数据类型) B...

2019-04-26 19:18:03 166

空空如也

空空如也

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

TA关注的人

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