zoukankan      html  css  js  c++  java
  • typeScrip(二)变量声明、解构

      const 是对 let 的一个增强,它能阻值对一个变量再次赋值。

      在 typeScript 中同样存在 var const let 而且对于他们的作用域,像函数作用域、块级作用域同样也是一样的

      重定义以及屏蔽

        类似于下面的情况:

    function fn(x) {
       var x = 1
       // let x = 1  
        console.log(x) 
    }
    fn(0)

        在运行函数 fn() 的时候,定义 var x = 1; 是可以有打印的,如果是 用 let x = 1; 这样就会报错,因为 let 的语法,要求在同一个块级作用域内不能用重复的变量,虽然 x 是一个形参,这也是不可以的;

        想要进行声明的话,我们可以采用 “屏蔽” 的方式就行处理,所谓的屏蔽就是:在一个嵌套作用域里引入一个新名字的行为; 利用屏蔽可以解决一些问题,但是一不小心也会引入新问题;例如:

    function fn(isTrue, x) {
       if (isTrue)  {
          let x = 1
          return x
        }  
        return x
    }  
    console.log(fn(true, 0))     // 1 
    console.log(fn(false, 0))    //  0
    

         利用 if 条件的  { }  形成一个新的块级作用域,这样就可以让 let 定义的变量名可以和形参一样了,这样的行为就是 “屏蔽”

      数组的结构

    let [a,b, ...c] = [1,2,3,4,5,6]
    console.log(a) // 1
    console.log(b) // 2
    console.log(c) // [3,4,5,6]
    
    let [,d,e] = [1,2,3,4,5]
    console.log(d)  // 2
    console.log(e)  // 3
    

       对象的结构

    let {a, b, c}  = {a: 1, b: 2}
    console.log(a)   //  1
    console.log(b)   //  2
    console.log(c)   //  undefined
    

         如果不用  let、const、var 的话,可以直接 ({a, b} = { a:1, b: 2})来进行对象的结构赋值;

         此外也可以在结构赋值的时候利用  ...  语法,例如: ({a, b, ...c} = {a: 1, b: 2}),这样就定义了一个新的对象 c = { }

  • 相关阅读:
    Shiro笔记(三)shiroFilter拦截器配置原则
    Shiro笔记(二)Shiro集成SpringMVC的环境配置
    Shiro笔记(一)Shiro整体介绍
    javaNIO的总结
    Redis的工作流程
    Nginx的配置安装和使用
    Linux下java开发环境配置总结
    php 基础知识 post 和get 两种传输方式的区别
    php 高级 多台web服务器共享session的方法
    php 基础知识 SESSION 和 COOKIE 的区别
  • 原文地址:https://www.cnblogs.com/mufc/p/11213681.html
Copyright © 2011-2022 走看看