自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js 深拷贝

//使用递归封装深拷贝函数function deepClone(obj){ var result = Array.isArray(obj)? [] : {} for(var key in obj){ if(obj.hasOwnProperty(key)){ if(typeof obj[key] === "object"){ ...

2019-05-10 10:49:21 145

原创 浏览器的重绘和回流

重绘:当元素样式的改变不影响布局时,浏览器会使用重绘的方式来更新元素的变化,这种改变只会在UI层的重新像素绘制,这种方式的对浏览器开销比较小。常见的重绘操作有:改变元素颜色 改变元素背景色 more …回流:又名“重排”,当元素的尺寸、结构或者触发了某个属性的改变,会导致浏览器重新渲染,这种操作会造成回流。由于回流会导致浏览器重新计算,然后在重新渲染布局,这种操作对浏览器的开销很大。...

2019-05-09 16:27:38 168

原创 解决跨域的几种主流方式

为了安全起见,目前所有的浏览器都采用同源策略,就是同源策略,虽然挡住了恶意攻击,但是同样也阻碍了我们正常的前后端交互,为了解决跨域问题,下面总结一下几种主流的解决跨域的方案。1. JSONP基本原理就是客户端通过<script>标签的跨域能力,向服务器发送数据请求,并且挂载callback回调函数名,后端返回 回调函数名包裹数据 的字符串, 前端拿到函数字符串直接调用。参...

2019-05-09 14:44:17 407

原创 JsonP的原理

我们都知道目前浏览器出于安全的考虑全部采用同源策略,这就导致跨域问题。Jsonp是一种解决跨域的方案,首先我们知道在跨域的情况下去服务器请求数据的时候会出现跨域的问题,jsonp的原理是什么呢?html中有几个种标签是具有src属性的,<imag><script><iframe>这几个标签都具有跨域的能力,可以直接向服务器请求数据并展示在页面中。js...

2019-05-08 15:37:17 142

原创 JavaScript高级程序设计——数据类型

js的数据类型很简单,相对于类C语言的语言来说。js是弱类型语言,也是动态类型的语言。js的数据类型有5个简单数据类型和一个复杂类型。5——Number、String、Boolean、Undefined、Null1——Object需要注意的一点:typeof是判断数据类型的运算符,其中function——函数object——对象或者null一、Undefined类型...

2018-09-11 10:02:53 171

原创 JavaScript高级程序设计——script标签(含解决跨域方法JSONP的原理)

&lt;script&gt;这个标签应该是前端最早也是最熟悉的标签,正是有了这个标签我们js才可以运行在浏览器中,这么说吧,早的浏览器就是静态html标签,不认识也不能编译js代码,怎么办呢,这时候script标签就应运而生了。我今天就来回顾一下关于script的几个关键点。1、js引入html的有两种方式,一种是嵌入式,一种是外部引用。这些就太基础,不多说了。2、我们通常将scrip...

2018-09-06 10:18:38 581

原创 JavaScript高级程序设计——开篇前言

作为半路出家的程序员,准确说是前端程序员,基础向来是我薄弱的地方,在前端圈子里被奉为红宝书的《JavaScript高级程序设计》这本书还是有必要细细研究一下的,这本书虽然早就已经入手,但是一直没有耐心和时间研究一番,只是没事随手翻翻而已,我今天做了一个决定,就是重头来过一下,《JavaScript高级程序设计》我们开始吧。我一定能坚持下去,同样是为自己之后的职业生涯打好基础。好吧,我们开始吧。。。...

2018-09-05 13:07:50 863

原创 git 常用命令理解,fetch、rebase、merge

之前我对git的使用并不重视,因为之前都是自己开发代码,没有多人合作过,就是简单的git pull , git push。。。。。但是在多人团队合作的时候,这种做简单的操作会造成很多问题,可能会造成代码合并弄丢的风险,程序猿的圈里流传着这样的名言,“不会Git就是耍流氓”。不懂得同学细细想想。我先说一下自己日常工作中提交代码的步骤:1.  git add XXX  将修改代码添加到本地...

2018-08-31 10:38:52 1138

原创 ES6系列之let和const

这个使用比较多,我都知道js没有块级作用域,只有全局作用域和函数作用域,let可以形成块级作用。var a = [];for (var i = 0; i &lt; 10; i++) { a[i] = function () { console.log(i); };}a[6](); // 10var a = [];for (let i = 0; i &lt; 10...

2018-08-17 09:59:04 130

原创 经验篇之vue中传值以及赋值问题

