validate.js
import Vue from 'vue'
import VeeValidate, { Validator } from 'vee-validate';
import zh_CN from 'vee-validate/dist/locale/zh_CN.js'
import VueI18n from 'vue-i18n';
Vue.use(VueI18n)
const config = {
errorBagName: 'errorBags', // change if property conflicts.
fieldsBagName: 'fieldBags',
i18n:i18n,
i18nRootKey: 'validation',
dictionary: {
zh_CN
}
};
**console.log(i18n) //undefined
const i18n = new VueI18n({
locale: 'zh_CN',
})**
Vue.use(VeeValidate, config);
Validator.extend("account", {
getMessage: field => "必须是4到16位的数字字母下划线",
validate: value => /^[a-zA-Z0-9_-]{4,16}$/.test(value)
});
Validator.extend("password", {
getMessage: field => "必须是6到16位的数字字母",
validate: value => /^[a-zA-Z0-9]{6,16}$/.test(value)
});
楼上的说的不大对。const并没有任何变量提升。照道理会产生暂时性死区 而报错。
没有报错的原因是你上面的代码并不是直接执行,而是由构建工具来编译,其中语法的转译通常是交给babel
那么以babel为例
此时代码被编译成了es5的语法 使用了var 此时才是作用域提升。
所以说答案 直接运行代码不是作用域提升,但是若有编译过程则编译后作用域提升