欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

typeScrit(3)-函数中变量的作用域

程序员文章站 2022-07-03 16:22:54
...

例一:(:void 是方法无返回类型时声明的空类型 )

function zhengXing():void{
    var yangzi = '刘德华'
    console.log(yangzi)
}
zhengXing()
console.log(yangzi)

正常输出

刘德华
刘德华

例二:

var yangzi = '刘德华'
function zhengXing():void{
    console.log('整形成'+yangzi+'的样子')
}
zhengXing()
console.log(yangzi)

正常输出

整形成刘德华的样子
整形成刘德华的样子

例三:
当局部变量与全局变量重名的时候,在函数体内是局部变量起作用;如果重名,就有变量提升(覆盖),这是一个坑

var yangzi:string = '刘德华'
function zhengXing():void{
	console.log('整形成了'+yangzi+'的样子')
    var yangzi:string = '马德华'
    console.log('整形成了'+yangzi+'的样子')
}
zhengXing()
console.log(yangzi)

输出

整形成undefined的样子
整形成马德华的样子
刘德华

例四:
在早期javascript的变量作用域只有全局和局部,并且是以函数划分的,但在其他语言中,作用域的划分是以一对大括号作为界限的。

所以,JavaScript就遭到了无数开发者的吐槽,甚至说javascript不适合开发大型语言,容易内存溢出。JavaScript团队意识到了这一点,在ES6中推出了let关键字。

使用let关键字的变量就是一个块级作用域变量。希望大家在实际工作中多使用let来声明你的变量,让你的程序更有条例。 来看一端程序:

function zx():void{
    var yz:string = "刘德华"
    {
        let yz2:string = '小沈阳'
        console.log("整形成"+yz2)
    }
    console.log("整形成"+yz) 
    console.log("整形成"+yz2)        //这里提示报错,但依然执行了
}
zx()

输出

整形成小沈阳
整形成刘德华
整形成小沈阳