Javascript 에서 null 값이 확인할지 어떻게 해야 합니까? 하지만 내가 작성했습니까 아래 코드는 didn& # 39, 빗나갔다.
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("fill all columns");
return false;
}
그리고 내 JavaScript 프로그램 오류 찾기 어떻게 해야 합니까?
Javascript 가 매우 유연한 관련된 " 검사 null"; 값. # 39, 실제로 빈 문자열을 찾는 you& 추측, re i& # 39 m 인데, 이 경우 간단해진다는 코드 작동합니다.
if(!pass || !cpass || !email || !cemail || !user){
('&Quot ";') 가 빈 문자열을 확인할지 'null', ',', '거짓' 과 '0' 와 '난' 숫자임 undefined
유념하십시오 경우 특별히 고안되었습니다 검사 숫자에 대해서는 매우 흔한 실수로 된다는 '0' 이 방법을 사용하면 및 'num! = 0' 는 기본 (또는 'num! = - 1' 또는 '~ 번호' (해키 코드 수 있는 검사를 '-')) 의 기능을 갖춘 '-', '' 복귀하십시오 indexOf (예:)
if (variable === null)
이 테스트는 위한 전용) , 전달하십시오 'null', ',' 대한 '" " 전달하십시오 않습니다', '거짓', '0' 또는 '난' 정의되지 않았습니다.
또한, 각 " I& # 39, ve 제공한 상대경로를 검사를 false-like". 값 (true 를 돌아갈 것이라고 방정식입니다 가변적입니다 '!').
참고, 절대 검사 중 일부에 대해 사용하는 '는 nnt 구현하십시오 합니다. = '와' 메리 페로프 '.
[I& # 39, ve a 여기서 생성된 모든 개별 테스트를 이스피들 표시하십시오 apc®] (
)다음은 각 출력입니다 확인:
Null Test:
if (variable === null)
- variable = ""; (false) typeof variable = string
- variable = null; (true) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Empty String Test:
if (variable === '')
- variable = ''; (true) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Undefined Test:
if (typeof variable == "undefined")
-- or --
if (variable === undefined)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (true) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
False Test:
if (variable === false)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (true) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Zero Test:
if (variable === 0)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (true) typeof variable = number
- variable = NaN; (false) typeof variable = number
NaN Test:
if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (true) typeof variable = number
개선을 위한 검사를 통해 명시적으로 'null' 뿐만 아니라 간단한 문법을 통해 오토메이티드 수락됨
if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
// your code here ...
}
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
// Test
let pass=1, cpass=1, email=1, cemail=1, user=1; // just to test
if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
// your code here ...
console.log ("Yayy! None of them are null");
} else {
console.log ("Oops! At-lease one of them is null");
}
끝 - < 스니핏 >;!
Javascript 로 문자열이어야 'null' 같지 않습니다.
패스 패스 '는' 때 '당신' 사실이라면 걱정했던것 = null # 39 는 항등 연산자, re 있다는 사실을 알고 있기 때문에 빈 문자열을 you& 느슨해짐 '=' 는 특정한 종류의 유형을 강제.
예를 들어, 이 표현은 참.
'' == 0
반면 완전 항등 연산자 '=' 밝히고 이는 거짓값:
'' === 0
& # 39, & # 39 점을 감안할 때 ',' 과 '0' 는 '& # 39, & # 39 비유하 합리적으로 느슨하게 하는 추측 할 수 있습니다.' 와 'null' 이 느슨하게 같다. 그러나 그렇지 않다.
이 표현은 거짓값:
'' == null
모든 문자열을 비교한 결과 'null' 거짓. 따라서 '와' = null 사용 중인 다른 모든 테스트를 통과, 사용자는 항상 거짓값 lan-alert 이보다 더 좋을 순 없다.
코드에 대한 각 값마다 비교하십시오 해결하십시오, 빈 문자열:
pass === ''
Re ',' '가 있는 경우 특정 you& # 39, & # 39, & # 39 전달하십시오 문자열으로 전달하십시오 = 빈 문자열은 디렉토리에만 도 사용할 수 있기 때문에,' 가 빈 문자열을 느슨하게 같음. 반면 일부 전문가들은 it& # 39 의 JavaScript 로 완전 항등 좋습니다 항상 flfile. 않으면 강제 유형을 구체적으로 수행할 수 있는 느슨해짐 항등 연산자 향상합니다.
궁금해할까봐 어떤 쌍의 값은 테이블 " 느슨하게 비유하 http://schmidt. devlib. 동일성 comparisons"; 의 [mizilla 기사를 본 항목에서는] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness).
try catch 마지막으로 사용할 수 있습니다.
try {
document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
} catch (e) {
if (e.name.toString() == "TypeError") //evals to true in this case
//do something
} finally {}
'' 자신의 오류를 발생시킬 수도 있습니다. 지켜보리니 이.
if(!parseInt(variable) && variable != 0 && typeof variable === "number")
하지만 이 같은 '되는' 0 '에 대한 합리적 숫자임 페일오버됩니다 라운드하지 가변적입니다 = 0.1'. 더 좋은 테스트 다음과 같습니다.
if(isNaN(variable) && typeof variable === "number")
사실 제가 생각하는 사용 할 수 있습니다. "만약 (가치!! = = null 값이 정의되지 않은) ' "만약 (가치) '때문에 사용할 경우 0 또는 거짓 값을 필터링합니다 수도 있습니다.
다음과 같은 두 가지 기능을:
const firstTest = value => {
if (value) {
console.log('passed');
} else {
console.log('failed');
}
}
const secondTest = value => {
if (value !== null && value !== undefined) {
console.log('passed');
} else {
console.log('failed');
}
}
firstTest(0); // result: failed
secondTest(0); // result: passed
firstTest(false); // result: failed
secondTest(false); // result: passed
firstTest(''); // result: failed
secondTest(''); // result: passed
firstTest(null); // result: failed
secondTest(null); // result: failed
firstTest(undefined); // result: failed
secondTest(undefined); // result: failed
그냥 내 상황을 확인하기 위해 필요한 값이 정의되지 않은 내가 원하지 않는다고 '0' 또는 '널임 및 필터링하려면 & # 39, & # 39 거짓값' 또는 ',' 값. 그래서 내가 필요할 때 두 번째 실험체 확장하지만 이를 필터링합니다 너무 일으킬 수 있는 첫 시험 사용할 수 있습니다.
Crc 값을 널임 또는 정의되지 않은 로다시 모듈을 사용할 수 있습니다.
_.isNil(value)
Example
country= "Abc"
_.isNil(country)
//false
state= null
_.isNil(state)
//true
city= undefined
_.isNil(state)
//true
pin= true
_.isNil(pin)
// false
참조 링크: https://lodash.com/docs/ # 이스 닐
또 다른 방법은 찾았다고 테스트하려면 값이 null:
if(variable >= 0 && typeof variable === "object")
'null' 수 '와' 객체 '동시에' 역할을 합니다. Null null < = 0 = 0 '또는', ',' > 비교한 결과 'true'. Null null = 0 '또는' 비교 '>. 0 '또는' nulll <. 0 '거짓값 발생합니다. 그러나 우리는 이를 'null' 도 멀티비트 객체를 nulll.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
<! - 언어: > js 랭 -; /* 함수은 나투라로프 (변수 (variable 유형]) 추상형데이터타입 포함되어 있다. null null - undefined", " 발생합니다. 포함되어 있거나, null" " 발생합니다. 난 - 난 업그레이드하면 " undefined"; 포함되어 있거나, NaN" " 발생합니다.
데모 // 이제 유형 = [nulll, ", ", ", string", 정의되지 않은, 난, 인피니티, - 인피니티, false ", false", true ", true", 0, 1 - 1, 0.1, {0}, {var 1 " test" [1.2],,: 1, 1: 2, 길이: 2}]
대한 (i) 의 유형) { 콘솔드로그 (,,, " " 나투라로프 " 추상형데이터타입 [i] = ", 나투라로프 (유형 [i], ", null", ", NaN", " - infinity", ";;;; array" number" " " 빈 = undefined") } 끝 - < 스니핏 >;!
내가 이 기능을 사용할 수 있는 아주 단순해졌습니다 의아해 했다.
function safeOrZero(route) {
try {
Function(`return (${route})`)();
} catch (error) {
return 0;
}
return Function(`return (${route})`)();
}
연속적인 값을 라우트를 폭파시킨 다음 수 있는 것이 있다. 내가 사용하는 jQuery / 안녕, 개체 수 있도록 하는 등.
사례 1: 이 같은 간단한 객체에는 'const 테스토비 = {항목: [{발. # 39, & # 39 haya&. }, {발. nulll}, {발. & # 39, & # 39, 소리! }}], '.
하지만 우리가 매우 큰 객체에는 haven& # 39, 자도 안 걸릴 수 있다 "고 말했다. 그래서 지나갈 경로를 통해:
let value1 = testobj.items[2].val; // "hum!"
let value2 = testobj.items[3].val; // Uncaught TypeError: Cannot read property 'val' of undefined
let svalue1 = safeOrZero(`testobj.items[2].val`) // "hum!"
let svalue2 = safeOrZero(`testobj.items[3].val`) // 0
물론 'null' 또는 '& # 39 원할 경우, 어떠한 value& # 39 사용할 수 있습니다.'. 어떤 필요에 따라.
일반적으로 it& # 39 의 경우에는 오류를 발생시킬 수 쿼리하지 DOM 또는 jQuery 선택기를 찾을 수 없습니다. 그러나 다음과 같은 항목을 사용하여
const bookLink = safeOrZero($('span.guidebook > a')[0].href);
if(bookLink){
[...]
}
만드는 방법은 무효 확인 및 안에서 사용할 수 있는 진정한 '도우미' 되돌려줍니다 너회의 제공한다.
function isEmpty(item){
if(item){
return false;
}else{
return true;
}
}
try {
var pass, cpass, email, cemail, user; // only declared but contains nothing.
// parametrs checking
if(isEmpty(pass) || isEmpty(cpass) || isEmpty(email) || isEmpty(cemail) || isEmpty(user)){
console.log("One or More of these parameter contains no vlaue. [pass] and-or [cpass] and-or [email] and-or [cemail] and-or [user]");
}else{
// do stuff
}
} catch (e) {
if (e instanceof ReferenceError) {
console.log(e.message); // debugging purpose
return true;
} else {
console.log(e.message); // debugging purpose
return true;
}
}
var item = ""; // isEmpty? true
var item = " "; // isEmpty? false
var item; // isEmpty? true
var item = 0; // isEmpty? true
var item = 1; // isEmpty? false
var item = "AAAAA"; // isEmpty? false
var item = NaN; // isEmpty? true
var item = null; // isEmpty? true
var item = undefined; // isEmpty? true
console.log("isEmpty? "+isEmpty(item));