Object-Oriented JavaScript笔记(二)

Object-Oriented JavaScript 笔记
Object-Oriented JavaScript笔记(一)
Object-Oriented JavaScript笔记(二)
Object-Oriented JavaScript笔记(三)
Object-Oriented JavaScript笔记(四)
Object-Oriented JavaScript笔记(五)
Object-Oriented JavaScript笔记(六)
Object-Oriented JavaScript笔记(七)

第三章 函数

JavaScript会给定义了但是没有传值的参数赋值为undefined,若是参数多于定义的,会被忽略。

没有函数都会带有一个名为arguments的类数组变量,包含所有传入的参数信息。

JavaScript内置函数(Pre-defined Functions):
parseInt()
parseFloat()
isNaN()
isFinite()
encodeURI()
decodeURI()
encodeURIComponent()
decodeURIComponent()
eval()

使用parseInt时最好每次都明确指定第二个(基数)参数,如 parseInt(‘FF’, 16)

parseFloat只接受一个参数,并能够识别指数表示法,如 parseFloat(‘123e2’)

escape() 与 unescape() 已经被弃用,不应该再被使用。

alert并不是JavaScript的一部分,并且它会阻塞浏览器线程,在富ajax应用中不应该使用它。

未使用var 声明的变量会被分配到全局作用域
>>> var f = function(){test = 2;};
>>> test
ReferenceError: test is not defined
>>> f();
>>> test
2

函数中声明的局部变量与全局变量同名会覆盖同名全局变量,即使是先使用后声明。

var a = 123;
function f() {
     console.log(a);
     var a = 1;
     console.log(a);
}
f();

匿名函数

不仅是字符串,一些常量写在代码中也是可以的

"test"; [1,2,3]; undefined; null; 1;

ECMAScript 5严格模式(Strict Mode)便是利用该特性

'use strict';

Lexical Scope 函数工作在定义时的作用域,而非执行作用域。它仅能访问自己的作用域和全局作用域。

>>> function f1(){var a = 1; f2();}
>>> function f2(){return a;}
>>> f1();
a is not defined

闭包Closure的常用场景
如:循环、get/set访问器、迭代器
-EOF-

《Object-Oriented JavaScript笔记(二)》有一个想法

评论已关闭。