![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
文章平均质量分 68
梦颖飞燕
这个作者很懒,什么都没留下…
展开
-
JavaScript数据类型
ECMAScript中,变量可以存放两种类型(简单数据类型和引用类型)的值,即原始值和引用值。原始值是存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。引用值是存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处。如果一个值是引用类型,那么它的存储空间将从堆中分配。如图。一、ECMAScript中有五种简单数据类型:undefined、原创 2017-03-28 15:13:14 · 483 阅读 · 0 评论 -
面试题---实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
转载 2017-09-15 21:00:08 · 721 阅读 · 1 评论 -
数组去重的五种方式
法一:indexOf方法 //一层循环,创建新数组 function unique(arr){ var newArr = []; for (var i=0;i<arr.length;i++ ) { if ( newArr.indexOf(arr[i]) == -1 )//判断目标数组中在原数组里是否存在 { newArr.push(arr[i]); }原创 2017-09-07 20:42:26 · 499 阅读 · 0 评论 -
词法作用域
作用域域表示的就是 范围, 即 作用范围. 就是一个名字在什么地方可以被使用, 什么时候不能使用.在 js 中采用词法作用域所谓的 词法( 代码 )作用域, 就是代码在编写过程中体现出来的作用范围. 代码一旦写好, 不用执行,作用范围就已经确定好了. 这个就是所谓词法作用域.在 js 中词法作用域规则:函数允许访问函数外的数据.整个代码结构中转载 2017-06-07 21:06:10 · 280 阅读 · 0 评论 -
闭包--整理
(文章说明:关于对闭包的解释,有人总结的很好,我就直接转啦;其余部分为自己整理)一、什么是闭包?JavaScript中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。原理:所谓“闭包”,就是在构造函数体内定义另外的函数作为目标对象的方法函数,而这个对象的方法函数反过来引用外层函数体中的临时变量。这使得只转载 2017-08-23 22:04:50 · 299 阅读 · 0 评论 -
封装cookie
一、设置cookie function setCookie( key ,value , timer ){ var oDate = new Date(); oDate.setDate( oDate.getDate() + timer ); document.cookie = key + "=" + value + ';expires=' + oDate.toGMTStri原创 2017-08-24 10:12:37 · 194 阅读 · 0 评论 -
《JavaScript语言精粹》笔记(3)--函数
1.函数对象 2.函数字面量 3.调用4.参数原创 2017-06-13 21:02:05 · 376 阅读 · 0 评论 -
JavaScript中_proto_和prototype的区别和关系?
_proto_(隐式原型)与prototype(显式原型)1.是什么显式原型 explicit prototype property:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。Note:通过Function.prototype.bind方法构造出来的函数是个例外,它没有prototype属性。NOTE Function o转载 2017-08-23 16:58:02 · 359 阅读 · 0 评论 -
JS异步编程的方式
一、回调函数这是异步编程最基本的方法。假定有两个函数f1和f2,后者等待前者的执行结果。 f1(); f2();如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。 function f1(callback){ setTimeout(function () { // f1的任务代码转载 2017-08-22 22:13:50 · 227 阅读 · 0 评论 -
JavaScript高级选择器querySelector和querySelectorAll
querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的。他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素。目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。querySelector和querySelectorAll的参数须转载 2017-08-23 15:40:05 · 457 阅读 · 0 评论 -
JavaScript的垃圾回收机制与内存管理
一、垃圾回收机制—GCJavaScript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。javascript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃转载 2017-09-08 08:52:29 · 385 阅读 · 0 评论 -
JavaScript内存泄露及解决方案详解
一、什么是内存泄露内存泄露是指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。在C++中,因为是手动管理内存,内存泄露是经常出现的事情。而现在流行的C#和Java等语言采用了自动垃圾回收方法管理内存,正常使用的情况下几乎不会发生内存泄露。浏览器中也是采用自动垃圾回收方法管理内存,但由于浏览器垃圾回收方法有bug,会产生内存泄露。二、引起垃圾收集语言内存泄露的主要原因是不转载 2017-09-08 10:52:40 · 1493 阅读 · 0 评论 -
js中的事件委托或是事件代理详解
概述:那什么叫事件委托呢?它还有一个名字叫事件代理,JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。那这是什么意思呢?网上的各位大牛们讲事件委托基本上都用了同一个例子,就是取快递来解释这个现象,我仔细揣摩了一下,这个例子还真是恰当,我就不去想别的例子来解释了,借花献佛,我摘过来,大家认真领会一下事件委托到底是一个什么原理转载 2017-10-20 09:16:22 · 147 阅读 · 0 评论 -
如何解决AJAX 的缓存
解决AJAX 的缓存的方法1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0");2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache");3、在 Ajax 的 URL 参数后加上 "?fresh=" + Ma转载 2017-10-26 20:20:06 · 820 阅读 · 0 评论 -
理解DOM事件流的三个阶段
本文主要解决两个问题:什么是事件流DOM事件流的三个阶段流流的概念,在现今的JavaScript中随处可见。比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流。都是流的一种生动体现。至于流的具体概念,我们采用下文的解释:用术语说流是对输入输出设备的抽象。以程序的角度说,流是具有方向的数据。通通连起来——无处不在的转载 2017-10-23 22:00:39 · 421 阅读 · 0 评论 -
懒加载和预加载
转载地址:http://www.jianshu.com/p/4876a4fe7731一、懒加载1.什么是懒加载?懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次,俗称占位图),只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。2.为什么要使用懒转载 2017-10-14 21:14:11 · 589 阅读 · 0 评论 -
JavaScript之模块化编程
前言模块是任何大型应用程序架构中不可缺少的一部分,模块可以使我们清晰地分离和组织项目中的代码单元。在项目开发中,通过移除依赖,松耦合可以使应用程序的可维护性更强。与其他传统编程语言不同,在当前JavaScript里,并没有提供原生的、有组织性的引入模块方式。本文就来探讨一下目前的常见几种模块化解决方案。1.对象字面量表示法对象字面量可以认为是包含一组键值对的对象,每一对键和转载 2017-10-23 08:32:48 · 250 阅读 · 0 评论 -
性能优化之AJAX
Ajax是高性能JavaScript的基础。Ajax,从最基本的层面来说,是一种与服务器通信而无需重载页面的方法。数据可以从服务器获取或发送给服务器。最常用的三种用于向服务器请求数据的方法:①XHR。②动态脚本注入。③multipart XHR。XML HttpRequest 这种方式,这里就不多说了。点这里可以了解。这里记录一下要注意的转载 2017-10-23 08:09:50 · 336 阅读 · 0 评论 -
JS制作简单的三级联动
用javascript制作的一个简单三级联动,非常简单实用 代码如下: 省: 请选择 市: 区: //声明省 var pres转载 2017-10-22 21:28:26 · 3647 阅读 · 0 评论 -
js几种生成随机颜色方法
<!DOCTYPE html><head lang="en"> <meta charset="UTF-8"> <button id="btn1">调用第一种 <button id="bnt2">调用第二种 <button id="btn3">调用第三种转载 2017-10-22 20:21:57 · 4306 阅读 · 0 评论 -
数字、数组和字符串的常用方法
1. 数字的一些重要方法:(1) toString() 把数字变为字符串,可以接受参数,表示进制(2) toFixed(x) 保留x位小数,并转为字符串(3) Math.random() [0,1]的随机数,不接受参数 要想返回大于0-1范围的数,用下面公式:Math.floor( Math.random() * 总数 + 第一个值原创 2017-10-21 11:16:35 · 893 阅读 · 0 评论 -
document.write和innerHTML的区别
1. ducument.write使用举例html文档:html>head>meta charset=utf-8" /> title>无标题title> script src="index.js">script>head>body>div >Hello Worlddiv>div id="box">Hello Worlddiv>body>html>12原创 2017-10-20 08:27:12 · 556 阅读 · 0 评论 -
JS延迟加载的方式
延迟加载JavaScript,也就是页面加载完成之后再加载javascript,也叫on demand(按需)加载,一般有一下几个方法:1. 动态创建DOM方式head append script tag[javascript] view plain copywindow.onload = function () { set转载 2017-08-22 15:35:46 · 380 阅读 · 0 评论 -
当你在浏览器地址栏输入一个URL后回车,浏览器做了什么?
以下是一个大概流程:1. 浏览器向DNS服务器查找输入URL对应的IP地址。2. DNS服务器返回网站的IP地址。3. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接4. 浏览器获取请求页面的html代码。5. 浏览器在显示窗口内渲染HTML。6. 窗口关闭时,浏览器终止与服务器的连接。这其中最有趣的是第1步和第2步(域名解析)。我们输入的网址(域名)是IP地址的一转载 2017-08-21 16:54:16 · 9860 阅读 · 0 评论 -
ECMAScript对象--整理
1.概念:对象是无特定顺序的值的数组。理解:基于代码的名词(人、地点、事物)表示。对象定义放在一个函数--构造函数中。2.特点:封装、多态、继承3.构成:属性和方法,方法中存放的是函数。4.创建对象:用new关键字。eg:var oObject = new Object();5.对象类型:内置对象:Math和Global。内置对象其实也是本地对象。本地对象:15原创 2017-05-19 14:41:29 · 376 阅读 · 0 评论 -
JS检测浏览器版本
var userAgent = navigator.userAgent, rMsie = /(msie\s|trident.*rv:)([\w.]+)/, rFirefox = /(firefox)\/([\w.]+)/, rOpera = /(opera).+version\/([\w.]+)/, r转载 2017-05-18 22:00:50 · 228 阅读 · 0 评论 -
JavaScript事件
1.事件:js和HTML之间的交互是通过用户和浏览器操作页面时引发的事件来处理的。2.JavaScript可以处理的事件类型为:鼠标事件、键盘事件、HTML事件鼠标事件的事件处理函数为:(4组){click,dblclick},{mousedown,mouseup},{mouseover,mouseout},{mousemove}(1)click:用户单击鼠标按钮或按下回车键时触发 d...原创 2017-03-24 11:00:29 · 270 阅读 · 0 评论 -
JavaScript中相等操作符的类型转换
不同类型的值用==操作符比较后的结果toNumber和toPrimitive方法是内部的文字描述及补充:一、首先看双等号前后有没有NaN,如果存在NaN,一律返回false。二、再看双等号前后有没有布尔,有布尔就将布尔转换为数字。(false是0,true是1)三、接着看双等号前后有没有字符串, 有三种情况:1、对方是对象,对象使用toS原创 2017-05-24 15:37:10 · 311 阅读 · 0 评论 -
Ajax中的get和post两种请求方式的异同
Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别.1、 get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所转载 2017-04-13 19:43:06 · 338 阅读 · 0 评论 -
JSON
主要从下面几个部分展开:概念、语法、解析与校验、格式约定1.概念: 它是存储和交换文本信息的语法,一种结构化的数据表达方式,类似于XML 采用键值对进行组织 任何语言都可以对其进行解析2.语法: (1)语法规则 书写格式为:键 / 值 eg:"name" : "小红"原创 2017-03-16 21:52:09 · 190 阅读 · 0 评论 -
《锋利的jQuery》笔记---jQuery中的Ajax
jQuery中的ajax:1.load()方法:能载入远程HTML代码并插入到DOM中。它是jQuery中最为简单和常用的ajax方法。通常用来从服务器上获取静态的数据文件。 (1)只需要将要加载的文件的URL作为参数传递给load()方法即可。eg:$("#wrap").load("test.html");如果只加载某页面的某些元素,使用load()方法的URL参数达到目的。原创 2017-03-22 09:53:52 · 518 阅读 · 0 评论 -
原型对象
一、理解原型对象创建的每一个函数都有一个prototype属性,它指向这个函数的原型对象。利用原型模式创建的方法和属性是被所有实例所共享的。function Person(){}Person.prototype.name="dwqs";Person.prototype.age=20;Person.prototype.sayName=function(){ alert(t转载 2017-03-30 21:56:36 · 233 阅读 · 0 评论 -
JavaScript初学者应注意的七个细节
每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任意类型的变量,这门脚本语言看起来很简单,然而想要写出优雅的代码却是需要不断积累经验的。本文利列举了JavaScript初学者应该注意的七个细节,与大家分享。(1)简化代码 JavaScript定义对象和数组非常简单,我们想要创建一个对象,一般是这样写的: 12转载 2017-03-29 15:50:20 · 258 阅读 · 0 评论 -
《JavaScript语言精粹》笔记--函数的调用
函数除了声明时定义的形式参数外,还接收两个附加的参数:this和arguments。参数this的值取决于调用的模式。在JavaScript中有四种调用模式:(1)方法调用模式(2)函数调用模式(3)构造器调用模式(4)apply调用模式。(1)方法调用模式当一个函数被保存为对象的一个属性时,我们称它为一个方法。当一个方法被调用时,this被绑定到该对象(换句话说,this到对象的原创 2017-06-08 21:36:08 · 278 阅读 · 0 评论 -
ECMASript继承
使用继承的原因:可以减少对象初始化的时间和内存消耗继承的特点:1.儿子继承爸爸,儿子可以使用爸爸的方法和属性 2.儿子的改变不影响爸爸原型和原型链的区别:原型:每个对象都连接到一个原型对象。原型对象的任何属性和方法都会传递给那个类的所有实例。 原型链:原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链 原型链利用原型这种功能来实现继承。 原型->原型链->继承继承方法类继承方法有3原创 2017-05-19 15:29:56 · 198 阅读 · 0 评论 -
JS实现DOM树的遍历
二叉 DOM 树的遍历[javascript] view plain copyfunction Tree() { var Node = function(key){ this.key = key; this.left = null;转载 2017-08-10 21:43:05 · 3871 阅读 · 0 评论 -
Array.prototype.slice.call()方法详解
在很多时候经常看到Array.prototype.slice.call()方法,比如Array.prototype.slice.call(arguments),下面讲一下其原理:1、基本讲解1.在JS里Array是一个类 slice是此类里的一个方法 ,那么使用此方法应该Array.prototype.slice这么去用 slice从字面上的意思很容易理解就是截取(当然你不转载 2017-08-10 16:38:07 · 237 阅读 · 0 评论 -
找出数组的重复元素
法一:将一个数组作为另一个数组的下标 function duplicates(arr){ //result数组用来存放结果,count数组用来存放arr中每个元素的个数 var result = [],count = []; //遍历arr,如果以arr中元素为下标的count元素已存在,则该count元素加1,否则设置为1 for (var i=0;i<arr.l原创 2017-08-10 15:31:44 · 400 阅读 · 0 评论 -
原生js实现数组去重的5种方法
遍历数组法(√)最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在在数组的方法“indexOf” 是ECMAScript5方法,IE8以下的不支持,需要多写一些兼容低版本浏览器代码,代码如下:function unique1(array){ var n=[];//一个新的临时数组 for(var i=0;iarra转载 2017-08-10 15:17:33 · 1798 阅读 · 0 评论 -
JS中return false,return,return true的用法及区别
首先return作为返回关键字,他有以下两种返回方式1.返回控制与函数结果语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果2.返回控制无函数结果语法为:return;在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个元素,页面会跳转到该元素href属性指定的页. 例如:链接转载 2017-08-17 10:53:36 · 936 阅读 · 0 评论