programing

변수가 정의되지 않았는지 여부

lastmoon 2023. 8. 20. 12:27
반응형

변수가 정의되지 않았는지 여부

변수가 정의되지 않은 경우 어떻게 찾습니까?

현재 다음을 보유하고 있습니다.

var page_name = $("#pageToEdit :selected").text();
var table_name = $("#pageToEdit :selected").val();
var optionResult = $("#pageToEditOptions :selected").val();

var string = "?z=z";
if ( page_name != 'undefined' ) { string += "&page_name=" + page_name; }
if ( table_name != 'undefined' ) { string += "&table_name=" + table_name; }
if ( optionResult != 'undefined' ) { string += "&optionResult=" + optionResult; }

jQuery.val() 및 .text()는 빈 선택에 대해 '정의되지 않음'을 반환하지 않습니다.항상 빈 문자열(예: ".")을 반환하지만 요소가 존재하지 않으면 .html()이 null을 반환합니다.필요한 작업:

if(page_name != '')

jQuery.val()과 같은 다른 변수에서는 다음과 같이 수행할 수 있습니다.

if(typeof page_name != 'undefined')

당신은 그냥 그것을 사용하면 됩니다.typeof교환입니다.

if (myVariable === undefined)

더 정확히 말하면

if (typeof myVariable === 'undefined')

참고:===사용됨

http://constc.blogspot.com/2008/07/undeclared-undefined-null-in-javascript.html

검정을 얼마나 구체적으로 수행할지에 따라 다릅니다.당신은 아마도 도망칠 수 있을 것입니다.

if(page_name){ string += "&page_name=" + page_name; }
function my_url (base, opt)
{
    var retval = ["" + base];
    retval.push( opt.page_name ? "&page_name=" + opt.page_name : "");
    retval.push( opt.table_name ? "&table_name=" + opt.table_name : "");
    retval.push( opt.optionResult ? "&optionResult=" + opt.optionResult : "");
    return retval.join("");
}

my_url("?z=z",  { page_name : "pageX" /* no table_name and optionResult */ } );

/* Returns:
     ?z=z&page_name=pageX
*/

이렇게 하면 사용할 수 없습니다.typeof whatever === "undefined"(또한 문자열 연결이 없습니다.)

변수를 직접 확인하시면 됩니다.정의되지 않은 경우 잘못된 값을 반환합니다.

var string = "?z=z";
if (page_name) { string += "&page_name=" + page_name; }
if (table_name) { string += "&table_name=" + table_name; }
if (optionResult) { string += "&optionResult=" + optionResult; }

언급URL : https://stackoverflow.com/questions/1485840/whether-a-variable-is-undefined

반응형