欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

控制臺報錯:Cannot?access?'xxx'?before?initialization解決方法

 更新時間:2023年11月06日 11:09:01   作者:一顆不甘墜落的流星  
這篇文章主要給大家介紹了關于控制臺報錯:Cannot?access?'xxx'?before?initialization的解決方法,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下

報錯信息

示例:

示例代碼:

// constants.js 文件:
export const ATTRIBUTION_FORM = {
  partition_type: '',
  data_resource_id: '',
  query_dates: [
    {
      date_dim: null,
      date_type: 'day',
      date_range: 1,
    },
  ],
  filters: [
    {
      logic: 'and',
      wheres: [],
    },
  ],
};
// create-crowd.js 文件:
import { ATTRIBUTION_FORM } from '@/commons/constants';
console.log(ATTRIBUTION_FORM)	// 報錯

解決方法

ES6:當程序的控制流程在新的作用域(module function 或 block作用域)進行實例化時,在此作用域中用let/const聲明的變量會先在作用域中被創(chuàng)建出來,但因此時還未進行詞法綁定,所以是不能被訪問的,如果訪問就會拋出錯誤。因此,在這運行流程進入作用域創(chuàng)建變量,到變量可以被訪問之間的這一段時間,就稱之為暫時死區(qū)。

錯誤原因:

1. 在塊作用域內(nèi),let 和 const 聲明的變量被提升,但變量只是創(chuàng)建被提升,初始化并沒有被提升。
2. 在初始化之前使用變量,就會形成一個暫時性死區(qū)。
3. 即 let/const 聲明的變量在未出現(xiàn)聲明變量的那一行代碼之前沒有進行詞法綁定,無法被訪問。

方法背景:

1. 我們知道,let/const作用域為塊級作用域,變量不會提升;
2. 而var的作用域為全局作用域,可以進行變量提升,這也就是為什么var沒有暫時性死區(qū)。

于是這里就可以使用 var 替代 const 去解決這個報錯,作為一種臨時方案。

// constants.js 文件:
export var ATTRIBUTION_FORM = {
  partition_type: '',
  data_resource_id: '',
  query_dates: [
    {
      date_dim: null,
      date_type: 'day',
      date_range: 1,
    },
  ],
  filters: [
    {
      logic: 'and',
      wheres: [],
    },
  ],
};

總結

到此這篇關于控制臺報錯:Cannot access 'xxx' before initialization解決方法的文章就介紹到這了,更多相關控制臺報錯Cannot access xxx before initialization內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論