내가 jQuery 의 기능을 내장한 로다시 / 밑줄 또는 사용 권장. # 39, re 간단해진다는 they& 사용할 수 있고 쉽게 읽을 수 있습니다.
드랙스 인컨텍스트 함수은 다뤄야 할 경우 언급되지 않았다. 즉, (A) 모두 있는지 가변입니다 문자열으로 ipv6-literal. 또는 (B) 의 인스턴스입니다 it& # 39 는 문자열 객체를. 두 경우 모두, 이러한 기능은 가치를 올바르게 식별됩니다 部门是这样的 문자열으로.
로다시 / 언더스코엘가이스 *
if(_.isString(myVar))
//it's a string
else
//it's something else
jQuery *
if($.type(myVar) === "string")
//it's a string
else
//it's something else
var s = 'String';
var a = [1,2,3];
var o = {key: 'val'};
(s.constructor === String) && console.log('its a string');
(a.constructor === Array) && console.log('its an array');
(o.constructor === Object) && console.log('its an object');
(o.constructor === Number || s.constructor === Boolean) && console.log('this won\'t run');
이러한 각 해당 클래스 등 기능에 ", 새로운 객체 () 가 만든 설정되었습니다 ". 상술합니다.
또한 덕 타이핑:
같은 it looks like a 덕, 볼넷, 만약 " 오리 - 오리 및 스멜스 라이크 비활성화해야 오버클로킹된 Array".
마무리라뇨 그 속성을 선택합니다.
ᄋ "이번 도움이 됩니다.
편집. 12/05/2016
항상 flfile. 외곽진입 조합이 너무 너희에게베풀어진 수 있습니다. # 39 의 사용 예는 here& 로 메리 페로프 인라인 매핑해야 작업:
var type = { 'number': Math.sqrt.bind(Math), ... }[ typeof datum ];
39, & # 39, 실제 world& # 39 더 here& 한다. 인라인 매핑하므로 사용의 예:
[사용자 정의] " type-casting", 이 기능을 사용하게 된다. - 오히려 " type-/-value-mapping"; - 그림 아웃해야 가변적입니다 " 경우 실제로 exists";). 이제 사이에 있는 'null' nasty 머리는요 분할합니다 &. '0'!
, T care about 그 유형을 너회가 don& # 39 여러 차례 했다. 를 결합한 해결하기 위해 또 다른 방법은 는 더크 유형 세트:
this.id = "998"; // use a number or a string-equivalent
function get(id) {
if (!id || !id.toString) return;
if (id.toString() === this.id.toString()) http( id || +this.id );
// if (+id === +this.id) ...;
}
'및' '모두' 누마베리프로토티페 스트린고드프로토티페 투명지에 '네스토스트링 () 메서드를'. 구체화하십시오 avamer 만든 수 있는지 확인한 다음, it was the same http '지' 역할을 수행한 '숫자' 를 합니다. 즉, 우리는 그 유형을 잘 , * # 39 는 didn& 못할 정도였습니다.
난 왜 안 될 것 "이라고 한 can& # 39, t 장난하는거아니고 지켜보리니 메리 페로프 사용하여 간단히 '' 이 경우:
if (typeof str === 'string') {
return 42;
}
예 이 어하여 페일오버됩니다 랩된 객체에는 문장열 (예를 들어, 문자열 (& # 39, foo& # 39;) '새') 이 널리 알려져 있지만 대부분의 현대 개발 툴은 그들의 잘못된 관행과 막기 위해 사용하는 것으로 보인다. (즉, 하나, 그냥 해결하십시오!)
이 모든 일을 '트릭' 는 오브ject.프로토티페스투스트링 생각하신거야 프런트엔트 개발자 유죄판결을 받은 적이 있지만, 어느 날 자신의 경력을 don& # 39 의 란드어 영리한 바보 t let it 얻을 수 있다. 또 뭔가 몽키 패치합니다 대로 분할합니다 객체에는 시제품:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
이들은 모두 성능에 영향을 미칠 수 있다는 것, 예쁜 간단하지는 어떤 것들이 있을까요? 일반적으로 함수를 호출할 수 있으며, 특히 don& what& # 39 의 경우 비싸다구요 모르는 일이 몸에요 # 39. 예를 들어, 함수 호출이 있습니다 # 39 의 첫 번째 Object& toString 메서드입니다. 예를 들어, 함수 호출을 없기 때문에, 두 번째 메리 페로프 및 instanceof 있는 것으로 알려졌다. 연산자는 함수 호출을 비해 훨씬 빠르게.
var a = new String('')
var b = ''
var c = []
function isString(x) {
return x !== null && x !== undefined && x.constructor === String
}
console.log(isString(a))
console.log(isString(b))
console.log(isString(c))
이게 works for me.
'' 연산자입니다 메리 페로프 사용할 수 있습니다.
예) 에서 이 웹사이트는. (예) 는 약간 수정된 표시되어도).
39 의 경우, 이 t 작동합니까 won& 예상대로 '새' 로 만든 문장열 문자열 () 는 거의 사용되지 않고 있지만, 이는 sup>\, [1], [2] < /sup> 권장됨 against<;). 이 경우, 다른 볼 처리 방법에 대한 답변을 하고 있다.
580+ 명이 찬성표를 던진 이후 틀린 답을 가지고 투표할 수 있다고 하지만, 샷건 스타일 작업 및 800+ 오토메이티드 생각해봤죠 제 대답은 간단하고 누구나 올릴 수 있게 명령복구하기 있는 형태로 이해할 수 있다.
또는, 인라인 (나는 오버클로킹된 울티스니프 설정 엔드입니다):
FYI, 파블로 산타 Cruz& # 39 에 답이 있기 때문에 문자열 (string" ";) '는' 잘못 '메리 페로프 새로운 개체'
39 의 정확한 답이 drax& 정답 및 기능, 됩니다. (이후 파블로 Santa Cruz 가장 말해둘꼐요 won& # 39, t, 내가 잘못된 것에 대해 일반 투표에서.)
그러나 실제로 이 질문에 대한 해답을 피쳐이면 말해둘꼐요 수정, 제외하고, 아마도 대한 제안을 통해 로다시 / 밑줄). disclaimer: 난 4 codebase. 로다시 기여했다
내 원래 오토메이티드 (이것은 분명히 하기 위한 대한 권리를 많은 앞면이야) 다음과 같다.
내가 이런 언더스코엘가이스 코드:
이슬링 정의할 수 있는, 이스 움베르, etc.
이 있는 node. js, 모듈로 구현할 수 있습니다.
드랙스 인컨텍스트 함수은 다뤄야 할 경우 언급되지 않았다. 즉, (A) 모두 있는지 가변입니다 문자열으로 ipv6-literal. 또는 (B) 의 인스턴스입니다 it& # 39 는 문자열 객체를. 두 경우 모두, 이러한 기능은 가치를 올바르게 식별됩니다 部门是这样的 문자열으로.
[로다시 _.isString 문서 ()] [1] 에서 자세한 내용을 참조.
자세한 내용은 참조 jQuery 문서용으로 스티페 달러 에 ().
[1]: https://lodash.com/docs # 이슬링
여기서 그걸 봤다.
http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/
가장 좋은 방법이다.
이러한 각 해당 클래스 등 기능에 ", 새로운 객체 () 가 만든 설정되었습니다 ". 상술합니다.
또한 덕 타이핑: 같은 it looks like a 덕, 볼넷, 만약 " 오리 - 오리 및 스멜스 라이크 비활성화해야 오버클로킹된 Array". 마무리라뇨 그 속성을 선택합니다.
ᄋ "이번 도움이 됩니다.
편집. 12/05/2016
항상 flfile. 외곽진입 조합이 너무 너희에게베풀어진 수 있습니다. # 39 의 사용 예는 here& 로 메리 페로프 인라인 매핑해야 작업:
39, & # 39, 실제 world& # 39 더 here& 한다. 인라인 매핑하므로 사용의 예:
[사용자 정의] " type-casting", 이 기능을 사용하게 된다. - 오히려 " type-/-value-mapping"; - 그림 아웃해야 가변적입니다 " 경우 실제로 exists";). 이제 사이에 있는 'null' nasty 머리는요 분할합니다 &. '0'!
, T care about 그 유형을 너회가 don& # 39 여러 차례 했다. 를 결합한 해결하기 위해 또 다른 방법은 는 더크 유형 세트:
더 할 수 있는 희망을 작동합니까:)
난 왜 안 될 것 "이라고 한 can& # 39, t 장난하는거아니고 지켜보리니 메리 페로프 사용하여 간단히 '' 이 경우:
예 이 어하여 페일오버됩니다 랩된 객체에는 문장열 (예를 들어, 문자열 (& # 39, foo& # 39;) '새') 이 널리 알려져 있지만 대부분의 현대 개발 툴은 그들의 잘못된 관행과 막기 위해 사용하는 것으로 보인다. (즉, 하나, 그냥 해결하십시오!)
이 모든 일을 '트릭' 는 오브ject.프로토티페스투스트링 생각하신거야 프런트엔트 개발자 유죄판결을 받은 적이 있지만, 어느 날 자신의 경력을 don& # 39 의 란드어 영리한 바보 t let it 얻을 수 있다. 또 뭔가 몽키 패치합니다 대로 분할합니다 객체에는 시제품:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
I like to use this 단순한 솔루션:
이 사례는 왜 낮은 성능 문제:
시험 등 간단한 일을 제대로 하지 않은 경우 문자열으로 비싸다구요 수 있습니다.
예를 들어, 내가 하고 싶은 테스트하려면 뭔가 내가 할 수 있는 함수를 작성할 경우 문자열으로, 이 두 가지입니다.
= str = 'const 이슬링 >. (오브ject.프로토티페스투스트링스콜 (str) = & # 39, & # 39, [객체에는 구체화하십시오]), '
= str = 'const 이슬링 >. (# 39, & # 39 string& 메리 페로프 str =;) ' (string str instanceof));
이들은 모두 성능에 영향을 미칠 수 있다는 것, 예쁜 간단하지는 어떤 것들이 있을까요? 일반적으로 함수를 호출할 수 있으며, 특히 don& what& # 39 의 경우 비싸다구요 모르는 일이 몸에요 # 39. 예를 들어, 함수 호출이 있습니다 # 39 의 첫 번째 Object& toString 메서드입니다. 예를 들어, 함수 호출을 없기 때문에, 두 번째 메리 페로프 및 instanceof 있는 것으로 알려졌다. 연산자는 함수 호출을 비해 훨씬 빠르게.
예 2, 79% 는 성능 테스트됩니다 example1 때 보다 느린!
지켜보리니 테스트: https://jsperf.com/isstringtype
로다시 가져온 것입니다.
내장 함수를 사용하여 작업할 경우 node. js 환경에 있는 유틸리티인 이슬링 됩니다.
편집: 이 때문에 v4 로 @Jehy 는 사용되지 않았다.
90% 에 충분할 것 같은데 @customcommander 솔루션을 통해 할 수 있었다.
/Dev/raw/raw200 경배하되 알았죠 (앨리어스가 이후 일반적으로 there& # 39 의 이유가 있는 '새 문자열 (& # 39, something& # 39;)' 의 코드에).
39 '이 아니라' 문자열 처리, re 로케이터로 you& 관심이 있는 경우 (예를 들어 일부 3rd party 에서 작성되지는 var) 을 사용하는 것처럼 단순하고 우아한 솔루션이므로 명확한 로다시 @ClearCloud8 제안됩니다 같다
그러나 신중한 접근이 꼭 이래야겠어요 제안하세요 라이브러리를 사용한 로다시 인해 같은 크기. 하는 대신
이는 전체 큰 로다시 객체에는 # 39 는 다음과 같은 항목을 제안하세요, I&; d
또한 단순한 번들링은 괜찮을 합니다 (I) 는 다음과 같은 코드를 클라이언트로 여기).
단순 솔루션 다음과 같습니다.
다음 방법을 사용하면 있는지 확인합니다 가변입니다 문자열으로 ( com/go/4e6b330a_kr 존재하지 않는 등).
난 또 다른 예는 시간보다 짧은 것으로, 그 많이유 너무 이 작동합니다.
빈 quote 의 값이 바뀌어 연결하여 붙여넣습니다 구체화하십시오. 만약 < code> myVar< /code>;;; 이미 문자열으로 어졌다면 if 문은 성공했습니다.
내가 이 단순한 기법을 찾기 위한 유용한 유형 검사 구체화하십시오 -
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
너무 같은 기법을 사용할 수 -
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
및 정규 표현식 -
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
NB, 정규 표현식, 어레이에는, 기능이 너무 객체에는 꼽히고 있다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
그러나 , 는 어레이입니다 확인 좀 다른 -
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
끝 - < 스니핏 >;!
이것은 good enough for me.
이 아래와 같이 사용할 수 있습니다.
답변 # 39 의 단순히 확장하십시오 @DRAX& I& # 39, d, s, 이렇게:
또한 '와' 의 '유형이 정의되지 않은 것이라고 계정에게 nulll 잘있게나' 0 '의 문자열이 아닌 것 같은 유형.
A 메리 페히커 도우미. "' 함수은 이프롬티페 (가변으로 mm_mail_doc.) { if (# 39, & # 39 string& 메리 페로프 유형 =;) res = (메리 페로프 변수 = 티페스톨로베르케이스 ()) 다른 res = (바리아브레이컨스트라우스 = type) 반품하십시오 res } "' 사용법: "' 이프롬티페 (& # 39, & # 39 string& # 39 cs& # 39;;;;) //true //true 이프롬티페 (& # 39, cs& # 39, 문자열) 이프롬티페 ([# 39, & # 39, cs&], 어레이입니다) //true 이프롬티페 ([& # 39, cs& # 39;] # 39, & # 39 object&;;) //false "' 또한 스케쳐내 재귀적 수 있도록 같은 개체를 배열입니다) ',' instanceof 사용할 수 있습니다.
(' [& # 39, cs& # 39;] / / instanceof 객체에는 진정한 ')