您的位置:首页 > Web前端 > JavaScript

js学习笔记1(从Evernote迁移)

2016-03-13 15:58 405 查看
一、 尽量不要声明全局变量,Javascript中,未定义实用,非var ,均视为全局变量;

function foo() {
var a = b = 0;
// ...
} 其中 a是foo的局部变量  b则是全局变量  右到左的赋值

function sum(x, y) {
result = x + y;
return result;
} 其中result没有定义
二、隐式全局变量和明确定义的全局变量间有些小的差异,就是通过[code]delete
操作符让变量未定义的能力[/code]通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
var global_var = 1;
global_novar = 2; // 反面教材
(function () {
global_fromfunc = 3; // 反面教材
}());

// 试图删除
delete global_var; // false
delete global_novar; // true
delete global_fromfunc; // true

// 测试该删除
typeof global_var; // "number"
typeof global_novar; // "undefined"
typeof global_fromfunc; // "undefined"
三、随时获得全局对象 var global = (function () { return this;}())
因为其在函数中被当做函数调用了(不是通过[code]new
构造),
this
总 是指向全局对象四、单var形式[/code]
function func() {
var a = 1,
b = 2,
sum = a + b,
myobject = {
},
i,
j;
// function body...
}

五、预解析 所有的var 会提到所处作用域的最上方进行定义(未赋值 undefined);
// 反例
myname = "global"; // 全局变量
function func() {
alert(myname); // "undefined"
var myname = "local";
alert(myname); // "local"
}
func();

等同于如下代码
myname = "global"; // global variable
function func() {
var myname; // 等同于 -> var myname = undefined;
alert(myname); // "undefined"
myname = "local";
alert(myname); // "local"}
func();
六、缓存需要循环的dom或者数组的长度

for (var i = 0, max = myarray.length; i < max; i++) {
// 使用myarray[i]做点什么
}

2014年11月25日
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: