JS培训课笔记

昨晚上了一堂js培训课,感觉不错,弄清楚了js的基本工作原理,谢谢Yok哥.

内容围绕js展开.由于现在Web2.0对js的要求也挺高.所以写下这随笔.

基本类型就写出来了.js还是有点OO的.

对象采用ojbect单根继承,类似java.

我mark下我一直不太清楚的:

1"=="与"==="

也许多数人都看过==,===的话可能用得比较少.

==会进行类型转换,===不会.我一直很少用===.可能还没有找到一定要用的:)

2NaN,null,undefine

undefined 属性

返回 undefined 的一个初始值。

undefined

说明

undefined 属性是 Global 对象的一个成员,该属性在脚本引擎初始化后可用。如果已声明了一个变量但还没有初始化,那么该变量的值就是 undefined

如果还没有声明变量,那么就不能将其与 undefined 进行比较,但是可以将该变量的类型与字符串 "undefined" 进行比较。

当显式地测试变量或将变量设置为 undefined 时,undefined 属性是很有用的。

NaN 属性

表示算术表达式返回非数字值的特殊值。

number.NaN

number 参数是Number 对象.

说明

在能够访问 NaN 属性前不必创建 Number 对象。

NaN 不与任何值相等,包括其本身。要检测值是否为 NaN,请使用 isNaN 函数。

null为空值

3 用vs2003调试js

之前一直都是用debugger;语句来抛出空异常,让vs catch.yok哥终于让我脱离苦海.

用附加进程.通过运行文档和堆栈监控调试.可以设定任意断点.爽.

FF的调试我就没有试过.........

4作用域链(scope chain)

js的作用域链(scope chain),是JS的运行原理了:由调用对象的链表组成, 变量会依次从作用域链中寻找

5prototype与对象

每个函数都有一个prototype属性, 作为由这个函数new出来的对象的”原型对象”, new出来的对象都继承自它的prototype

6 this

There is a this value associated with every active execution context. The this value depends on the caller and the type of code being executed and is determined when control enters the execution context. The this value associated with an execution context is immutable. 

构造函数的this是正在创建的对象
方法的this是调用方法的对象

7 Clousure(闭包)

昨天早上给Yok哥忽悠了一下...........

闭包是一个把函数定义和作用域联合在一起的对象
函数定义时的上下文变量可从闭包中获取
function f() {
 var a = 'local a';
 var b = 'local b';
 var g = function () {
  alert(a);
  alert(b);
 }
 return g;
}
var test = f();
test();
//f()返回的函数总能访问局部变量a, b

利用闭包可以解决方法里this含义混乱的问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章