javascript
yuanyuanispeak
这个作者很懒,什么都没留下…
展开
-
深入理解 JavaScript 异步系列(5)—— async await
第一部分,ES7 中引入 async-await原文地址 http://www.cnblogs.com/wangfupeng1988/p/6532734.html 未经作者允许,不得转载~前面介绍完了Generator的异步处理,可以说是跌跌撞撞,经过各种基础介绍和封装,好容易出了一个比较简洁的异步处理方案,学习成本非常高————这显然不是我们想要的!因此,还未发布的 ES转载 2017-06-16 11:42:40 · 287 阅读 · 0 评论 -
new关键的深刻认识
题目点评考察对new关键的深刻认识,是否对前端知识有专研,如果没有专研的人,肯定说创建了一个对象,恭喜你面试官知道你是小菜鸟来的,这次面试基本上没有太大的希望了。一定要对new过程的4个步骤非常清楚,这样才能深深地抓住面试官的心!题目解析先看代码 [javascript] view plain copyvar Func=function(){ }; var fu...转载 2017-06-13 17:43:02 · 347 阅读 · 0 评论 -
Javascript 创建对象方法的总结
Javascript 创建对象方法的总结 最近看了一下《Javascript高级程序设计(第三版)》,这本书很多人都推荐,我也再次郑重推荐一下。看过之后总得总结一下吧,于是我选了这么一个主题分享给大家。 使用Javascript创建对象的方法有很多,现在就来列举一下: 1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打转载 2017-06-13 19:32:39 · 276 阅读 · 0 评论 -
深入理解 JavaScript 异步系列(1)——基础
深入理解 JavaScript 异步系列(1)——基础前言2014年秋季写完了《深入理解javascript原型和闭包系列》,已经帮助过很多人走出了 js 原型、作用域、闭包的困惑,至今仍能经常受到好评的留言。很早之前我就总结了JS三座大山这个概念(虽然没有到处宣扬),前两座(原型、作用域)已经基本讲明白,而第三座(异步)也应该做一个总结。于是,2017年初春,我花转载 2017-06-14 09:51:56 · 312 阅读 · 0 评论 -
深入理解 JavaScript 异步系列(2)—— jquery的解决方案
第一部分,jQuery-1.5 之后的 ajax本地址 http://www.cnblogs.com/wangfupeng1988/p/6515779.html 未经允许不得转载~$.ajax这个函数各位应该都比较熟悉了,要完整的讲解 js 的异步操作,就必须先从$.ajax这个方法说起。想要学到全面的知识,大家就不要着急,跟随我的节奏来,并且相信我。我安排的内容,肯定都是有用的,对主转载 2017-06-14 13:42:10 · 419 阅读 · 0 评论 -
跨站脚本攻击XSS
跨站脚本攻击XSS跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。一个简单的留言板我们有个页面用于允许用户发表留言,然后在页面底部显示留言列表DOCTYPE html>htm转载 2017-05-22 20:07:33 · 340 阅读 · 0 评论 -
XSS危害——session劫持
XSS危害——session劫持在跨站脚本攻击XSS中简单介绍了XSS的原理及一个利用XSS盗取存在cookie中用户名和密码的小例子,有些同学看了后会说这有什么大不了的,哪里有人会明文往cookie里存用户名和密码。今天我们就介绍一种危害更大的XSS——session劫持。神马是session想明白session劫持及其危害,首先要搞清楚什么是sessio转载 2017-05-22 20:08:07 · 491 阅读 · 0 评论 -
跨站请求伪造CSRF
CSRF是Cross Site Request Forgery的缩写,乍一看和XSS差不多的样子,但是其原理正好相反,XSS是利用合法用户获取其信息,而CSRF是伪造成合法用户发起请求。在XSS危害——session劫持中我们提到了session原理,用户登录后会把登录信息存放在服务器,客户端有一个用户标识存在cookie中,只要用户不关闭浏览器或者退出登录,在其有效期内服务器就会把这个浏转载 2017-05-22 20:08:40 · 290 阅读 · 0 评论 -
vue-cli入门(二)——项目结构
前言在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli项目,那么接下来,我们来梳理一下vue-cli项目的结构。总体框架一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可。vue-cli项目总体结构文件结构细分转载 2017-06-21 09:25:54 · 1616 阅读 · 0 评论 -
vue.js路由vue-router(二)——路由进阶
导航钩子导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等。在开始之前,我们先来写两个路由新建html,引入vue.js及vue-router.jshtml lang="en">head> meta charset="UTF-8"> title>路由title> script src="j转载 2017-06-22 16:28:29 · 702 阅读 · 0 评论 -
深入理解javascript原型和闭包(10)——this
深入理解javascript原型和闭包(10)——this接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。 其实,this的取值,分四种情况。我们来挨个看一下。在此再强调一遍一个非常重要的知识点:在函数中this到底取何值,是在函数真正被调用执行的转载 2017-03-20 13:43:21 · 249 阅读 · 0 评论 -
js中的事件委托或是事件代理详解
起因:1、这是前端面试的经典题型,要去找工作的小伙伴看看还是有帮助的;2、其实我一直都没弄明白,写这个一是为了备忘,二是给其他的知其然不知其所以然的小伙伴们以参考;概述:那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们转载 2017-06-13 09:16:47 · 349 阅读 · 0 评论 -
defer和async的详细区别
看过javascript高级程序设计的人,在javascript高级程序设计里,应该看到了介绍了有关defer和async的区别,可是比较浅显,而且也说得不是很清楚。下面我们来通过图片来详细了解下dfer和async的区别。 下面来看看这三句话:1. 没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前转载 2017-06-13 09:57:47 · 304 阅读 · 0 评论 -
基于webpack的前端工程化开发之多页站点篇(一)
前言碎语在最初接触webpack的较长一段时间里,我(也可能很多人)都觉得webpack是专为单页应用而量身打造的,比如webpack+React、webpack+vue等,都可以近乎完美的解决各种资源的依赖加载、打包的问题。甚至css都是打包在js里去动态添加到dom文档中去。后来想想,这么好的工具这么好的方案为什么不能用在website(普通的web站点,姑且叫做website转载 2017-07-06 16:43:07 · 836 阅读 · 0 评论 -
vue-cli + webpack 多页面实例应用
vue-cli + webpack 多页面实例应用关于vue.jsvue.js是一套构建用户界面的 轻型的渐进式前端框架。它的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。使用vue可以给你的开发带来极致的编程体验。关于vue-cliVue-cli是vue官方提供的一个命令行工具(vue-cli),可用于快速搭建大型单页应用转载 2017-07-06 17:33:54 · 772 阅读 · 0 评论 -
深入理解 JavaScript 异步系列(3)—— ES6 中的 Promise
第一部分,Promise 加入 ES6 标准原文地址 http://www.cnblogs.com/wangfupeng1988/p/6515855.html 未经作者允许不得转载!从 jquery v1.5 发布经过若干时间之后,Promise 终于出现在了 ES6 的标准中,而当下 ES6 也正在被大规模使用。本节展示的代码参考这里本节内容概述写一段传统转载 2017-08-16 10:10:16 · 448 阅读 · 0 评论 -
从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理
前言龙抬头过后,三月份进入第三周了。今日早读文章由@撒网要见鱼授权分享。正文从这开始~最近发现有不少介绍JS单线程运行机制的文章,但是发现很多都仅仅是介绍某一部分的知识,而且各个地方的说法还不统一,容易造成困惑。因此准备梳理这块知识点,结合已有的认知,基于网上的大量参考资料,从浏览器多进程到JS单线程,将JS引擎的运行机制系统的梳理一遍。展现形式:由于是属于系统梳理型,就没有由浅入深了,而是从头到...转载 2018-04-27 11:26:10 · 397 阅读 · 0 评论 -
JavaScript 垃圾回收
JavaScript 垃圾回收在公司经常会听到大牛们讨论时说道内存泄露神马的,每每都惊羡不已,最近精力主要用在了Web 开发上,读了一下《JavaScript高级程序设计》(书名很唬人,实际作者写的特别好,由浅入深)了解了一下JavaScript垃圾回收机制,对内存泄露有了一定的认识。和C#、Java一样JavaScript有自动垃圾回收机制,也就是说执行环境会负责转载 2017-06-13 11:53:51 · 420 阅读 · 0 评论 -
JavaScript性能优化
JavaScript性能优化如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度。 这种情况下决定程序速度的另一个重要因素就是代码本身。在这里我们会分门别类的介绍JavaScript性能优化的技巧,并提供相应的测试用例,供大家在自己使用的浏览器上验证, 同时会对特定的JavaScript背景知识做一定的介绍。目录转载 2017-05-23 18:24:15 · 835 阅读 · 0 评论 -
毫秒必争,前端网页性能最佳实践
毫秒必争,前端网页性能最佳实践你愿意为打开一个网页等待多长时间?我一秒也不愿意等。但是事实上大多数网站在响应速度方面都让人失望。现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应速度,对自己的网站更有信心。最佳实践最佳实践我们引用的转载 2017-05-23 18:25:01 · 853 阅读 · 0 评论 -
vue-cli入门(一)——项目搭建
前言vue-cli作为一款mvvm框架语言(vue)的脚手架,集成了webpack环境及主要依赖,对于项目的搭建、打包、维护管理等都非常方便快捷。在开始项目之前,建议先熟悉vue.js基本语法。安装Node环境1.安装node.js在node.js官网下载稳定版本下载node.js下载完成后点击安装,安装过程很简单,一直next即可,转载 2017-06-21 09:23:44 · 1260 阅读 · 0 评论 -
Javascript 严格模式详解
一、概述除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全转载 2017-08-31 09:50:20 · 346 阅读 · 0 评论 -
Mockjs
为什么要用Mockjs?开发时,后端还没有写好接口,前端只能写静态模拟数据。将模拟数据写在js文件里面,数据太多了,看的眼花缭乱。后端完成后接口后,我们前端又要挨个去改api的url。写模拟数据太麻烦.需要收集很多的资源,图片,地址,随机数等;安装 mock axios安装 mock axios1npm install mockjs ax原创 2017-11-10 16:14:40 · 398 阅读 · 0 评论 -
虚拟 DOM 可以做什么
React 和 Ember 都使用了虚拟DOM来提升页面的刷新速度。为了理解其如何工作,让我们先讨论一下几个概念:更新DOM的花费时间非常长当我们使用 JavaScript 来改变页面的时候,浏览器不得不做一些工作来找到需要的DOM节点,并且做出类似这样的改变:document.getElementById('myId').appendChild(myNewNode);1转载 2017-10-26 14:01:47 · 550 阅读 · 0 评论 -
从输入URL到页面加载的过程
大纲对知识体系进行一次预评级为什么说知识体系如此重要?梳理主干流程从浏览器接收url到开启网络请求线程多进程的浏览器多线程的浏览器内核解析URL网络请求都是单独的线程更多开启网络线程到发出一个完整的http请求DNS查询得到IPtcp/ip请求五层因特网协议栈从服务器接收到请求到对应后台接收到请求负载均衡后台的处理后台和前台的http交互http报文结构cookie以及优化gzip压缩长连接与短连...转载 2018-04-27 16:35:26 · 615 阅读 · 0 评论 -
浅谈 JavaScript 中定义变量时有无 var 声明的区别
浅谈 JavaScript 中定义变量时有无 var 声明的区别前段时间回答了一个关于定义变量时使用关键字 var 与否的区别,总结回顾一下。1.在函数作用域内 加 var 定义的变量是局部变量,不加 var 定义的就成了全局变量。使用 var 定义:var a = 'hello World'; function bb(){ var a = 'hello Bi转载 2016-07-27 16:07:29 · 665 阅读 · 0 评论 -
深入理解javascript原型和闭包(12)——简介【作用域】
深入理解javascript原型和闭包(12)——简介【作用域】提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句:再比如for语句:所以,我们在编写代码的时候,不要在“块”里面声明变量,要在代码的一开始就声明好了。以避免发生歧义。如: 其实,你光知转载 2017-03-20 14:24:21 · 283 阅读 · 0 评论 -
深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】
深入理解javascript原型和闭包(13)-【作用域】和【上下文环境】上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定。下面我们将按照程序执行的顺序,一步一步把各个上下文环境加上。另外,对上下文环转载 2017-03-20 14:36:18 · 277 阅读 · 0 评论 -
深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】
深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】先解释一下什么是“自由变量”。在A作用域中使用的变量x,却没有在A作用域中声明(即在其他作用域中声明的),对于A作用域来说,x就是一个自由变量。如下图如上程序中,在调用fn()函数时,函数体中第6行。取b的值就直接可以在fn作用域中取,因为b就是在这里定义的。而取x的值时,就需要到另一个作转载 2017-03-20 14:44:11 · 267 阅读 · 0 评论 -
深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。00 上下文环境:可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着,但转载 2017-03-20 15:06:30 · 350 阅读 · 0 评论 -
深入理解javascript原型和闭包(15)——闭包
深入理解javascript原型和闭包(15)——闭包前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础。至于“闭包”这个词的概念的文字描述,确实不好解释,我看过很多遍,但是现在还是记不住。但是你只需要知道应用的两种情况即可——函数作为返回值,函数作为参数传递。第一,函数作为返回值如上代码,bar函数作为返回值,赋值给f1变量。执行转载 2017-03-20 15:07:45 · 390 阅读 · 0 评论 -
深入理解javascript原型和闭包(11)——执行上下文栈
深入理解javascript原型和闭包(11)——执行上下文栈继续上文的内容。执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。其实这是一个压栈出栈的过程——执行上下文栈。如下图: 可根据以下代码来详细介绍上转载 2017-03-20 14:10:25 · 346 阅读 · 0 评论 -
深入理解javascript原型和闭包(9)——简述【执行上下文】下
深入理解javascript原型和闭包(9)——简述【执行上下文】下继续上一篇文章(http://www.cnblogs.com/wangfupeng1988/p/3986420.html)的内容。上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据:变量、函数表达式——变量声明,默认赋值为undefined;this——赋值;函数声明——赋值;转载 2017-03-20 13:21:50 · 271 阅读 · 0 评论 -
深入理解javascript原型和闭包(1)——一切都是对象
深入理解javascript原型和闭包(1)——一切都是对象“一切都是对象”这句话的重点在于如何去理解“对象”这个概念。——当然,也不是所有的都是对象,值类型就不是对象。 首先咱们还是先看看javascript中一个常用的函数——typeof()。typeof应该算是咱们的老朋友,还有谁没用过它?typeof函数输出的一共有几种类型,在此列出:转载 2017-03-20 09:18:03 · 354 阅读 · 0 评论 -
深入理解javascript原型和闭包(2)——函数和对象的关系
上文(理解javascript原型和作用域系列(1)——一切都是对象)已经提到,函数就是对象的一种,因为通过instanceof函数可以判断。var fn = function () { };console.log(fn instanceof Object); // true对!函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样转载 2017-03-20 09:18:43 · 327 阅读 · 0 评论 -
深入理解javascript原型和闭包(3)——prototype原型
深入理解javascript原型和闭包(3)——prototype原型既typeof之后的另一位老朋友!prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名。如果它还是您的新朋友,我估计您也是javascript的新朋友。 在咱们的第一节(深入理解javascript原型和闭包(1)——一切都是对象)中说道,函数也是一种对象。他也是属性的集合,你转载 2017-03-20 09:19:15 · 284 阅读 · 0 评论 -
深入理解javascript原型和闭包(4)——隐式原型
深入理解javascript原型和闭包(4)——隐式原型注意:本文不是javascript基础教程,如果你没有接触过原型的基本知识,应该先去了解一下,推荐看《javascript高级程序设计(第三版)》第6章:面向对象的程序设计。上节已经提到,每个函数function都有一个prototype,即原型。这里再加一句话——每个对象都有一个__proto__,可成为隐式原型。转载 2017-03-20 09:19:47 · 232 阅读 · 0 评论 -
深入理解javascript原型和闭包(5)——instanceof
深入理解javascript原型和闭包(5)——instanceof又介绍一个老朋友——instanceof。对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等。这个时候就转载 2017-03-20 09:20:43 · 259 阅读 · 0 评论 -
深入理解javascript原型和闭包(6)——继承
深入理解javascript原型和闭包(6)——继承为何用“继承”为标题,而不用“原型链”?原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现这个不同。 javascript中的继承是通过原型链转载 2017-03-20 09:21:19 · 359 阅读 · 0 评论 -
深入理解javascript原型和闭包(7)——原型的灵活性
深入理解javascript原型和闭包(7)——原型的灵活性在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完)。压个啥样,就得是个啥样,不能随便动,动一动就坏了。而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子。 首先,对象属性可以随时改动。对象或者函数,刚开始ne转载 2017-03-20 13:07:05 · 243 阅读 · 0 评论