zoukankan      html  css  js  c++  java
  • 更优美的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);

     

  • 相关阅读:
    MVC @Html.TextBox 添加属性和样式
    当项目中出现“未能找到与此解决方案关联的源代码管理提供程序。项目将视为不受源代码管理”
    MVC视图中读取ViewBag传递过来的HashTable表数据
    使用NPOI导入导出标准的Excel
    网站文件下载代码
    C# 刷新页面浏览次数(点击量)+1
    sed
    Shell变量的取用、删除、取代与替换
    non-member function cannot have cv-qualifier
    awk学习
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/2479109.html
Copyright © 2011-2022 走看看