js学习笔记1(从Evernote迁移)
2016-03-13 15:58
405 查看
一、 尽量不要声明全局变量,Javascript中,未定义实用,非var ,均视为全局变量;
如
2014年11月25日
如
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日
相关文章推荐
- 浅谈Json解析与序列化
- JavaScript计算一个字符串最多重复的字符及出现次数
- {JSP}JSP页面的基本结构
- JavaScript中关键字之null和undefined
- 从servlet获得json数据Ajax解析到前台网页
- 浅谈JavaScript闭包
- 关于jsp中重定向的问题
- javascript设计模式-掺元类
- {JSP}安装运行及简单的JSP程序
- js数据层中间件单页运用简单构思和应用案例
- javascript 函数
- javascript设计模式-继承
- js学习笔记
- JavaScript创建变量语法
- Javascript中的function函数
- 让你的JS更优雅的小技巧
- 纯JavaScript在网页上实现”简书“的文章编辑器
- 如何用jspSmartUpload上传文件:)
- javascript 核心基础语法
- JavaScript核心基础语法