1.var/let/const修飾符

js中的變量修飾符

  1. var -->函數(shù)作用域
  2. let -->塊作用域
  3. const -->常量不可改,對(duì)象不可改,對(duì)象內(nèi)部屬性可改

作用域

  • js中只有函數(shù)作用域
function test () {
   //函數(shù)內(nèi)部都屬于函數(shù)作用域
   var a = 10;
}
console.log(a);     //外面不可訪問  會(huì)報(bào)錯(cuò)
  • js中沒有塊作用域
{
  //花括號(hào)內(nèi)的范圍都屬于塊作用域,但js中不存在塊作用域,所以外面可以訪問花括號(hào)里面的內(nèi)容
   var a = 10;
 }
console.log(a);     //可以訪問a  10
  • 閉包的原理
//在一個(gè)函數(shù)中定義的變量,當(dāng)這個(gè)函數(shù)調(diào)用完后,變量就會(huì)被銷毀;如果有
//外部變量指向函數(shù)內(nèi)部的引用,導(dǎo)致函數(shù)里面定義的變量無法釋放,就實(shí)現(xiàn)了閉包
function test () {
  var a = 20;
  var closure = function () {
    console.log(a);
  }
  return closure;
}
var closure = test();
closure();  //20

var/let/const的區(qū)別

  • var
// 1.定義一個(gè)常量,使用大寫的方式去定義,這個(gè)只是人為的約定,值可以被修改的,并不是不可變的
var PI = 3.1415;    
PI = 5;
console.log(PI);    //值已經(jīng)改變

// 2.被const修飾的變量(常量)不能被修改
const pi = 3.1415;
pi = 5;             //不能被修改
console.log(pi);    //報(bào)錯(cuò)

// 3.var聲明的變量在塊外可以被調(diào)用,即沒有塊作用域
function test () {
  for(var i = 0; i < 10; i++){
    // 塊作用域內(nèi)部
  }
  constlo.log(i);   //i在for循環(huán)塊作用域外可以被使用
}
  • let
// 1.javascript中沒有塊{}作用域
var a = [];
for (var i = 0; i < 10; i++) {  
  //因?yàn)閖s中沒有塊作用域,i是全局變量,每次遍歷i的值都會(huì)被改變,最后i的值是10
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10
a[8](); // 10
console.log(i); //可訪問i

// 2.使用一對(duì)花括號(hào){}代表代碼塊,被let修飾的變量在塊內(nèi)有效,塊外無效
var a = [];
for (let i = 0; i < 10; i++) {  //for循環(huán)內(nèi)部就是i的作用域
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6
a[8](); // 8
console.log(i); //不可訪問i
  • const
// 1.被const修飾的變量不能被修改
const pi = 3.1415;
pi = 5;             //不能被修改
console.log(pi);    //報(bào)錯(cuò)


// 2.被const修飾的對(duì)象是不可更改的,但是對(duì)象內(nèi)部的屬性是可以被更改的
const obj = {
  name : "zhangsan",
  age : 18
}
obj.age = 19;
console.log(obj.age);   //19
obj = {};               //報(bào)錯(cuò)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容