var let this的区别
var xx;
function test(){
var aa;? ? ? ? ? ? ? ? ? ? ?//聲明一
let bb;? ? ? ? ? ? ? ? ? ? ?//聲明二
this.cc;? ? ? ? ? ? ? ? ? ?//聲明三
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//聲明一局部代碼塊
{
let dd;? ? ? ? ? ? ? ? ? ?//聲明四?
}?
}
那么,這三種方式有什么區別呢?
區別在于作用域不同。
let?
let 聲明的變量作用域為某個代碼塊。而代碼塊的長度可大可小。?
也就是說,當按聲明二的方式聲明一個變量時,該變量的作用范圍于為整個function語句。?
當按聲明四方式聲明一個變量時,該變量的作用范圍為局部的代碼塊。
var?
如果在函數內部,加var就是局部變量,不加是全局變量。?
在函數外面,也就是說在window區域加不加var是一樣的,該var變量的作用域為整個js文件周期(全局作用域)。
this?
this多用于函數內部,它永遠指向調用他的那個對象?
簡單地說,用this聲明的變量作用域也是全局的。?
如果實例化test函數 var p=new test() 那么用p能訪問test函數內的哪些變量呢??
答案是只有cc 。實際上this聲明的變量是作用于上下文的。
?
?
---------------------?
作者:weixin_42617917?
來源:CSDN?
原文:https://blog.csdn.net/weixin_42617917/article/details/82709143?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
轉載于:https://www.cnblogs.com/passerma/p/10588695.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的var let this的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【刷题】BZOJ 2194 快速傅立叶之
- 下一篇: [jzoj 5775]【NOIP2008