JS
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
如果再写 for 循环,我就锤自己!
几种遍历方法中for执行最快,它没有任何额外的函数调用栈和上下文。但在实际开发中我们要结合语义话、可读性和程序性能,去选择究竟使用哪种方案。下面来看for,foreach,map,for...in,for...of五种方法现场battle。自我介绍for我是最早出现的一方遍历语句,在座的各位需称我一声爷爷。我能满足开发人员的绝大多数的需求。//遍历数组letarr=[1,2,3];for(leti=0;i<arr.length;i++){...转载 2020-09-03 16:37:23 · 355 阅读 · 0 评论 -
一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」
作者:蓝色的秋风转发链接:https://mp.weixin.qq.com/s/cruL9JGZNZQFrMSrzJJWiQ前言平常在写业务的时候常常会用的到的是 GET, POST请求去请求接口,GET 相关的接口会比较容易基本不会出错,而对于 POST中常用的 表单提交,JSON提交也比较容易,但是对于文件上传呢?大家可能对这个步骤会比较害怕,因为可能大家对它并不是怎么熟悉,而浏览器Network对它也没有详细的进行记录,因此它成为了我们心中的一根刺,我们老是无法确定,关于文件上传到底是.转载 2020-05-10 16:40:46 · 1054 阅读 · 0 评论 -
Javascript面向对象编程(二):构造函数的继承
这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。 function Animal(){ this.species = "动物"; }还有一个"猫"对象的构造函数。 function Cat(name,color){ th...转载 2016-06-27 09:15:21 · 331 阅读 · 0 评论 -
ES6变量的解构赋值
数组的解构赋值基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。以前,为变量赋值,只能直接指定值。let a = 1;let b = 2;let c = 3;ES6 允许写成下面这样。let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值...转载 2017-09-09 10:10:47 · 627 阅读 · 0 评论 -
dva-知识地图
注:如果你使用 dva@2,请先忽略这里的路由部分,待更新。不知大家学 react 或 dva 时会不会有这样的疑惑:es6 特性那么多,我需要全部学会吗? react component 有 3 种写法,我需要全部学会吗? reducer 的增删改应该怎么写? 怎么做全局/局部的错误处理? 怎么发异步请求? 怎么处理复杂的异步业务逻辑? 怎么配置路由? ...这篇文档...转载 2017-09-07 14:37:54 · 1447 阅读 · 0 评论 -
React Router 使用教程
真正学会 React 是一个漫长的过程。你会发现,它不是一个库,也不是一个框架,而是一个庞大的体系。想要发挥它的威力,整个技术栈都要配合它改造。你要学习一整套解决方案,从后端到前端,都是全新的做法。举例来说,React 不使用 HTML,而使用 JSX 。它打算抛弃 DOM,要求开发者不要使用任何 DOM 方法。它甚至还抛弃了 SQL ,自己发明了一套查询语言 GraphQL 。当...转载 2017-09-05 17:28:18 · 463 阅读 · 0 评论 -
async 函数的含义和用法
一、终极解决异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底。它们都有额外的复杂性,都需要理解抽象的底层运行机制。异步I/O不就是读取一个文件吗,干嘛要搞得这么复杂?异步编程的最高境界,就是根本不用关心它是不是异步。...转载 2017-09-05 16:46:13 · 1008 阅读 · 0 评论 -
Thunk 函数的含义和用法
一、参数的求值策略Thunk函数早在上个世纪60年代就诞生了。那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好。一个争论的焦点是"求值策略",即函数的参数到底应该何时求值。var x = 1;function f(m){ return m * 2; }f(x + 5)上面代码先定义函数 f,然后向它传入表达式 x + 5 。请问,这...转载 2017-09-05 15:33:25 · 509 阅读 · 0 评论 -
Generator 函数的含义与用法
异步编程对 JavaScript 语言太重要。JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可。以前,异步编程的方法,大概有下面四种。回调函数 事件监听 发布/订阅 Promise 对象ECMAScript 6 (简称 ES6 )作为下一代 JavaScript 语言,将 JavaScript 异步编程带入了一个全新的阶段。这组系列文章的主题,...转载 2017-09-05 15:26:53 · 541 阅读 · 0 评论 -
利用Comet4J 及时推送消息
简介Comet4J是一个微型的即时推送框架,它分为服务端与客户端两部分,你只要将服务器端(JAR文件,目前仅支持Tomcat6、7)放入WEB-INF\lib,客户端(JavaScript文件)引入到页面,那么你的应用就具备了向客户端推送信息的能力,而你仅需要在服务器端调用Comet4J所提供发送方法,信息就会被主动的推送到客户的浏览器上。 准备工作 下载服务端...转载 2016-11-30 16:45:54 · 449 阅读 · 0 评论 -
如何在 JS 代码中消灭 for 循环
Edit: 在我入职上一家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环。这篇文章是那次分享的总结。至于为什么我提倡避免 for 循环,参考我写的这篇文章。本文并不完美,其中递归的部分其实不应该在生产环境中用的。重点其实应该是怎样用 reduce 和其它高阶函数,至于这些高阶函数底层用的是 while 循环还是 for 循...转载 2018-12-08 11:03:37 · 320 阅读 · 0 评论 -
这一次,彻底弄懂 JavaScript 执行机制
本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我。不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定的几行代码,我们需要知道其输出内容和顺序。因为javascript是一门单线程语言,所以我们可以得出结论: javascript是按照语句出现的顺序执行的 看到这里读者要打人了:我难道不知...转载 2018-12-12 22:53:22 · 237 阅读 · 0 评论 -
看看这些被同事喷的 JS 代码风格你写过多少
现在写代码比以前好多了,代码的格式都有eslint,prettier,babel(写新版语法)这些来保证,然而,技术手段再高端都不能解决代码可读性(代码能否被未来的自己和同事看懂)的问题,因为这个问题只有人自己才能解决。我们写代码要写到下图中左边这样基本上就功德圆满了。注:由于个人水平与眼界的原因,这篇文章中并没有完全覆盖到常见的写代码的不好的习惯,所以你如果觉的有需要补充的,都可以在文...转载 2018-12-17 19:18:26 · 265 阅读 · 0 评论 -
弹幕,你知道是怎样练成的?
天下视频唯弹幕不破说起弹幕看过视频的都不会陌生,那满屏充满着飘逸评论的效果,让人如痴如醉,无法自拔最近也是因为在学习关于canvas的知识,所以今天就想和大家分享一个关于弹幕的故事那么究竟弹幕是怎样炼成的呢? 我们且往下看(look)看什么?看效果效果图已经呈现给各位了,那么是不是有点小激动呢?是的,感慨万分,思绪宁乱,无语凝噎无论以后我们的工作中是否会遇到这样的需...转载 2018-12-17 21:42:04 · 577 阅读 · 0 评论 -
JavaScript 简史:从网景到框架
【CSDN 编者按】从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了。尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够明显看到它在不断地演变:在桌面端、移动设备和服务端 Web App 领域都有所发展。“任何能够用 JavaScript 实现的应用系统,最终都必将用 JavaScript 实现”,Jeff At...转载 2019-05-05 08:22:23 · 1086 阅读 · 0 评论 -
js moment时间戳与时间格式相互转换
var moment = require('moment')获取时间戳 : var res =moment(Date.now(), 'YYYY-MM-DD HH:mm:ss').valueOf();获取格式时间:var res= moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');原创 2019-06-25 17:39:56 · 7917 阅读 · 0 评论 -
JavaScript会是Web开发的未来吗?
世界真奇妙,转了一圈又回到了原点。1事情要从JavaScript说起,这个曾经的屌丝经过多年的奋战,成功逆袭,成为前端之王。(详情参见:《JavaScript 一个屌丝的逆袭》)这奋斗的路上,Applet, Flash, Sliverlight 等无数火热的技术成为冤魂。Java经常扼腕叹息:“真是可惜了我的Applet,要不然前后端编程都用Java,程序员就不用那么辛苦了。...转载 2019-06-24 09:08:01 · 355 阅读 · 0 评论 -
Javascript面向对象编程(三):非构造函数的继承
这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:'中国' };还有一个对象,叫做"医生"。 var Doctor ={ career:'医生'转载 2016-06-27 09:18:17 · 357 阅读 · 0 评论 -
Javascript继承机制的设计思想
我一直很难理解Javascript语言的继承机制。它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承。我花了很多时间,学习这个部分,还做了很多笔记。但是都属于强行记忆,无法从根本上理解。直到昨天,我读到法国程序员Vjeux的解释,才恍然大悟,完全明白了Javas...转载 2016-06-27 09:28:30 · 401 阅读 · 0 评论 -
dva 中的响应编程
思维盲区我最开始学习使用 dva 是从《12 步 30 分钟,完成用户管理的 CURD 应用》开始的,这同时也是 dva 的官方教程。然而因为领悟能力太差,最开始完全没理解。前 4 步还跟得上,第 5 步创建 model 和改造 service 就懵逼了。硬着头皮照抄代码,抄到最后数据没出来,我还不知道自己哪儿错了。大写的尴尬。现在再看这篇教程,发现从第 5 步的 model 开始,d...转载 2018-04-12 10:57:55 · 2990 阅读 · 0 评论 -
ant design pro 页面加载原理及过程,@connect 装饰器
一、概述 以列表页中的标准列表为主 Ant Design Pro 默认通过只需浏览器单方面就可处理的 HashHistory 来完成路由。如果要切换为 BrowserHistory,那在 src/index.js 中也有对应的内容可以直接修改,但需要在后端服务器进行相应路由配置。 二、详述加载过程图 2.1、菜单→路由→组件 在左侧的导航栏点击 列...转载 2018-08-02 13:27:26 · 20425 阅读 · 7 评论 -
跨域问题的前后端解决方案
跨域问题是开发过程中一个比较常见的问题,无论你是前台开发,还是后台开发,可能都处理过这个问题。本文主要是介绍跨域常用的解决方案。什么是跨域?假设有这么一个场景,我有一个网站,在里面有一个显示商品的功能,对应的页面地址是:http://www.myexample.com/page/page-a.html在实现这个页面时,我通过iframe集成了另外一个网站的商品展示功能,对应的页...转载 2018-09-27 10:36:30 · 933 阅读 · 1 评论 -
JS校验金额格式的正则表达式
function checkAmount() { var amount = $("#amount").val();if(amount!= null && amount != ""&&amount!="0"){var exp = /^(([1-9]\d*)|\d)(\.\d{1,2})?$/;if(!exp.test(amount)){...转载 2015-07-16 16:32:12 · 11261 阅读 · 3 评论 -
鼠标划过表格行变色效果JS
<!--鼠标滑过表格行变色效果开始--><script type="text/javascript"> /* 当鼠标移到表格上是,当前一行背景变色 */ $(document).ready(function(){ $(".g-sun-li tr td").mouseover(function(){ ...原创 2015-07-21 09:45:25 · 3263 阅读 · 0 评论 -
JS语言核心
有些东西,对于初学者来说,可能看不懂,我在这里只是想说一下,JS里面有这么个情况,并不是说让你掌握,你只需要大致浏览一下就可以了。// 所有在双斜杠之后的内容都属于注释//变量是表示值的一个符号名字//变量通过var关键字来声明,案例:var x;//声明一个变量x //值可以通过等号赋值给变量x=0; //现在变量x的值为0x //=>0:通...转载 2015-08-14 12:49:09 · 3653 阅读 · 0 评论 -
jquery加选中样式
<script type="text/javascript">$(document).ready(function(){var month = new Number(${month!1});var year = ${year!};$("#yearSelected").text(year);$("#div"+year).hide(); $("#months li").e...原创 2015-11-30 11:47:13 · 613 阅读 · 0 评论 -
Underscore.js 入门
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率。它本身与我们介绍的主题“Backbone”没有半毛钱的关系,因此你可以完全不理会“Backbone”的概念来学习它,或将它单独运用到任何一个页面。(另外,Underscore还可以被使用在Node.js运行环境。) 在学习Underscore之前,你应该先保存它的API地址,因为你...转载 2016-06-24 17:18:04 · 380 阅读 · 0 评论 -
学习Javascript闭包(Closure)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 v...转载 2016-06-24 17:23:33 · 297 阅读 · 0 评论 -
Javascript的this用法
this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如, function test(){ this.x = 1; }随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。下面分四种情况,详细讨论this的用法。情况一:纯粹的函数调用这是...转载 2016-06-27 09:07:32 · 286 阅读 · 0 评论 -
Javascript 面向对象编程(一):封装
学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javascript高级程序设计(第二...转载 2016-06-27 09:12:27 · 415 阅读 · 0 评论 -
JavaScript 有多灵活?
JavaScript 是一种灵活的语言,表达力极强,我来举一个例子,保证让很多人大吃一惊。本文受到了 Kyle Simpson 的文章《Iterating ES6 Numbers》的启发。首先,在 Number.prototype 对象上,部署一个 add 方法。Number.prototype.add = function (x) { return this + x;...转载 2016-06-28 10:56:01 · 507 阅读 · 0 评论 -
undefined与null的区别
大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。有点奇怪的是,JavaScript语言居然有两个表示"无"的值:undefined和null。这是为什么?一、相似性在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。var a = und...转载 2016-06-28 09:31:51 · 296 阅读 · 0 评论 -
jQuery的deferred对象详解
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。每个版本都会引入一些新功能。今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax。为了实现它,jQuery的全部ajax代码都被改写了。但是,它比较抽象,初学者很难掌握,网上的教程...转载 2016-06-27 14:18:32 · 343 阅读 · 0 评论 -
jQuery设计思想
jQuery是目前使用最广泛的javascript函数库。据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。对于网页开发者来说,学会jQuery是必要的。因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很轻松地做出许多复杂的效果。虽然jQuery上手简单,比其他库容易学会,但是要全面掌...转载 2016-06-27 10:49:00 · 309 阅读 · 0 评论 -
如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错。举例来说,请考虑以下情况。现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; }你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,...转载 2016-06-27 10:13:32 · 327 阅读 · 1 评论 -
React 入门实例教程
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。由于 React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。所以,越来越多的人开始关注和使用,认为它可能是将来 Web 开发的主流工具...转载 2017-09-27 08:29:07 · 428 阅读 · 0 评论