![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端前沿
面向对象的夜猫子
抽象,继承,封装,多态。
展开
-
什么是javascript封装,封装的方法有几种
封装可以被定义为对对象的内部数据表现形式和实现细节进行隐藏。通过封装可以强制实施信息隐藏。在JavaScript中,并没有显示的声明私有成员的关键字等。所以要想实现封装/信息隐藏就需要从另外的思路出发。我们可以使用闭包的概念来创建只允许从对象内部访问的方法和属性,来达到封装的要求。转载 2017-09-17 11:38:20 · 1405 阅读 · 0 评论 -
JS中的算法与数据结构——集合(Set)
愉快的假期告一段落,继续我们的学习~集合(Set)同数学中所学的一样,集合(Set)是由一组无序但彼此之间又有一定关系性的成员构成,每个成员在集合中只能出现一次,不同于我们之前说的字典,链表之类的,它是一种包含了不同元素的数据结构(集合中的元素称为成员),从其定义中我们可以看出它具有两个很重要的特征:首先,集合中的成员是无序的,其次,集合中的成员是不相同的,即集合中不存在相同的成员。实转载 2017-10-10 10:41:22 · 278 阅读 · 0 评论 -
ES6必知必会 —— Symbol、Set和Map
Symbol1.Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种分别是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object);2.Symbol 值通过Symbol函数生成,可以作为对象的属性名使用,保证不会与其他属性名产生冲突;let s转载 2017-10-10 10:44:33 · 337 阅读 · 0 评论 -
JS语法: 由++[[]][+[]]+[+[]] = 10 ?引发的问题
解释:为什么 ++[[]][+[]]+[+[]] = 10原文:为什么 ++[[]][+[]]+[+[]] = 10[0]是一个带有0成员的数组,[0][0]是取它的第1个成员,所以必是0。用了[0][0] = '1'虽然改了第1成员的值,但下一个[0][0]是独立的取成员值的表达式,所以得到0数字值。[] = 1是右值不是iterable(可迭代的转载 2017-10-11 09:07:19 · 1152 阅读 · 0 评论 -
JavaScript的十个小技巧
每一门语言都有一些奇技淫巧,JS也不例外,一直想总结这么篇文章,我包括一些新手,都会有这么一个疑问,每次面对一张空白的页面,不知从何下手,没有思路,高手有的是设计模式,但是在这里讲一些设计模式,我可能不够格,这些书籍都有可以自己去翻阅,我能给的就是,总结我写代码的时候,会优化的一些技巧实用篇1.立即执行我为什么把立即执行放在第一个,因为一般做业务的时候都会有一个入口函数,比如一下这种格转载 2017-10-10 10:59:13 · 229 阅读 · 0 评论 -
聊聊cookie的那些事
前言cookie在web开发中时常被用到,也是面试官喜欢问的一块技术,很多人或许和我以前一样,只知其一不知其二,谈起web存储,都会答localStorage、sessionStorage、还有就是cookie,然后一些区别啊什么的倒背如流,cookie的优缺点也了然于心,但是当你看完这块内容之后,你会对cookie有另外独到的见解,希望以后问到这块技术,或者项目中遇到这个你都会处理,我在实习转载 2017-10-10 10:54:55 · 214 阅读 · 0 评论 -
javascript匿名函数的巧妙应用
匿名函数最早是LISP语言引入,后面发展为不仅是函数式语言所特有,在解释型语言和编译型语言中也越来越多匿名函数的身影,或许有个更潮的名字叫 lambda 表达式。闭包多是用匿名函数实现,在匿名函数中引用了外部变量,那这个匿名函数就形成了闭包。由于闭包和匿名函数之间有着千丝万缕的关系,所以经常会把两者搞混淆。其实在 Js 中匿名函数、闭包、自执行函数、回调函数、箭头函数,这些概念似乎相同,却又不转载 2017-10-10 10:48:32 · 258 阅读 · 0 评论 -
JavaScript中的设计模式之代理模式
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。虚拟代理虚拟代理是把一些开销很大的对象,延迟到真正需要它的时候才去创建执行图片懒加载//图片加载let imageEle = (function(){ let node = docum转载 2017-10-10 10:46:44 · 145 阅读 · 0 评论 -
详解 CORS 跨域资源共享
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS转载 2017-10-24 08:45:57 · 194 阅读 · 0 评论 -
JavaScript 字符串转数字:陷阱(示例)
有很多种方式可以将字符串转为数字。我能想到的方式就至少有5种!parseInt(num); // 默认方式 (没有基数)parseInt(num, 10); // parseInt 使用基数 (十进制)parseFloat(num) // 浮点型Number(num); // Number 构造函数~~num // 按位取转载 2017-10-24 08:58:11 · 212 阅读 · 0 评论 -
谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
引言最近刚到公司不到一个月,正处于熟悉项目和源码的阶段,因此最近经常会看一些源码。在研究一个项目的时候,源码里面用到了HTTP的长轮询。由于之前没太接触过,因此LZ便趁着这个机会,好好了解了一下HTTP的长长短短。了解的方式主要都是LZ在网络上获取的,这里只是谈一下LZ对于这四种叫法最直观的理解。如果你之前不懂的话,可以帮你普及一下,如果你之前就懂得话,可以互相对照一下。以转载 2017-10-24 08:59:55 · 223 阅读 · 0 评论 -
《深入理解ES6》阅读笔记 --- Promise与异步编程
在异步编程概念已经普及的今天,我们依然要谈一谈它,对于我们做前端代码的意义。当你通过Ajax请求数据使用回调函数来获取数据时,这就是一种异步编程。转载 2017-10-10 10:33:21 · 489 阅读 · 0 评论 -
实践中的前后端分离
实践中的前后端分离相信前后端分离这个词,早已流传甚广,大家一些自己的理解,但可能有些人的观点有稍许偏差:我们要搞 SPA,全AJAX,那才是前后端分离了。什么是前后端分离我们来聊聊什么是前后端分离。先来看一张WEB系统前后端架构模型图。WEB系统前后端架构模型从图中可以清晰的看到,前后端的界限是按照浏览器和服务器的划分。那么我们经常会发现一些问题:模转载 2017-10-10 10:31:03 · 798 阅读 · 0 评论 -
JavaScript是如何实现继承的(六种方式)
大多OO语言都支持两种继承方式: 接口继承和实现继承 ,而ECMAScript中无法实现接口继承,ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现,下文给大家技术js实现继承的六种方式,需要的朋友参考下转载 2017-09-17 11:57:11 · 217 阅读 · 0 评论 -
javascript之多态
javascript每日必学之多态,介绍了有关多态的相关内容,感兴趣的小伙伴们可以参考一下转载 2017-09-17 17:56:37 · 441 阅读 · 0 评论 -
ES6:JavaScript中的类Class
ES5中的近类结构ES5以及之前的版本,没有类的概念,但是聪明的JavaScript开发者,为了实现面向对象,创建了特殊的近类结构。ES5中创建类的方法:新建一个构造函数,定义一个方法并且赋值给构造函数的原型。ES6 class类ES6实现类非常简单,只需要类声明。推荐 babel在线测试ES6 测试下面的代码。类声明如果你学过java,那么一定会非转载 2017-09-18 09:02:06 · 484 阅读 · 0 评论 -
移动端页面适配———多方案解析
在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一款的新机型。对于移动端适配,不同的公司、不同的团队有不同的解决方案。我在项目中也用了一部分解决方案,也看到了一些解决方案,对比下,总结一些自己的理解,希望对各位有帮助,找到最适合你们项目的适配方案。转载 2017-09-26 09:13:06 · 2078 阅读 · 0 评论 -
Vue的发现和理解
1. 性能优化:相对于计算属性computed、方法methods、观察watch,优先考虑使用计算属性实现,因为计算属性会缓存它的值,只有当计算属性的相关依赖发生改变时才会重新求值;尽可能最大化地让Vue复用可用的元素,即,在用key管理可利用元素的地方看是否有其它更快速的替代方案;适当地选择v-if和v-show,当元素被渲染后,需要经常被切换时,使用v-show;否则,使用v-if;转载 2017-09-26 13:31:00 · 567 阅读 · 0 评论 -
css3自定义图形的实现效果
为了节省时间,下面图形都采用的一个标签,可以是块元素也可以是行内元素,不过行内元素需要加上“display:block;”,唯一不同的是,在此用了不同的类名来区别,相关类名我放在了标题的后面,以便大家对应查看。1、正方形(square):CSS Code: .square { width: 100px; height:100px; background: #转载 2017-09-27 09:14:41 · 659 阅读 · 0 评论 -
webpack:从入门到真实项目配置
该文使用的 Webpack 版本为 3.6.0,本文分两部分。第一步是简单的使用 webpack,第二部分通过一个真实项目来配置 webpack,没有使用任何的 CLI,都是一步步配置直到完成生产代码的打包。这是本项目对应的仓库,每个小节基本都对应了一次转载 2017-09-19 08:51:09 · 430 阅读 · 0 评论 -
发布-订阅模式
发布-订阅模式转载 2017-09-19 09:02:57 · 334 阅读 · 0 评论 -
发布前必须排查的Web安全
关于Web安全的问题,是一个老生常谈的问题,作为离用户最近的一层,我们大前端确实需要把手伸的更远一点。我们最常见的Web安全攻击有以下几种XSS 跨站脚本攻击CSRF 跨站请求伪造clickjacking 点击劫持/UI-覆盖攻击下面我们来一一分析XSS 跨站脚本攻击跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading转载 2017-10-18 13:20:36 · 447 阅读 · 0 评论 -
《深入理解ES6》阅读笔记 --- 用模块封装代码
不知不觉《深入理解ES6》阅读笔记就写到了最后一篇,完结之后可能会开启另外的一个系列,分享自己的知识点,让阅读到的人有一点点的收获,以及自己的成长。最后一篇主要是来写一写用模块封装代码的事情,回顾历史,从最早的立即执行函数,再到require.js,以及commonjs,今天我们面对的是语言标准给我们带来的模块化方案。如果说模块,我们应该可以从字面的意思上来看,这是一种可以自动运行在严格模式下并且转载 2017-10-10 09:47:57 · 314 阅读 · 0 评论 -
WebAssembly 实践:如何写代码
本文不讨论 WebAssembly 的发展,只是一步一步地教你怎么写 WebAssembly 的各种 demo。文中给出的例子我都放在 GitHub 中了(仓库地址),包含了编译脚本和编译好的可执行文件,只需再有一个支持 WebAssembly 的浏览器就可以直接运行。配置开发调试环境安装编译工具略。 参考官方 Developer’s Guide 和 Advanced转载 2017-10-24 11:56:49 · 348 阅读 · 0 评论