當前位置:網站首頁>Js基礎_作用域

Js基礎_作用域

2022-01-27 19:14:43 是發財不是旺財


一、作用域 && 變量作用域

變量可以起作用的區域
目的:减少命名沖突,提高程序的可靠性

let  num = 100;
function fn(){
    
  let num = 10;
  num3= num
  console.log('num2:',num)
}
console.log('num1:',num)
fn()
console.log('num3',num3)

在這裏插入圖片描述

1.全局作用域 && 全局變量

全局作用域:
整個script標簽,或單獨的js文件起作用的區域

全局變量:
1.在全局作用域下都可以使用的變量例如上面代碼中的第一個num
2.在函數內部沒有聲明的變量也屬於全局變量,例如上面代碼的num3
3.全局變量只有在瀏覽器關閉的時候才會銷毀,比較占用內存資源

2.局部作用域 && 局部變量

局部作用域:
在函數內部起作用的區域

局部變量:
1.只能在函數內部使用的變量例如上面代碼中的第二個num
2.局部變量在程序執行完畢了之後就會銷毀,比較節約內存資源

二、var,let,cont區別

1.重複定義

在這裏插入圖片描述

2.值的修改

在這裏插入圖片描述

3.聲明提昇

var

在這裏插入圖片描述

let && const

在這裏插入圖片描述

4.塊級作用域

  1. var沒有塊級作用域
  2. let有塊級作用域
  3. const有塊級作用域

在這裏插入圖片描述

拓展

const值的修改

  1. 把const定義的i設置為一個數組
  2. 定義數組的第一個元素為‘這是啥’
  3. 定義數組的第二個元素為‘我不知道’

原理:
雖然const是不可變的,但是數組是可變的,我們改變的實際上是數組i當中第0個下標比特置的元素的值

function fn2(){
    
  // const的變量不可以修改值
  const i = []
  i[0]= '這是啥';
  i[0] = '我不知道';
  console.log(i)
}
fn2()

在這裏插入圖片描述

三、作用域鏈

作用域嵌套形成的鏈式結構
更具內部函數可以訪問外部函數的變量,用鏈式查找决定哪些數據能被內部函數訪問,就稱為作用域鏈

var num = 10
function fn(){
    
  // const的變量不可以修改值
  var num = 20
  function fn1(){
    
    console.log(num)
  }
  fn1()
}
fn()

輸出的num是距離console.lo(num)最近的值
在這裏插入圖片描述

版權聲明
本文為[是發財不是旺財]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271914426822.html

隨機推薦