我有一个关于JavaScript的问题.当我声明新变量并为其分配新的类实例时,如果抛出错误,则变量完全无法使用.
下面的代码应该抛出错误
class MyClass {
constructor (config) {
this.someProperty = config.someProperty || '';
}
}
let myClassInstance = new MyClass();
Run Code Online (Sandbox Code Playgroud)
如果我尝试为其分配内容,JavaScript将引发错误.
myClassInstance = '123'
未捕获的ReferenceError:未定义myClassInstance
然后我尝试定义变量
let myClassInstance = '123'
未捕获的SyntaxError:已声明标识符'myClassInstance'
变量也无法删除.我们可以用这个问题做些什么吗?我只是很好奇,当然我会处理将undefined作为配置传递给构造函数.
编辑:我也尝试使用var,然后我可以重用myClassInstance.我想知道为什么如果我使用let变量无法删除,声明或新值不能重新分配.
编辑2:我可以处理传递undefined或传递空对象.只是纯粹的好奇心在JS控制台中使用该变量会发生什么,如果您一次粘贴所有内容,代码将无法执行
在node.js中(使用Hapi框架)我正在为用户创建链接以允许我的应用程序读取用户帐户.Google处理该请求并询问是否授予权限.然后谷歌使用GET参数作为响应代码重定向到我的服务器,这里我有一个问题.
Google Chrome不会发送包含会话ID的Cookie.
如果我将该cookie标记为cookie编辑扩展中的会话cookie,则会发送该cookie.php中的行为相同,但php在创建会话时将cookie标记为会话,因此不存在问题.我正在使用插件hapi-auth-cookie,它创建会话并处理有关它的一切.我还在hapi-auth-cookie设置中将该cookie标记为非HttpOnly,因为这是第一个区别,我注意到,当我在node.js中检查那个PHP会话cookie和我的时候.我在每次重定向都有响应401缺少身份验证.如果我将光标放在地址栏并按Enter键,一切正常,所以这是重定向的问题.
我的问题基本上是,可能导致这种行为的原因.另一方面,我必须提到firefox在每个请求之后发送cookie而没有任何问题.
重定向后的标题(没有会话cookie):
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"x-client-data": "CJS2eQHIprbJAQjEtskECKmdygE=",
"x-chrome-connected": "id=110052060380026604986,mode=0,enable_account_consistency=false",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4"
}
Run Code Online (Sandbox Code Playgroud)
点击进入地址栏后的标题(什么工作正常):
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4",
"cookie": "SESSID=very_long_string"
}
Run Code Online (Sandbox Code Playgroud) class ×1
cookies ×1
ecmascript-6 ×1
hapijs ×1
javascript ×1
let ×1
node.js ×1
redirect ×1
variables ×1