几个月后,我的IDE(WebStorm)突出显示了JavaScript正则相等运算符,并出现以下警告:
if(parseInt(val) == val) // val can be safely converted to int
我知道两个操作员的不同行为,我倾向于使用它们,因为它们的行为不同,例如。对于延迟类型转换:
==
但是,IDE正在向所有出现if(parseInt(val).toString() === val) // be happy webstorm
添加警告,因此上面的感觉不再。我可以将所有这些部分转换成更不易读的东西:
private void updateStatusBarColour(int tabPosition) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
switch (tabPosition) {
case FIRST_TAB:
case SECOND_TAB:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mRootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
window.setStatusBarColor(ContextCompat.getColor(this, R.color.colorPrimaryLight));
break;
case THIRD_TAB:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mRootView.setSystemUiVisibility(0);
}
window.setStatusBarColor(ContextCompat.getColor(this, R.color.colorPrimary));
break;
case FOURTH_TAB:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mRootView.setSystemUiVisibility(0);
}
window.setStatusBarColor(ContextCompat.getColor(this, R.color.colorDarkTan));
break;
}
}
}
这真的是要走的路吗?或者我应该忽略/禁用这些警告?
答案 0 :(得分:3)
是的,近二十年来这是最好的做法。
警告很明确(甚至解释为什么它已经到位),你会在JavaScript书籍中以及在网络上找到相同的建议。
所以,我无法理解为什么你会考虑忽略甚至禁用它。
您可以在此处找到有关何时选择==
以及何时选择===
的详细信息:
答案 1 :(得分:2)
我认为任何形式的类型强制,如果在运行时可能不知道的类型出乎意料(如任何动态语言)是不好的做法。
例如,这些都是真实的:
"0" == false
"0"
虽然这是假的:
false