itsource

변수를 인수로 정의되지 않음 또는 전달되지 않음으로 설정할 수 있습니까?

mycopycode 2022. 9. 18. 10:18
반응형

변수를 인수로 정의되지 않음 또는 전달되지 않음으로 설정할 수 있습니까?

JavaScript에 대해서 조금 혼란스럽네요.undefined그리고.null가치.

무엇인가.if (!testvar)정말 그럴까?테스트 대상입니까?undefined그리고.null아니면 그냥undefined?

변수가 정의되면 다시 클리어할 수 있습니까?undefined(변수를 삭제하지 않음)

통과해도 될까요?undefined매개 변수로요?예:

function test(var1, var2, var3) {

}

test("value1", undefined, "value2");

Javascript undefined와 null이 조금 헷갈립니다.

null는 일반적으로 아웃오브밴드 'null', 'nil' 또는 'None' 오브젝트의 다른 스크립트 언어 개념과 동일하게 동작합니다.

undefined한편, 이상한 JavaScript 괴짜입니다.아웃 오브 밴드 값을 나타내는 싱글톤 객체입니다.기본적으로 비슷하지만 다른 두 번째 객체입니다.null다음 메시지가 나타납니다.

  1. 의 인수 리스트보다 적은 인수로 함수를 호출한 경우function스테이트먼트 리스트, 통과되지 않은 인수는undefined다음과 같이 테스트 할 수 있습니다.

    function dosomething(arg1, arg2) {
        if (arg2===undefined)
        arg2= DEFAULT_VALUE_FOR_ARG2;
        ...
    }
    

    이 방법으로는 이 두 가지를 구별할 수 없습니다.dosomething(1)그리고.dosomething(1, undefined);arg2둘 다 같은 값이 됩니다.차이점을 알고 싶다면arguments.length그러나 그와 같은 선택적 주장을 하는 것은 일반적으로 매우 읽기 어렵습니다.

  2. 함수에 없는 경우return value;, 반환됩니다.undefined. 일반적으로 이러한 반품 결과를 사용할 필요가 없습니다.

  3. 변수를 선언할 때,var a블록 내의 스테이트먼트, 그러나 아직 값을 할당하지 않은 스테이트먼트, 즉,undefined다시 한 번 말씀드리지만, 그런 것에 의존할 필요는 없습니다.

  4. 으스스하다typeof연산자가 반환하다'undefined'피연산자가 존재하지 않는 단순한 변수인 경우 참조하려고 할 때 일반적으로 발생하는 오류를 발생시키지 않습니다(또한 괄호로 둘러싸인 단순한 변수를 지정할 수도 있지만 존재하지 않는 변수를 포함하는 완전한 식은 지정할 수 없습니다).그것도 별로 쓸모가 없어요.

  5. 이것은 논란의 여지가 있는 것이다.존재하지 않는 객체의 속성에 액세스 할 때 다른 모든 언어에서와 같이 오류가 즉시 발생하는 것은 아닙니다.그 대신에,undefined오브젝트. (그리고 그것을 사용하려고 하면undefined오브젝트는 스크립트에서 나중에 잘못되기 때문에 JavaScript가 바로 오류를 발생시킨 경우보다 추적하기가 훨씬 어렵습니다.)

    이는 종종 속성의 존재를 확인하기 위해 사용됩니다.

    if (o.prop!==undefined) // or often as truthiness test, if (o.prop)
       ...do something...
    

    단, 할당이 가능하기 때문에undefined다른 값과 마찬가지로

    o.prop= undefined;
    

    실제로 그 특성이 확실하게 있는지 아닌지를 감지하지 못합니다.를 사용하는 것이 좋습니다.in운영자: 원래 Netscape 버전의 JavaScript에는 없었지만, 현재는 어디에서나 사용할 수 있습니다.

    if ('prop' in o)
        ...
    

「」입니다.undefinedJavaScript 고유의scriptscriptscriptscriptscriptscriptscriptscript 。에 더 우아한 이 없는 함수 와는 별도로 JS는 더 우아한 메커니즘이 .undefined피해야 합니다.는 안 null는 (2) 및 (3 (4)는에 JavaScript에 때문에 2) (3)는 JavaScript입니다.(4)는 JavaScript입니다.

이냐.무.무.무.무.무.무.무슨.if (!testvar)? 정의되지 않은지 만 하나요정의되지 않은 것과 늘을 테스트합니까, 아니면 정의되지 않은 것만을 테스트합니까?

