函数：一次定义，多次执行。js的函数调用还有一个特性，每次调用都会拥有另一个值——本次调用的this值（上下文/context）。函数可以作为对象的一个属性，称为对象的方法。当通过对象调用函数时，该对象就是此次调用的上下文。 //在定义的时候递归 var f = function fact(x) {if (x<=1) return 1; else return x*fact(x-1);}; //作为参数传递 data.sort(function(a,b){return a-b;}); //定义后立即使用 var tensquared = (function(x){return x*x}(10)); [...]
把数组的笔记写完先 数组继承自Array.prototype中的属性，定义了一套丰富的数组操作函数，对于类数组对象同样有效。 数组是javascript对象的特殊形式，用数字引索来访问数组元素要比访问常规的对象属性快很多。 javascript数组的引索是从零开始的32位数值。对于稠密数组，length即是数组包含的元素个数。对于稀疏数值，length比所有元素的引索都要大。 [...]
《javascript权威指南》这本书有点太专业了，今天只是看了对象和数组。 对象：不知道是我之前看的书太少还是js的对象实在很特别。我感觉js里面的对象和其他语言里面的用法差了很远。 除了字符串、数字、true、false、null和undefined之外，js中的值都是对象 对象是可变的，是通过引用来操作对象的，对象的属性可以变动，甚至还有属性的特性(writable\enumerable\configurable) 对象都拥有的三个相关的对象属性(protoype\class\extensible flag) 三类对象(native obj\host obj\user-defined obj)，两类属性(own property\inherited property) [...]
//在document中的一个指定的区域输出调试信息 //如果document不存在这样的一个区域，则创建一个 function debug(msg){ //通过查看HTML元素id属性来查找文档的调试部分 var log = document.getElementById("debuglog"); if (!log){ log = document.createElement("div"); log.id = "debuglog"; log.innerHTML = " Debug Log "; document.body.appendChild(log); } //将消息包装在 中，并添加到log中 var pre = document.createElement("pre"); var text = document.createTextNode(msg); pre.appendChild(text); log.appendChild(pre); }