美文网首页Swift基础
var,let,const区别以及const声明的复合类型可以被

var,let,const区别以及const声明的复合类型可以被

作者: 前端小猪仔 | 来源:发表于2022-01-15 15:10 被阅读0次

    var可以重复声明同一个变量,let和const不能,const声明的变量不能直接修改值,但是const声明的对象和数组,是可以修改值,但不能修改引用地址

    var没有块级作用域的概念,如果想要保护变量的话可以使用闭包(尽量不要滥用闭包,增大内存消耗,造成内存泄漏,解决方法是使用变量后赋值为null)

    let和const有块级作用域的概念

    var在创建之前就可以调用,在创建阶段就有变量提升,同时var在初始化阶段也有变量提升

    对于let来说,它在创建阶段提升了,但是在初始化阶段并没有提升

    const定义的是一个只读的变量,而且定义的数据不可被修改,一旦被声明的变量会立即初始化。
    const只有创建和初始化阶段,没有赋值阶段。

    let和const都存在一个暂时性死区(暂时性死区:创建了变量但是没有初始化,没法使用变量)

    const实际上保证的不是变量值不得改动,而是变量指向的内存地址所保存的数据不得改动
    对于简单数据类型(string || number)它的值就保存在变量指向的内存地址,地址所保存的数据不能被改变
    引用数据类型指向的内存地址只是一个指针,通过指针来指向实际数据,不可改变的是指针,而不是数据,所以const定义的引用数据类型常量可以通过属性来修改值,牵扯出了栈内存和堆内存

    相关文章

      网友评论

        本文标题:var,let,const区别以及const声明的复合类型可以被

        本文链接:https://www.haomeiwen.com/subject/sobthrtx.html