js代码

关于JS堆栈与拷贝

一笑奈何 提交于 2020-01-06 03:55:45
1、 栈(stack) 和 堆(heap)    stack 为自动分配的内存空间,它由系统自动释放;而 heap 则是动态分配的内存,大小不定也不会自动释放。        2、基本类型和引用类型    基本类型: 存放在栈内存中的简单数据段,数据大小确定,内存空间大小可以分配。   5种基本数据类型有 Undefined、Null、Boolean、Number 和 String ,它们是直接按值存放的,所以可以直接访问。    引用类型: 存放在堆内存中的对象,变量实际保存的是一个指针,这个指针指向另一个位置。每个空间大小不一样,要根据情况开进行特定的分配。   当我们需要访问引用类型(如 对象,数组,函数 等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中取得所需的数据。 3、传值与传址   前面之所以要说明什么是内存中的堆、栈以及变量类型,实际上是为下文服务的,就是为了更好的理解什么是“浅拷贝”和“深拷贝”。   基本类型与引用类型最大的区别实际就是 传值与传址的区别 。测试用例: 1 var a = [1,2,3,4,5]; 2 var b = a; 3 var c = a[0]; 4 alert(b);//1,2,3,4,5 5 alert(c);//1 6 //改变数值 7 b[4] = 6; 8 c = 7; 9 alert(a[4]);//6 10

js实现2048小游戏

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-06 00:47:37
这是学完javascript基础,编写的入门级web小游戏 游戏规则:在玩法规则也非常的简单,一开始方格内会出现2或者4等这两个小数字,玩家只需要上下左右其中一个方向来移动出现的数字,所有的数字就会想滑动的方向靠拢,而滑出的空白方块就会随机出现一个数字,相同的数字相撞时会叠加靠拢,然后一直这样,不断的叠加最终拼凑出2048这个数字就算成功。但是我们的程序没有终点。 一、HTML部分 1 <body> 2 <!-- 分数行 --> 3 <p id="scorePanel">Score:<span id="score"></span></p> 4 <div id="gridPanel"> 5 <!-- 背景格 --> 6 <div id="g00" class="grid"></div> 7 <div id="g01" class="grid"></div> 8 <div id="g02" class="grid"></div> 9 <div id="g03" class="grid"></div> 10 11 <div id="g10" class="grid"></div> 12 <div id="g11" class="grid"></div> 13 <div id="g12" class="grid"></div> 14 <div id="g13" class="grid"><

js Function.call

こ雲淡風輕ζ 提交于 2020-01-05 05:11:35
提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments Arguments 该对象代表正在执行的函数和调用它的函数的参数。 [function.]arguments[n] 参数 function:选项。当前正在执行的 Function对象的名字。 n:选项。要传递给 Function对象的从0开始的参数值索引。 说明 Arguments 是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象。 Arguments 是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由 arguments[ n ] 来访问对应的单个参数的值,并拥有数组长度属性length。还有就是 arguments 对象存储的是实际传递给函数的参数,而不局限于函数声明所定义的参数列表,而且不能显式创建 arguments 对象。 arguments 对象只有函数开始时才可用。下边例子详细说明了这些性质 : // arguments 对象的用法。 function ArgTest(a, b){ var i, s = " The ArgTest function expected " ; var numargs = arguments.length; // 获取被传递参数的数值。 var expargs = ArgTest.length; //

深入理解JS函数中this指针的指向

与世无争的帅哥 提交于 2020-01-05 05:11:02
https://www.cnblogs.com/zjjDaily/p/9482958.html原文链接 函数在执行时,会在函数体内部自动生成一个this指针。谁 直接调用 产生这个this指针的函数,this就指向谁。 怎么理解指向呢,我认为指向就是等于。例如直接在js中输入下面的等式: console.log(this===window);//true 情况不同,this指向的对象也不同。例如: 1. 函数声明的情况 var bj=10; function add(){ var bj=20; console.log(this);//window console.log(this.bj);//10 console.log(bj);//20 console.log(this.bj+bj);//30 } add(); window.add(); (1) 执行了add()之后,此时的this指向的是window对象,为什么呢?因为这时候add是全局函数,是通过window 直接调用 的。所以下面我专门写了个window.add()就是为了说明,全局函数的this都是指向的window。 (2) 就像alert()自带的警告弹窗一样,window.alert()执行之后也是一样的效果。所以只要是 window点 这种调用方式都可以省略掉,因此警告弹窗可以直接使用alert()。 2.

JS调用模式以及bind()方法

霸气de小男生 提交于 2020-01-05 05:08:56
本来是想好好归纳下bind()方法,但是从中又牵扯出了现在读的js语言精粹的一些知识,那这里就从基础开始整理下知识点。 函数   JS中最重要的组成部分就是函数了,由于JS中没有类之说,类的功能实现也是靠函数来完成的,用函数模拟类继承等问题。   JS中的函数就是对象,对象是“名/值”对的集合并拥有一个连到原型对象的隐藏连接。每个函数对象在创建时也随配有一个prototype属性。它的值是一个拥有constructor属性且值即为该函数的对象。   因为函数是对象,所以它们可以像任何其他的值一样被使用。函数可以保存在变量,对象和数组中。函数可以被当做参数传递给其他函数,函数也可以再返回函数。而且,因为函数是对象,所以函数可以拥有方法。 函数字面量   函数对象通过函数字面量来创建:   //创建一个名为add的变量,并用来把两个数字相加的函数赋值给它。   var add = function (a, b) {     return a + b;   } 函数字面量包含四个部分,保留字function,函数名(可省略,即匿名函数),参数,函数体。 通过函数字面量创建的函数对象包含一个连到外部上下文的连接。这被称为闭包,它是JS强大表现力的来源。 闭包   在js中,每次函数调用时,新的作用域就会产生。   在某个作用域中定义的变量只能在该作用域或其内部作用域(改作用域中定义的作用域

js 页面跳转

孤街醉人 提交于 2020-01-05 04:48:45
1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.forward()返回下一页 4. window.history.go(返回第几页,也可以使用访问过的URL) 例: <a href="javascript:history.go(-1);">向上一页</a> response.Write("<script language=javascript>") response.Write("if(!confirm('完成任务?')){history.back();}") response.Write("</script>") response.Write("<script language=javascript>history.go(-1);</script>") <a href="javascript:history.go(-1);">向上一页</a> 页面跳转:onclick="window.location.href='list.aspx'" P.S. 小技巧(JS引用JS): <script type=text/javascript> <!-- if (typeof SWFObject == "undefined") { document

JS 定时器

假装没事ソ 提交于 2020-01-05 04:40:04
http://biancheng.dnbcw.info/javascript/129752.html在javascritp中,有两个关于定时器的专用函数,它们是: 1.倒计定时器:timename=setTimeout("function();",delaytime); 2.循环定时器:timename=setInterval("function();",delaytime);   function()是定时器触发时要执行的是事件的函数,可以是一个函数,也可以是几个函数,或者javascript的语句也可以,单要用;隔开;delaytime则是间隔的时间,以毫秒为单位。   倒计时定时器就是在指定时间后触发事件,而循环定时器就是在间隔时间到来时反复触发事件,其区别在于:前者只是作用一次,而后者则不停地作用。   倒计时定时器一般用于页面上只需要触发一次的的情况,比如点击某按钮后页面在一定时间后跳转到相应的站点,也可以用于判断一个浏览者是不是你的站点上的“老客”,如果不是,你就可以在5秒或者10秒后跳转到相应的站点,然后告诉他以后再来可以在某个地方按某一个按钮就可以快速进入。   循环定时器一般用于站点上需要从复执行的效果,比如一个javascript的滚动条或者状态栏,也可以用于将页面的背景用飞雪的图片来表示。这些事件需要隔一段时间运行一次。   有时候我们也想去掉一些加上的定时器

Js复制链接代码

两盒软妹~` 提交于 2020-01-05 04:37:32
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> <html xmlns=" http://www.w3.org/1999/xhtml "> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>最全的Js复制链接代码</title> </head> <body> <p> <input type="button" name="anniu1" onClick='copyToClipBoard()' value="复制专题地址和url地址,传给QQ/MSN上的好友"> <script language="javascript"> function copyToClipBoard(){ var clipBoardContent=""; clipBoardContent+=document.title; clipBoardContent+=""; clipBoardContent+=this.location.href; window.clipboardData.setData(

简单倒计时js代码

大城市里の小女人 提交于 2020-01-05 04:11:20
//倒计时 var timer=null; var interval = 1000; function ShowCountDown(year,month,day,hour,minute,second,divname) { var cc = document.getElementById(divname); var now = new Date(); var endDate = new Date(year,month-1,day,hour,minute,second); var leftsecond = Math.round((endDate-now)/1000); 这里你可以判断等于0时执行的事件,可以用一个封装成一个函数 if(leftsecond<0){ clearInterval(timer); return; }else{ //var day1=parseInt(leftsecond/(24*60*60)); var ofd=parseInt(leftsecond/3600/24);//计算天数 var ofh=parseInt((leftsecond%(3600*24))/3600);//计算小时 var ofm=parseInt((leftsecond%3600)/60);//计算分 var ofs=leftsecond%60;//计算秒 if (ofd <= 9)

JavaScript之JS实现动画效果

南笙酒味 提交于 2020-01-05 04:10:55
在前面的随笔中介绍了如何用DOM技术修改文档的央样式信息,用JavaScript添加样式信息可以节约我们的时间和精力,但总的来说,CSS仍是完成这类任务的最佳工具。但是有一个应用领域是目前的CSS无能为力的。 如果我们想随着时间的变化而不断改变某个元素的样式,则只能用JavaScript。JavaScript能够按照预定的时间间隔重复的调用一个函数,而意味着我们可以随着时间的推移而不断改变某个元素的样式。 动画是样式随着时间变化的完美例子之一。简单的说,动画就是让元素的位置随着时间而不断的发生变化。下面来说下使用JavaScript动画,必须要掌握的几个HTML的基本知识: 一、位置 网页元素在浏览器窗口中的位置是一种表示性的信息。因此,位置信息通常使用CSS负责设置的。下面这段CSS代码对某个元素在网页上的位置做了预定: element{ position:absolute; top:50px; left:100px; } position属性的合法值有static、absolute、relative、fixed四种。 1、static是position属性的默认值,意思是有关元素将按照它们在标记里出现的先后顺序出现在浏览器窗口里。 2、relative的含义与static相似, 区别是postion属性为relative的元素还可以(通过应用float属性