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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30109365/article/details/82845457

例一:(: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()

输出

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

猜你喜欢

转载自blog.csdn.net/qq_30109365/article/details/82845457