報(bào)錯(cuò)信息
- 示例:
- 示例代碼:
// 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) // 報(bào)錯(cuò)
解決方法
ES6:當(dāng)程序的控制流程在新的作用域(module function 或 block作用域)進(jìn)行實(shí)例化時(shí),在此作用域中用let/const聲明的變量會(huì)先在作用域中被創(chuàng)建出來,但因此時(shí)還未進(jìn)行詞法綁定,所以是不能被訪問的,如果訪問就會(huì)拋出錯(cuò)誤。因此,在這運(yùn)行流程進(jìn)入作用域創(chuàng)建變量,到變量可以被訪問之間的這一段時(shí)間,就稱之為暫時(shí)死區(qū)。文章來源地址http://www.zghlxwxcb.cn/news/detail-504873.html
- 錯(cuò)誤原因:
1. 在塊作用域內(nèi),let 和 const 聲明的變量被提升,但變量只是創(chuàng)建被提升,初始化并沒有被提升。
2. 在初始化之前使用變量,就會(huì)形成一個(gè)暫時(shí)性死區(qū)。
3. 即 let/const 聲明的變量在未出現(xiàn)聲明變量的那一行代碼之前沒有進(jìn)行詞法綁定,無(wú)法被訪問。
- 方法背景:
1. 我們知道,let/const作用域?yàn)閴K級(jí)作用域,變量不會(huì)提升;
2. 而var的作用域?yàn)槿肿饔糜?,可以進(jìn)行變量提升,這也就是為什么var沒有暫時(shí)性死區(qū)。
- 于是這里就可以使用 var 替代 const 去解決這個(gè)報(bào)錯(cuò),作為一種臨時(shí)方案。
// 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: [],
},
],
};
文章來源:http://www.zghlxwxcb.cn/news/detail-504873.html
到了這里,關(guān)于【控制臺(tái)】報(bào)錯(cuò):Cannot access ‘xxx‘ before initialization的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!