作为Vue非资深的学习者,在工作中使用vue的时候还是遇见的很多所谓的坑,打算总结一下;就在昨天PM找到我,给我看了一个bug,很是头疼的是,我看了半天代码就是看不出有什么问题,但是实现起来就是报错。先看一下场景:这是详情页的tab栏,这里的大概逻辑就是从别的页面跳转到详情页并且需要选中虚拟服务器组这个tab栏,代码的逻辑是先获取详情页信息Detail,然后把detail这个对象以prop...

2018-08-17 09:46:38 10506

原创 ES6系列之变量的解构赋值

今天开始ES6系列,今天看别人的代码没看懂,甚是难受呀,ES6还是要细化一下。先做个引子,看一下一下代码,刚开始就把me干蒙了。export const signin = (userName, password) =&gt; $fetch('post','signin', {userName,password})上面代码就是用的es6的方式写的,有比较常用的箭头函数,还有就是比较高级的变...

2018-08-10 15:07:33 138

转载 vue项目中关于CSS样式【-webkit-box-orient: vertical】打包后丢失问题

   最近在做vue项目的时候页面处理多行文本样式时用到了-webkit-box-orient: vertical这个属性,本地跑项目没问题,但是打包放到服务器后发现这个属性丢失了。如下图:  .topic-info { margin: 5px 10px; font-size: .8em; text-indent: 2em; display...

2018-08-09 16:10:35 1234

原创 理解js递归算法

递归算法是一种看似简单,但逻辑性比较复杂的算法。一般我们看的递归代码,很复杂的问题3/4行就可以解决的,但是背后的逻辑还是很复杂的。递归的特点总结:    1、自调用,就是在函数里面调用自己    2、最关键的一点,就是一个递归必须明确结束条件,不然就会陷入无穷的死循环    3、缺点,就是消耗大量内存下面我们总结一下常见的递归题目,(会逐步更新,面试的时候经常问道,尤其是BA...

2018-07-19 16:01:44 7767 1

原创 理解js中的闭包

这里我们先复习一下Js的作用域的感念,JS中没有块级作用域,像c++、java等语言,一个花括号{}就是一个作用域,但是在js中没有块级作用域,它只有全部作用域和局部作用域,这里的局部作用域又称为函数作用域。这就导致函数中的变量,在函数外部是读取不到的。但是某种特殊场合中我们还必须用到函数中的变量,这是闭包就应运而生了。言归正传,开始闭包。闭包听起来很复杂很神秘的概念,但是只要理解了核心的概念...

2018-07-19 11:32:43 116

原创 关于js中this指向的理解

理解JavaScript中this的指向问题之前,首先要记住一句话“this的最终指向始终是调用的它的对象”情况一:函数的直接调用function hi(){ alert(this)}hi()// 此时this的指向是window理解这段代码,通常我们定义全局变量实际上是为window添加属性,如         var a=1;  =&gt;&gt;window...

2018-07-18 16:40:27 230

原创 VUE中解决不能检测数组中基本数据类型的方法及$set的使用方法

在Vue中当你修改数组中一个基本类型的数值时,页面不会响应,也不会更新数据,但是元素是对象的时候可以检测并发生响应。如下例子,中数组arr的第一个元素再点击后重新赋值时页面没有响应。&lt;template&gt; &lt;div&gt; {{arr}} &lt;button @click="changeEle"&gt;更改数组[0]的值&lt;/butto...

2018-02-25 18:13:01 1394

原创 webpack配置文件

webpack默认支持commonJS模块,webpack的配置文件是按照CommonJS的方式编写module.exports={ //入口文件 entry: { main: "" }, //出口文件 output: { filename: "" }}...

2018-02-24 11:04:26 349

转载 Webpack、Browserify、seajs 、require的不同

seajs / require : 是一种在线"编译" 模块的方案,相当于在页面上加载一个 CMD/AMD 解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。browserify / webpack : 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。没用过browserify,这里以webpack为例。首先,它是预编译的,不需要在浏览器中...

2018-02-24 10:16:40 626

原创 总结AMD、CMD、CommonJS、UMD的区别

自己看文章理解的,可能不太准确,就是帮助自己记忆AMD、CMD、CommonJS是三种JavaScript模块规范一、CommonJS是一种后端js规范,是nodeJs遵循的一种编写js模块的规范,(是由nodejs将其发扬光大的),同时也开启了js全栈的大门1、定义模块 根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被...

2018-02-24 09:38:22 2780

原创 JavaScript算法之归并排序

代码主要使用到了递归的方式实现,将数组一层一层的分化,在一层一层的比较合并。

2017-08-22 09:59:47 195

空空如也

空空如也

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

TA关注的人

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