• 变量作用域与解构赋值


    变量作用域 

    由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,如果内部函数定义的变量和外部函数定义的变量相同,则内部函数的变量将“屏蔽”外部函数的变量

    变量提升 

    function foo() {
        var x = 'Hello, ' + y;
        console.log(x);
        var y = 'siry';
    }
    foo();
    语句var x = 'Hello, ' + y;并不报错,原因是变量y在稍后申明了,javascript引擎会自动提升y,提升变量y的申明,此时y为undefined

    名字空间

    全局变量会绑定到window上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。
    减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。

    局部作用域

    JavaScript的变量作用域实际上是函数内部,我们在for循环等语句块中是无法定义具有局部作用域,当我们为了解决块级作用域,ES6引入了新的关键字let,用let替代var可以申明一个块级作用域的变量,如果我们定义常量引入const关键字代替

    解构赋值

    数组解构赋值

    [a,b]=[1,2];
    方法返回
    function f(){
       return [1,2]
    }
    let a,b;
    [a,b]=f();//a=1,b=2
    
    function f1(){
       return [1,2,3,4,5]
    }
    let a,b;
    [a,b]=f();//a=1,b=2
    
    [a,,...b]=f1();//a=1;b=[2,3,4,5]

    对象解构赋值 

    {a,b=1}={a:1,b:2}

    数组解构赋值运用场景 

    变量交互、返回数组、对返回的数组结果只关心第一个,返回多个值,选择性的接受某几个变量

  • 相关阅读:
    websocket协议
    LeakCanary 中文使用说明
    编程习惯1
    Spring事务管理(详解+实例)
    微信 JS API 支付教程
    mi面试题
    最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
    .Net 高效开发之不可错过的实用工具
    手机版开发框架集合
    node.js建立简单应用
  • 原文地址:https://www.cnblogs.com/fuGuy/p/9215944.html
Copyright © 2020-2023  润新知