JavaScript 具有自动垃圾收集机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。而在 C 和 C++ 之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况,这是造成许多问题的一个根源。在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的回收完全实现了自动管理。这种垃圾收集机制的原理其实很简单:找出那些不再继续使用的变量,然后释放...
原型链: 构造函数中都有一个prototype属性指针,这个指针指向原型对象,而创建的实例也有指向这个原型对象的指针__proto__。当实例查找方法时先在实例上找,找不到再通过__proto__到原型对象上查找。如果原型对象是另一个类型的实例,那么原型对象包含一个指向另一个原型对象的指针、另一个原型对象中也包含指向另一个构造函数的指针。原型连继承function superValue(){this.superValue = "superValue";
}superValue.prototype...
使用
HTML5,CSS3 和 Javascript 可以帮助面向对象开发者开发拥有各种特性的游戏,比如:3D 动画效果,Canvas,数学,颜色,声音,WebGL
等等。最明显的优势在于使用 HTML5 开发的游戏能在任何现代化流行的设备上运行。 某些游戏引擎仅仅是一个抽象的层次,就简单处理一些或者更多的繁杂游戏开发任务;其他只是注重
asset 加载,输入,物理效果,音频,sprite 地图和动画,而且相当多样化。还有一些引擎架构极其简单,只包括...
this用的很多,react 的class component用了这么多自己也比较熟悉的了,下面就来讲讲如何判断一个this的绑定以及call、apply、bind的实现。判断this绑定主要就是以下的五点:由new调用:绑定到新创建的对象上面。在类里面的contructor中,指向将要通过构造器创建的对象。由call、apply、bind来调用,绑定到指定的对象上面。由上下文对象调用,就绑定到上下文的对象上面。默认:全局对象,node为global,浏览器为window如何实现call...
Javascript声明变量时var aaa = 111;和aaa = 111;两种方式一样吗?废话少说,先上代码.var aaa = 11;function test4(){var aaa = 22;
}test4();console.log(aaa);结果是什么呢? 11这个好理解, 函数内的var aaa声明是内部变量,这时结果是第一个aaa的值.变动一下如下:var abc = 11;function test4(){abc = 22;
}test4();console.log(abc);结果是什么呢? 22再改:function test4(){var aaa = 22;
}test4();console.log(aaa);结果怎样? 运...
最近几天用到js,把一些常用的函数和出现较多次数的问题记录下来。(好记性不如烂笔头,时常翻一翻)。 1、$(document).ready(function(){});一个可以全局检测事件的方法 2、$.ajax({ dataType:"text", type: "POST", url: url, success:function(data){ }, error: function(data){ }})一个异步请求方法,可以和后台交互而不需要调整或者刷新页面。 原文:http://www.cnblogs.com/hoojjack/p/46877...
在现实中,我们到达一个地方,通常可以选择不同的方式,例如自行车,火车,汽车,飞机等。在程序设计中,通常也会有这样的情况,实现一个功能有多个方案可以选择,比如一个压缩文件的程序,既可以选择zip算法,也可以选择gzip算法。而这种情况,在设计模式中,称为策略模式。策略模式的定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。例子:很多公司的年终奖是根据员工的工资基数和年底绩效情况来方法的。...
window对象alert() 显示带有一段消息和确认按钮的警告框
prompt() 显示可提示用户输入的对话框
confirm() 显示带有一段消息以及企鹅人按钮和取消按钮的对话框
open() 打开一个新的浏览器窗口或者找一个已命名的窗口
close() 关闭浏览器窗口
print() 打印当前窗口的内容
focus() 把键盘焦点给予一个窗口
blur() 把键盘焦点从顶层窗口移开
moveBy() 可相对窗口的当前坐标把他移动指定的像素
moveTo() 把窗口的左上角移动...
js:我们应该如何去了解JavaScript引擎的工作原理(转)http://www.nowamagic.net/librarys/veda/detail/1579昨天收到一封来自深圳的一位前端童鞋的邮件,邮件内容如下(很抱歉,未经过他的允许,公开邮件内容,不过我相信其他人肯定也有同样的问题,所以,直接把问题原文抛出来):“读了你的几篇关于JS(变量对象、作用域、上下文、执行代码)的文章,我个人觉得有点抽象,难以深刻理解。我想请教下通过什么途径能够深入点的了解jav...
函数柯里化currying,是函数式编程非常重要的一个标志。它的实现需要满足以下条件,首先就是函数可以作为参数进行传递,然后就是函数可以作为返回值return出去。我们依靠这个特性编写很多优雅酷炫的代码。那我们来看一下最简单的实现。大家一般都是举addSum的例子,我当然也不例外。add = (num1)->return (num2)->return num1 + num2;add3 = add(3);
add5 = add(5);add3(5) # 返回8
add5(5) # 返回10 上述例子其实已经对柯里化的实...
在 JavaScript 中,代码块、函数或模块为变量创建作用域。例如 if 代码块为变量 message 创建作用域:`if (true) {
const message = ‘Hello‘;
console.log(message); // ‘Hello‘
}
console.log(message); // throws ReferenceError
`
在 if 代码块作用域内可以访问 message。但是在作用域之外,该变量不可访问。以下是 5 种有趣的情况,其中 JavaScript 作用域的行为与你预期的不同。你可能会研究这些案例以提高...
1.script元素async和defer属性async:异步脚本,异步下载脚本时,不会阻塞文档的解析,但是一旦下载完成,立即执行,会阻塞文档解析;(不一定按照文件顺序执行)defer:延迟脚本,脚本会被异步下载但不会立即执行,直到文档的载入和解析完成,并可以操作,文档才会执行;(按照文件顺序执行) 2.typeof null; // "Object" typeof 正则表达式; // "Object" (Safari5&Chrome7及以前返回function) undefined派生自null: consol...
JavaScript 中,大多数情况下,我们不会发现 location.host 与 location.hostname 的区别,因为大多数情况下,我们的网页用的是 80 端口。他们的区别:location.host 包含端口,比如是 127.0.0.1:81。如果端口是 80,那么就没有端口,就是 127.0.0.1。location.hostname 不包含端口,比如是 127.0.0.1。原文:http://www.cnblogs.com/azhqiang/p/7390378.html
创建节点createElement()var node = document.createElement(“div”);没什么可说的,创建一个元素节点,但注意,这个节点不会被自动添加到文档(document)里。2、创建文本节点createTextNode()var value = document.createTextNode(“text”);创建一个文本节点,常用来往元素节点里添加内容,也不会自动添加到文档里。很多人知道innerHTML,不知道这个方法,这个添加的是静态文本,如果插入的内容不带HTML格式,用createTextNode...
javascript工具--控制台详解(转自 阮一峰博客)大神这篇博客是写在2011年,主要介绍 “Firefox” 浏览器插件 “Firebug” 的操作,如今主流浏览器对控制台都已经提供了很好的支持。我自己用的最多是谷歌的 “chrome” 浏览器,下面也用 “chrome” 浏览器来调试。一、显示信息的命令console.log(); //控制台输入 网页中不会输出console.info(); //一般信息console.debug(); //除错信息console.warn(); //警告提示console.erro...