练习将变量初始化为 false
Practice initialize variable to false
在学习了 nodejs 课程(NodeJS in Action - manning 的书)后,我看到了这段代码
// create server
var server = http.createServer(function(request, response){
var filePath = false;
if (request.url == '/') {
filePath = 'public/index.html';
} else {
filePath = 'public' + request.url;
}
var absPath = './' + filePath;
serveStatic(response, cache, absPath);
});
server.listen(3000, function(){
console.log('Server listening on port 3000.');
});
我的问题是关于变量 "filePath"。它被初始化为 false,但后来它采用字符串值。
我使用的编辑器(Visual Studio 代码)向我显示警告:
Type 'string' is not assignable to type 'boolean'
我对javascript的了解不是很深,但我知道它是松散的类型。所以这是我的问题。
这个初始化为 false 是因为什么原因吗?
有什么理由这样做吗?
我的编辑警告错了吗...?
或者只是作者的惯用做法。
没有理由初始化为 false
,在这种情况下甚至不是一个好的做法。
这一行:
var filePath = false;
可以安全地更改为:
var filePath;
这是可以做到的,因为下面语句中的 if/else 可以保证以一种或另一种方式初始化 filePath
。
而且,我同意,将它初始化为一个无意义的布尔值也很奇怪,甚至对上下文没有适当的意义。这甚至不仅仅是过度谨慎——这是错误的。似乎有人认为所有声明的值都应该立即初始化(根本不是这种情况,因为 Javascript undefined
在某些情况下是一个非常有意义的初始值)所以他们只是选择了一些值来分配
您的编辑器发出警告,您在单个变量中突然切换类型是一种不寻常的情况。在 Javascript 中这在技术上不是错误(换句话说,它是允许的),但它也可能是编码错误的指示器,所以这就是您的编辑器告诉您的所有内容。
在学习了 nodejs 课程(NodeJS in Action - manning 的书)后,我看到了这段代码
// create server
var server = http.createServer(function(request, response){
var filePath = false;
if (request.url == '/') {
filePath = 'public/index.html';
} else {
filePath = 'public' + request.url;
}
var absPath = './' + filePath;
serveStatic(response, cache, absPath);
});
server.listen(3000, function(){
console.log('Server listening on port 3000.');
});
我的问题是关于变量 "filePath"。它被初始化为 false,但后来它采用字符串值。
我使用的编辑器(Visual Studio 代码)向我显示警告:
Type 'string' is not assignable to type 'boolean'
我对javascript的了解不是很深,但我知道它是松散的类型。所以这是我的问题。
这个初始化为 false 是因为什么原因吗? 有什么理由这样做吗? 我的编辑警告错了吗...? 或者只是作者的惯用做法。
没有理由初始化为 false
,在这种情况下甚至不是一个好的做法。
这一行:
var filePath = false;
可以安全地更改为:
var filePath;
这是可以做到的,因为下面语句中的 if/else 可以保证以一种或另一种方式初始化 filePath
。
而且,我同意,将它初始化为一个无意义的布尔值也很奇怪,甚至对上下文没有适当的意义。这甚至不仅仅是过度谨慎——这是错误的。似乎有人认为所有声明的值都应该立即初始化(根本不是这种情况,因为 Javascript undefined
在某些情况下是一个非常有意义的初始值)所以他们只是选择了一些值来分配
您的编辑器发出警告,您在单个变量中突然切换类型是一种不寻常的情况。在 Javascript 中这在技术上不是错误(换句话说,它是允许的),但它也可能是编码错误的指示器,所以这就是您的编辑器告诉您的所有内容。