
JavaScript学习目录
文章平均质量分 60
aaa333qwe
如果心没有方向,到哪里都是流浪。
展开
-
javascript内存管理(堆和栈)及运行机制详解
一、内存基本概念内存的生命周期:1、分配所需的内存2、内存的读与写3、不需要时将其释放所有语言的内存生命周期都基本一致,不同的是最后一步在低级语言中很清晰,但是在像JavaScript 等高级语言中,这一步是隐藏的、透明的。js的内存生命周期:1、定义变量时就完成了内存分配2、使用值的过程实际上是对分配内存进行读取与写入的操作。读取与写入可能是写入一个变量或者...转载 2019-05-29 10:38:56 · 650 阅读 · 0 评论 -
JavaScript的短路运算&&和||
JavaScript的&&和||的短路运算&&可以当做“且”、“and”,||当做“或”、“or”来理解。使用&&的时候,只要有一个为假,则结果为假,只有全部为真的时候,结果才为真。||相反,只要有一个为真,结果就为真,反之,只有全部为假的时候,结果才为假。可以把&&看做是找假运算。找到假,直接停止,将假返回;找到真,则会继续找,直到...转载 2018-02-09 10:34:14 · 325 阅读 · 0 评论 -
HTTP访问控制(CORS)
当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。 比如,站点 http://domain-a.com 的某 HTML 页面通过 的 src 请求 http://domain-b.com/image.jpg。网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。 出于安全原因,浏览器限制从脚本内发起转载 2018-01-08 14:37:56 · 587 阅读 · 0 评论 -
基于 Token 的身份验证
最近了解下基于 Token 的身份验证,跟大伙分享下。很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上。Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个令牌,才能过一些关卡。传统身份验证的方法HTTP 是一种没转载 2018-01-08 14:36:57 · 303 阅读 · 0 评论 -
几个经常用到的字符串的截取
string str="123abc456";int i=3;1 取字符串的前i个字符 str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i); 2 去掉字符串的前i个字符: str=str.Remove(0,i); // or str=str.Substring(i); 3 从右边开始取i个字符转载 2017-12-28 18:39:34 · 205 阅读 · 0 评论 -
前端优化:雅虎35条
英文原版链接,若是觉得本文哪里不好还请指出,以便及时修改目录(分7类,共35条):[内容]尽量减少HTTP请求数[服务器]使用CDN(Content Delivery Network)[服务器]添上Expires或者Cache-Control HTTP头[服务器]Gzip组件[css]把样式表放在顶部[js]把脚本放在底部[css]避免使用CSS转载 2017-11-26 13:30:46 · 465 阅读 · 0 评论 -
体验异步的终极解决方案-ES7的Async/Await
阅读本文前,期待您对promise和ES6(ECMA2015)有所了解,会更容易理解。本文以体验为主,不会深入说明,结尾有详细的文章引用。第一个例子Async/Await应该是目前最简单的异步方案了,首先来看个例子。这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。var sleep = function (time) { return转载 2017-12-13 08:39:19 · 505 阅读 · 0 评论 -
理解Object.defineProperty的作用
对象是由多个名/值对组成的无序的集合。对象中每个属性对应任意类型的值。定义对象可以使用构造函数或字面量的形式:var obj = new Object; //obj = {}obj.name = "张三"; //添加描述obj.say = function(){}; //添加行为除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性或修改原转载 2017-12-12 10:39:32 · 172 阅读 · 0 评论 -
WebSocket与Socket.io
认识HTML5的WebSocket在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API。WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看HTML5的WebSocket API:它可用于客户端、服务器端。而且有一个优秀的第三方API,名转载 2017-12-11 13:55:12 · 1014 阅读 · 0 评论 -
Js apply()使用详解
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1.apply和cal转载 2017-10-14 12:41:09 · 236 阅读 · 0 评论 -
js 各种取整方式及方法
1.直接丢弃小数部分,保留整数部分 a:parseInt(1.5555) b: 0|1.55552.向上取整a: Math.ceil(1.5555)b: (1.5555+0.5).toFixed(0)c: Math.round(1.5555+0.5)3.向下取整 a: Math.floor(1.5555)b: (1.555转载 2017-10-03 08:48:34 · 1543 阅读 · 0 评论 -
深入学习JavaScript: apply 方法 详解(转)——非常好
作者:@keenleung本文为作者原创,转载请注明出处:http://www.cnblogs.com/KeenLeung/archive/2012/11/19/2778229.html目录摘自:http://blog.youkuaiyun.com/qianzai5765638/article/details/6952321我在一开始看到javascript的函数apply和cal转载 2017-10-02 21:40:37 · 275 阅读 · 0 评论 -
ES5 数组方法map
概述map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。语法array.map(callback[, thisArg])参数callback原数组中的元素经过该方法后返回一个新的元素。currentValuecallback 的第一个参数,数组中当前被传递的元素。indexcallback 的第二个参数,数组中当前被传递的元素转载 2017-10-02 20:54:17 · 820 阅读 · 0 评论 -
JavaScript sort() 方法
ort()方法主要是用于对数组进行排序,默认情况下该方法是将数组元素转换成字符串,然后按照ASC码进行排序,这个大家都能理解,但如果数组元素是一个Object呢,转不了字符串,难道不能进行排序?答案当然是否定的,那么我们就来详细探讨下sort()方法的使用语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。sort转载 2017-10-01 15:40:57 · 432 阅读 · 0 评论 -
+new Date 用法解释
转载地址:https://w3ctrain.com/tags/new-Date/JavaScript中可以在某个元素前使用 ‘+’ 号,这个操作是将该元素转换秤Number类型,如果转换失败,那么将得到 NaN。所以 +new Date 将会调用 Date.prototype 上的 valueOf 方法,而根据 MDN ,Date.prototype.value转载 2017-10-09 14:26:06 · 1393 阅读 · 0 评论 -
原生js实现Ajax
一般来说,大家可能都会习惯用JQuery提供的Ajax方法,但是用原生的js怎么去实现Ajax方法呢? JQuery提供的Ajax方法:$.ajax({ url: , type: '', dataType: '', data: { }, success: function(){转载 2017-09-30 11:50:29 · 410 阅读 · 0 评论 -
简单明了区分escape、encodeURI和encodeURIComponent
一、前言讲这3个方法区别的文章太多了,但是大部分写的都很绕。本文试图从实践角度去讲这3个方法。 二、escape和它们不是同一类简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读。编码之后的效果是%XX或者%uXXXX这种形式。其中 ASCII字母、数字、@*/+ ,这几个字符不会被编码,其余的都会转载 2017-09-30 10:15:00 · 292 阅读 · 0 评论 -
js的map文件
什么是source map文件source map文件是js文件压缩后,文件的变量名替换对应、变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下。 比如压缩后原变量是map,压缩后通过变量替换规则可能会被替换成a,这时source map文件会记录下这个mapping的信息,这样的好处就是说,在调试的时候,如果有一些JS报错,那么浏览器会通过解析这个map文件来重新me...转载 2018-02-26 10:51:56 · 3398 阅读 · 0 评论 -
IFrame与window对象(contentWindow)
var detialIframe=document.all("detialIframe"); 此处的IFrame是从document取得的,即作作为document的子对象出现,虽然是文档(document)对象,但由于它是独立的页面,因而拥有自己的事件,拥有自己的窗口对象(contentWindow); Window.detialIframe 或Window.frames(detialIf...转载 2018-02-12 09:56:01 · 790 阅读 · 0 评论 -
ES6、7、8、9、10常用新特性总结(更新中)
1、变量声明let && const,增加新的词法作用域(ES6)2、解构赋值(ES6)数组解构赋值:let[a, b,c] = [1,2,3];//等同于leta =1;letb =2;letc=3;让代码看起来更优美,有种python赋值的既视感。对象的解构赋值:var{ StyleSheet, Text } =React; 等同于v...原创 2019-05-28 19:04:24 · 1679 阅读 · 0 评论 -
史上最全JavaScript数组去重的十种方法(推荐)
这篇文章主要介绍了JavaScript数组去重的十种方法,利用元素的属性和特性进行不同的去重方法,并实例演示如何测试去重超大数组,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。一、前言:我们在实际工作中,或者在面试找工作时,都会用到或者被问到一个问题,那就是“数组如何去重”。是的,这个问题有很多种解决方案,看看下面的十种方式吧!二、数组去重方式大汇总:M...转载 2019-03-22 18:11:25 · 274 阅读 · 0 评论 -
clipboard.js源码解析-复制到剪切板插件
1.前言公司项目有用到clipboard.js,由于好奇心顺手点开了源码看看其究竟是如何实现的,本以为是九曲十八弯错综复杂,其实还是挺容易看懂的,所以就分享下读后感哈哈。本篇读后感分为五部分,分别为前言、使用、解析、demo、总结,五部分互不相连可根据需要分开看。前言为介绍、使用为库的使用、解析为源码的解析、demo是抽取源码的核心实现的小demo,总结为吹水,学以致用。建议跟着源...转载 2019-03-19 09:57:18 · 2011 阅读 · 0 评论 -
JS前端创建html或json文件并浏览器导出下载
https://www.zhangxinxu.com/wordpress/2017/07/js-text-string-download-as-html-json-file/ 侵删 一、HTML与文件下载如果希望在前端侧直接触发某些资源的下载,最方便快捷的方法就是使用HTML5原生的download属性,例如:<a href="large.jpg" download>...转载 2018-12-14 11:08:47 · 4120 阅读 · 1 评论 -
千位分隔符的完整攻略
原文 http://idiotwu.me/mili-formatting-digitals-with-regex/主题 软件开发千位分隔符 [1] 是很常见的需求,但是输入文本千变万化,如何才能准确添加千分符呢?纯整数情况纯整数大概是所有情况里最简单的一种,我们只要正确匹配出千分位就好了。观察上面的数字,我们可以得出千分位的特征是 到字符串终止位有 3n 个数字,不包括起始位。于是可以得到这样的函...转载 2018-05-30 17:02:44 · 6235 阅读 · 0 评论 -
javascript函数式编程(一)
一、引言函数式编程的历史已经很悠久了,但是最近几年却频繁的出现在大众的视野,很多不支持函数式编程的语言也在积极加入闭包,匿名函数等非常典型的函数式编程特性。大量的前端框架也标榜自己使用了函数式编程的特性,好像一旦跟函数式编程沾边,就很高大上一样,而且还有一些专门针对函数式编程的框架和库,比如:RxJS、cycleJS、ramdaJS、lodashJS、underscoreJS等。函数式编程变得越来...转载 2018-06-12 11:29:37 · 275 阅读 · 0 评论 -
判断是否是数组的几种方法
判断objectName是否是数组1、objectName instanceof Array2、objectName.constructor == Array基本数据类型也可以使用此方法。(123).constructor == Number // true11、2判断有误差。 a)在不同 iframe 中创建的 Array 并不共享 prototype b)即使为true,也有可能不是数组。 f...转载 2018-05-15 23:58:36 · 6836 阅读 · 0 评论 -
Ajax,jQuery ajax,axios和fetch的区别
Ajax: ajax自然不必说,最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。Jquery Ajax: 是jQuery框架中的发送后端请求技术,由于jQuery是基于原始的基础上做的封装,所以,jquery Ajax自然也是原始ajax的封装Fetch: fetch号称是AJA...转载 2018-04-27 17:30:36 · 1580 阅读 · 0 评论 -
JS创建对象几种不同方法详解
1、工厂模式弊端:没有解决对象的识别问题,即怎么知道一个对象的类型。 2、构造函数模式 与工厂模式相比: 1、没有显式的创建对象 2、直接将属性和方法赋给了this对象 3、没有return语句 要创建person的实例,必须使用new操作符,以这种方式调用构造函数实际上会经历4个步骤: 1、创建一个新对象 2、将构造函数的作用域赋给新对象 3、执行构造函数中的代码 4、返回新对象 创建自定义的构...转载 2018-05-17 12:05:08 · 193 阅读 · 0 评论 -
JS 中原型和原型链深入理解
作者: erdusegmentfault.com/a/1190000014717972首先要搞明白几个概念:函数(function)函数对象(function object)本地对象(native object)内置对象(build-in object)宿主对象(host object)函数function foo(){ }var foo = function(){ }前者为函数声明,...转载 2018-05-10 15:39:20 · 341 阅读 · 0 评论 -
ES6模块与CommonJS模块的差异
讨论 Node 加载 ES6模块之前,必须了解 ES6模块与 CommonJS模块完全不同。它们有两个重大差异。CommonJS模块输出的是一个值的拷贝,ES6模块输出的是值的引用。CommonJS模块是运行时加载,ES6模块是编译时输出接口。第二个差异是因为 CommonJS 加载的是一个对象(即module.exports属性),该对象只有在脚本运行完才会生成。而 ES6模块不是对象,它的对外...转载 2018-05-09 09:38:27 · 419 阅读 · 0 评论 -
Ajax的优缺点
ajax的优点 1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。 2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。 3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的...转载 2018-05-09 09:13:27 · 236 阅读 · 0 评论 -
js如何判断变量的数据类型?
转自:http://www.cnblogs.com/mofish/p/3388427.htmljs数据类型判断和数组判断这么基础的东西实在不应该再记录了,不过嘛,温故知新~就先从数据类型开始吧 js六大数据类型:number、string、object、Boolean、null、undefinedstring: 由单引号或双引号来说明,如"string"number:什么整数啊浮点数啊都叫数字,你...转载 2018-05-08 22:12:43 · 895 阅读 · 0 评论 -
伪静态技术
http://bbs.itcast.cn/thread-82858-1-1.html?xhw一、何为“伪静态”? 以传智播客bbs论坛为例,这篇帖子的链接地址原本应该是“http://bbs.itcast.cn/forum.php?mod=post&action=newthread&fid=181”,拼接好多参数,是不是看了之后“头疼”?不仅不好看,从seo的角度考虑,...转载 2018-05-08 22:02:22 · 677 阅读 · 0 评论 -
JavaScript 属性描述符
原文地址:http://codethoughts.info/javascript/2015/06/16/javascript-property-descriptors/什么是属性描述符在ES5之前,JavaScript 没有内置的机制来指定或者检查对象某个属性(property)的特性(characteristics),比如某个属性是只读(readonly)的或者不能被枚举(enumerable)...转载 2018-02-28 15:23:45 · 161 阅读 · 0 评论 -
关于Apple设备私有的apple-touch-icon属性详解
以前我们用过favicon在浏览器给网站进行身份标识,用法如下:[html] view plain copy<link href="http://image.feeliu.com/web/favicon.ico" rel="shortcut icon" /> <link href="http://image.feeliu.com/web/favicon.ico" rel="Bo...转载 2018-03-07 14:27:04 · 2100 阅读 · 0 评论 -
getBoundingClientRect的用法
getBoundingClientRect用于获取某个元素相对于视窗的位置集合。集合中有top, right, bottom, left等属性。1.语法:这个方法没有参数。rectObject = object.getBoundingClientRect();2.返回值类型:TextRectangle对象,每个矩形具有四个整数性质( 上, 右 , 下,和左 )表示的坐标的矩形,转载 2017-10-08 17:20:28 · 272 阅读 · 0 评论 -
javascript DOM 编程(读书笔记)
第二章 js的语法1、变量为字符串时,如果字符串中有单引号或者双引号,可以通过 \ (反斜线)对字符串中的引号进行转义。2、布尔类型不是字符串,不能用引号括起来。3、存放数据的首选的方式:将数据保存到对象中。关联数组类似于创建了Array对象的属性。不推荐这种方式。4、用对象代替传统数组的做法意味着可以通过元素的名字而不是下标数字来引用它们。这大大提高了脚本的可读性。5、数值可原创 2017-04-01 16:13:35 · 301 阅读 · 0 评论 -
js报错总结
转载自:http://blog.youkuaiyun.com/fs821031547/article/details/51830499js开发中遇到一些常见的报错信息Uncaught TypeError: undefined is not a function错误类型为TypeError(类型错误);错误产生:你希望调用一个函数,这个值却不是一个函数。错误修复:确保函数名正确。转载 2017-04-25 14:23:48 · 594 阅读 · 0 评论 -
js 报错信息
SyntaxError: Unexpected token当你使用AJAX时有设定dataType :'json' 所以在接回传值的时候会以json格式来解析但回传的资料非json格式就会出现这个错误讯息 UncaughtSyntaxError: Unexpected token 标签: javascriptjsJSON报错Uncaught SyntaxErro原创 2017-04-26 11:19:31 · 725 阅读 · 0 评论 -
typeof和instanceof的区别
typeof和instanceof的区别typeof和instanceof都可以用来判断变量,它们的用法有很大区别:typeof会返回一个变量的基本类型,只有以下几种:number,boolean,string,object,undefined,function;例:alert(typeof(1));//numberalert(typeof("abc"));//st转载 2017-05-09 17:34:10 · 311 阅读 · 0 评论