는 '진실성'을 한다.false,undefined,null,0,NaN을 사용하다이 에는 정말 '아까', '아까', '아까', '아까', '아까', '아까' .undefined그것은 관계하고 있다.그 좀 더 하게 IMO라고 말해야 .if (testvar!==undefined).

변수가 정의되면 다시 정의되지 않은 상태로 클리어할 수 있습니까(따라서 변수를 삭제).

을 할 수 있습니다.undefined그래도 변수가 삭제되지는 않습니다.delete object.property이치노

delete변수라기보다는 속성을 위한 것입니다.에서는 스트레이트 스트레이트로 수 .delete variableECMAScript 제5판 엄밀을 자유롭게 을 할 수 하고 , '쓰레기 수집을 하다'라고 말하는 이 더 입니다.variable= null.

파라미터로 정의되지 않은 패스할 수 있습니까?

네.

변수는 더 이상 정의되지 않기 때문에 정의되지 않은 것으로 정의할 수 없습니다(정의되지 않아야 함). 단순히 정의했을 입니다.

할 수 없다undefined연회에.기능을 제공합니다.만약 빈 값에 합격하고 싶빈 값을 전달하려면을 사용한다.null대신.대신.

그 성명 스테이트먼트if(!testvar)부울 true/false 값을 검사합니다, 이 특정한 것인지 부울true/false 값을 체크합니다를 테스트합니다.이 특정 값은이 테스트합니다.testvar까지 평가하다에 계산된다.false정의., 정의상까지null그리고 그리고.undefined라고도 평가되어서는안 된다 있으며 어느 평가될 것 같은데요.true또는 또는false하지만 자바 스크립트 단, 평가한다 JavaScript는null~하듯이로false만약 당신이 정의되지 않은 변수를 평가하기 위해 노력하며, 오류가 발생한다.정의되지 않은 변수를 평가하려고 하면 오류가 표시됩니다.

「 」의 적절한 를 실시하기 .undefined ★★★★★★★★★★★★★★★★★」null , , 을 사용합니다.

if(typeof(testvar) === "undefined") { ... }

if(testvar === null) { ... }

기본적인 차이점은 입니다.undefined ★★★★★★★★★★★★★★★★★」null다른 개념을 나타냅니다.

다다 if ifnull를 사용할 수 있는 경우는, 「할 수 없다」, 「사용할 수 없다」, 「사용할 수 없다」의 유무를 할 수 .null는 의도적으로 값으로 설정되었습니다.또는 번거로운 에러 캐치를 사용하지 않는 한 아직 값이 설정되지 않았는지 여부를 나타냅니다.를를,, 음음음음음음음음

var a;

a == null; // This is true
a == undefined; // This is true;
a === undefined; // This is true;

단,으로 값을 '비밀번호'로 null , 「」undefined나기 에, 「이러다」, 「이러다」, 「이러다」를 할 수 .null ★★★★★★★★★★★★★★★★★」undefined§:

var b = null;
b == null; // This is true
b == undefined; // This is true;
b === undefined; // This is false;

"요컨대, 정의되지 않은 것은 JavaScript 고유의 혼란으로 모든 사람을 혼란스럽게 한다"와 같이 무시한 채 말하는 사람들에 의존하지 말고 여기에서 참조를 확인하십시오.혼란스럽다고 해서 엉망인 것은 아닙니다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined

