zoukankan      html  css  js  c++  java
  • 变量作用域

    数据流向 父->子

    子函数可以引用外部变量



    变量查找 子->父

    当搜索一个变量时先从当前区域进行查找,再从上一级区域查找,找到则终止。



    同名变量作用域

    同名变量作用域互相独立不受影响,独立存在与所在区域有效

    'use strict';
    
    function foo() {
        var x = 1;
        x = x + 1;
    }
    
    function bar() {
        var x = 'A';
        x = x + 'B';
    }
    


    变量提升

    在执行函数时,会先搜索所有存在的变量名(但不会对变量赋值),再顺序执行语句。

    console.log(a); // undefined 表示存在a但无值
    var a=10;
    
    // 等同于
    var a;
    console.log(a);
    a = 10;
    
    // 正确写法,变量提前
    var a=10;
    console.log(a);
    


    命名空间

    全局变量污染

    function alert() {
        return 1;
    }
    
    alert("这就是全局变量污染") // 1
    

    减少全局变量污染的最好方法是命名一个对象,将自定义变量全作为他的属性。很多知名js框架都是采用该方法

    // 唯一的全局变量MYAPP:
    var MYAPP = {};
    
    // 其他变量:
    MYAPP.name = 'myapp';
    MYAPP.version = 1.0;
    
    // 其他函数:
    MYAPP.foo = function () {
        return 'foo';
    };
    


    块级作用域

    我们知道js变量只能在当前作用域内使用,该作用域所指的是当前函数作用区域

    function aa(){
        for(var i=1; i<100; i++ ){
            ...
        }
        i+=1; // i可以使用,为101
    }
    

    在es6中采用let来明确指代块级作用域

    function aa(){
        for(let i=1; i<100; i++ ){
            ...
        }
        i+=1; // SyntaxError:
    }
    


    Const

    constlet一样都是块级作用域,const指代于常量,let指代于变量

    夹具
  • 相关阅读:
    新浪JavaScript库
    Java中创建的对象多了,必然影响内存和性能
    Fidder抓包设置
    JavaScript处理股票数据
    按钮控制示例
    JavaScript更改css样式
    AppCan模拟器调试
    AppCan调试问题
    Java虚拟机JVM学习04 类的初始化
    COM组件和调用详细教程
  • 原文地址:https://www.cnblogs.com/jilaokang/p/8645947.html
Copyright © 2011-2022 走看看