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


    一、  尽量不要声明全局变量,Javascript中,未定义实用,非var ,均视为全局变量;
    function foo() {
    var a = b = 0;
    // ...
    } 其中 a是foo的局部变量 b则是全局变量 右到左的赋值
    function sum(x, y) {
    result = x + y;
    return result;
    } 其中result没有定义
    二、隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力
    • 通过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;}())
    因为其在函数中被当做函数调用了(不是通过new构造),this总 是指向全局对象

    四、单var形式
    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日
  • 相关阅读:
    SCRUM项目 4.0
    【操作系统】实验三 进程调度模拟程序
    Spring 计划
    backlog
    0505-NABCD模型、视频
    0429团队准备
    1028 C语言文法
    编译原理第二次作业 编译器任务总结
    1014编译原理第二次作业(修改版)
    算法原理与分析第二次作业
  • 原文地址:https://www.cnblogs.com/songjum/p/5272217.html
Copyright © 2020-2023  润新知