가 "JavaScript"가 될 수 합니다.true,false알 수 없음(sknown ( )null없음(예: 음음(((( ), undefined잘못되었다.error를 참조해 주세요.

http://en.wikipedia.org/wiki/Undefined_value

null 값을 확인하는 가장 좋은 방법은

if ( testVar !== null )
{
    // do action here
}

정의되지 않은 경우

if ( testVar !== undefined )
{
    // do action here
}

는 미정의로 할당할 수 있습니다.

testVar = undefined;
//typeof(testVar) will be equal to undefined.

네, 정의되지 않은 것은 정의되지 않은 것으로 정의되어 있습니다.

console.log(
   /*global.*/undefined === window['undefined'] &&
   /*global.*/undefined === (function(){})() &&
   window['undefined']  === (function(){})()
) //true

고객님의 경우:

test("value1", undefined, "value2")

독자적인 미정의 변수를 작성할 도 있습니다.

Object.defineProperty(this, 'u', {value : undefined});
console.log(u); //undefined

번째 질문에 , 「 「 」 「 」 「 」 )가 .!)는 지정된 값을 모두 부울 값으로 강제합니다.그렇게null,0,false,NaN그리고.""(빈 문자열)은 모두 false로 표시됩니다.

JavaScript, 명령줄에서 변수를 정의되지 않음으로 설정하는 방법:

에서 변수를 정의되지 않음으로 설정합니다.jsUbuntu 12.10에서 Java와 함께 제공되는 javascript 명령줄 터미널.

el@defiant ~ $ js

js> typeof boo
"undefined"

js> boo
typein:2: ReferenceError: boo is not defined

js> boo=5
5

js> typeof boo
"number"

js> delete(boo)
true

js> typeof boo
"undefined"

js> boo
typein:7: ReferenceError: boo is not defined

Javascript에서 변수를 정의되지 않음으로 설정한 경우:

myjs.html에 넣습니다.

<html>
<body>
    <script type="text/JavaScript">
        document.write("aliens: " + aliens);
        document.write("typeof aliens: " + (typeof aliens));
        var aliens = "scramble the nimitz";
        document.write("found some aliens: " + (typeof aliens));
        document.write("not sayings its aliens but... " + aliens);
        aliens = undefined;
        document.write("aliens deleted");
        document.write("typeof aliens: " + (typeof aliens));
        document.write("you sure they are gone? " + aliens);
    </script>
</body>
</html>

다음과 같이 출력됩니다.

aliens: undefined
typeof aliens: undefined
found some aliens: string
not sayings its aliens but... scramble the nimitz
aliens deleted
typeof aliens: undefined
you sure they are gone? undefined

경고! 변수를 정의되지 않음으로 설정하면 변수를 다른 변수로 설정하는 것입니다.만약 어떤 교활한 사람이 도망친다면undefined = 'rm -rf /';변수를 정의되지 않음으로 설정할 때마다 해당 값이 수신됩니다.

어떻게 하면 처음에 정의되지 않은 가치 외계인을 출력하고 계속 실행할 수 있는지 궁금하실 수도 있습니다.javascript hoosting 때문입니다.http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

이것을 시험해 보세요.

// found on UglifyJS
variable = void 0;

재미삼아 변수에 "할당되지 않음"을 할당하는 꽤 안전한 방법이 있습니다.충돌하려면 무작위로 생성된 문자열과 정확히 동일한 이름을 가진 개체를 위한 프로토타입에 누군가가 추가해야 합니다.랜덤 문자열 생성기를 개선할 수 있다고 확신하지만, 이 질문에서 하나를 선택하였습니다.JavaScript에서 랜덤 문자열/문자 생성

이것은 새로운 오브젝트를 만들고 랜덤하게 생성된 이름으로 오브젝트상의 속성에 액세스하려고 하는 것으로 동작합니다.이러한 속성은 존재하지 않기 때문에 값이 정의되지 않은 것으로 간주됩니다.

function GenerateRandomString() {
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for (var i = 0; i < 50; i++)
        text += possible.charAt(Math.floor(Math.random() * possible.length));

    return text;
}

var myVar = {}[GenerateRandomString()];

의 경우if (something)그리고.if (!something)일반적으로 정의되어 있는지 여부를 확인할 때 사용합니다.예를 들어 다음과 같습니다.

if (document.getElementById)

식별자는 부울값으로 변환됩니다.undefined로 해석되다false물론 다음과 같이 해석되는 다른 값(0이나 " 등)도 있습니다.false단, 식별자에 이러한 값이 합리적으로 포함되어서는 안 됩니다.또는 이러한 값을 정의되지 않은 값과 동일하게 취급하는 것에 만족합니다.

Javascript에는delete개체의 구성원을 삭제하는 데 사용할 수 있는 연산자.변수의 범위(예: 전역인지 여부)에 따라 변수를 삭제하여 정의되지 않도록 할 수 있습니다.

거기에는 없다undefined정의되지 않은 리터럴로 사용할 수 있는 키워드입니다.함수 호출에서 매개 변수를 생략하여 정의할 수 있지만, 함수에 매개 변수를 적게 보내는 경우에만 사용할 수 있습니다. 중간에 매개 변수를 생략할 수 없습니다.

언급URL : https://stackoverflow.com/questions/2235622/can-i-set-variables-to-undefined-or-pass-undefined-as-an-argument

반응형