我將優化 javascript 代碼,其中我看到的舊代碼如下所示,
var emcont = $('#emcont').val();
numericMatch = emcont.match(/\d/g);
if (numericMatch == null) {
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
} else if (emcont.length != 14) {
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
} else if (numericMatch.length && numericMatch.length != 10) {
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
} else {
$('#msg_emcont').html('').hide();
}
我打算將 if-else 條件轉換為 switch 條件,但是上面代碼中的問題是第二個條件驗證使用的emcont變數,所以我不能直接numericMatch在switch陳述句中使用。所以我決定像下面的代碼一樣emcont直接在switch陳述句中使用變數,
switch(emcont)
{
case emcont.match(/\d/g) == null:
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
break;
case emcont.length != 14:
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
break;
case emcont.match(/\d/g).length && emcont.match(/\d/g).length != 10:
isValid = false;
$('#msg_emcont').html(getMessage('msg_emcont')).show();
break;
default:
$('#msg_emcont').html('').hide();
break;
}
在 switch case 驗證中使用正則運算式,所以我需要知道哪些代碼在性能方面更好。
uj5u.com熱心網友回復:
請不要濫用switch(true)您所指的副作用
這是 DRY 且更易于閱讀
var emcont = $('#emcont').val();
const numericMatch = emcont.match(/\d/g);
$('#msg_emcont')
.html(getMessage('msg_emcont'))
.toggle(
numericMatch == null ||
emcont.length != 14 ||
(numericMatch.length && numericMatch.length != 10)
)
你甚至可以考慮搬家
$('#msg_emcont').html(getMessage('msg_emcont'))
到頁面加載所以它只完成一次
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389803.html
標籤:javascript 表现 优化 复杂性理论
上一篇:python讀取鍵盤鍵性能不佳
