• 更优美的javaScript(1)


    1,如何在浏览器环境 中创建和访问的全局变量:

    myglobal = "hello"; // 不推荐写法
    console.log(myglobal); // "hello"
    console.log(window.myglobal); // "hello"
    console.log(window["myglobal"]); // "hello"
    console.log(this.myglobal); // "hello"

     

    2,隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力。

    • 通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
    • 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。

    这表明,在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。属性是可以通过delete操作符删除的,而变量是不能的:

    // 定义三个全局变量
    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"

    在ES5严格模式下,未声明的变量(如在前面的代码片段中的两个反面教材)工作时会抛出一个错误。

     

    3,对于JavaScript,只 要你的变量是在同一个作用域中(同一函数),它都被当做是声明的,即使是它在var声明前使用的时候。

    反例:
    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();

     

    4,循环

    // 次佳的循环
    for (var i = 0; i < myarray.length; i++) {
       // 使用myarray[i]做点什么
    }

    修改成:

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

     

    5,

    // 不好的
    setTimeout("myFunc()", 1000); setTimeout("myFunc(1, 2, 3)", 1000);
    // 更好的 setTimeout(myFunc, 1000); setTimeout(function () {    myFunc(1, 2, 3); }, 1000);

     

  • 相关阅读:
    django_视图层_便捷工具
    django_视图层_编写url
    04bootstrap_表单
    人工智能之线性代数
    人工智能之数组操作
    C 获取Linux系统信息
    RPM
    Windows 启动&关闭Hyper-V
    C 指定初始化器
    指针的运算
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/2479109.html
Copyright © 2020-2023  润新知