爱米*阅

不是日志,不是剪切板

记录

发布时间   2011-03-10 @ 21:13:36 标签    编辑 | 分享 0

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/amixyue-logs/108439814.html

1 . 很奇怪,javascript 应该是词法作用域,就是只要我声明了一个变量,那么在该语句块内、声明语句之前,也应该可以拿到这个变量才对。可是测试代码竟然不成功:

function add(){
alert(a)
var a = 1
}
add()

alert 出 undefined。

如下就会报错:

function add(){

a.b
var a = {}
}
add()

这样就是好的:

(function(){
a.b;
function a(){}
})();

难道是对 function 的处理比对 var 的处理要超前?是的。这叫 function 提升

2 . what is delegate ? and its function?

delegate is like ‘C’ age pointer to function. switch on case to asign a delegate and finally the determined function is called.

also delegate can be associated with event and act as event handler accomplished the aim accompanied by language feature.

3 .

对象字面量:理应{‘name’:’value’} 不过可以 {name :’value’}

原型:javascript 不是 class 的继承,而是对象继承,找个对象挂为 pototype。

创建一个以自己为 prototype 的对象

function get (o){

var F = function(){}

F.prototype = o

return new F()

}

用其他对象的 prototype 为 prototype 创建对象,即继承了实例方法:

get(o.prototype);

检索:1 . 没有定义的属性,返回 undefined 2 . parent delegate(委托)

更新

删除 delete

反射 检查属性和验证取得的值 typeof

for (var prop in o){

if(typeof prop !== function && o.hasOwnProperty(prop)) …

}

4 .

函数声明:函数名称,参数,函数体

函数调用:调用符 ()

方法调用,属性存取符 .

函数调用, this 挂接到全局对象

构造器调用,new 操作符,挂接 Function.prototype 到 this

Apply 调用

异常 try throw catch ,

给类型增加方法

Function.prototype.method = function(name, func){

if(!this.prototype[name])

this.prototype[name] = func;

return this;

}

Number.method(…)

递归

作用域

闭包

回调

模块[就是用闭包实现]

级联[通过返回 this]

套用

var add = add.curry(1)

add(6) 两次参数都可以有了。

继承:你认为什么是继承?是从一个不错的对象,分发出相似的一堆对象?还是从类出发?

5 . javascript 的数组,倒和对象很难区分了,[1,2,3] 默认被赋了属性 '0‘’1‘’2‘

6 . 正则表达式起源于形式语言 formal languages 的数学研究,是基于对 type-3 语言的理论研究写出的切实可行的模式匹配。

7 . javascript 的糟粕们

parseInt 遇到字符串,终止解析 parseInt(‘9px’) 返回 9

遇到 0 当做 8 进制解析,所以 parseInt(‘08’) 返回 0,因为 8 不在 8进制范围

+ 只有当都是整数时才做加法,否则做字符串拼接。

避免浮点数运算,javascript 遵循二进制浮点数算术标准。

NaN 指 not a number ,不管是因为真的非数字还是太大。

function 语句在解析时会发生提升现象。这意味着不管 function 被放置在哪里,它会被移动到被定义时作用域的顶层。这个就放宽了函数必须先声明再使用。

分享到: