de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 Olical
Olical
Question

Sprawdź, czy zmienna jest ciągiem znaków w JavaScript

Jak mogę określić, czy zmienna jest ciągiem znaków czy czymś innym w JavaScript?

1539 2010-10-30T14:36:34+00:00 3
 ScottyG
ScottyG
Edytowane pytanie 7. listopada 2017 в 3:55
Programowanie
javascript
Popular videos
JavaScript String Contains: How to check a string exists in another
JavaScript String Contains: How to check a string exists in another
3 lata temu
Kurs programowania w JavaScript w 8h od podstaw
Kurs programowania w JavaScript w 8h od podstaw
9 miesięcy temu
Operatory porównania w JavaScript - [Szybki Kurs JavaScript] #13
Operatory porównania w JavaScript - [Szybki Kurs JavaScript] #13
1 rok temu
Javascript: How to check if a string is a Number
Javascript: How to check if a string is a Number
6 lat temu
Kurs C od podstaw #15 - Znaki i ciągi znaków (string)
Kurs C od podstaw #15 - Znaki i ciągi znaków (string)
2 lata temu
JAVASCRIPT - Pytania na rozmowę kwalifikacyjną (LIVE QUIZ)
JAVASCRIPT - Pytania na rozmowę kwalifikacyjną (LIVE QUIZ)
1 rok temu
Po co są callbacki i jak ich używać?
Po co są callbacki i jak ich używać?
2 lata temu
JavaScript : How to check if a variable is null or empty string or all whitespace in JavaScript?
JavaScript : How to check if a variable is null or empty string or all whitespace in JavaScript?
4 miesiące temu
Zostań Programistą JavaScript #12 - Ciągi znaków, typ String - Kurs Javascript
Zostań Programistą JavaScript #12 - Ciągi znaków, typ String - Kurs Javascript
1 rok temu
String (ciągi tekstowe) - kurs JavaScript ES6+
String (ciągi tekstowe) - kurs JavaScript ES6+
8 miesięcy temu
JavaScript: Zmienne, stałe i typy danych - Mr. WEBSKI
JavaScript: Zmienne, stałe i typy danych - Mr. WEBSKI
1 rok temu
Zostań Programistą JavaScript #2 - Typy Zmiennych - Kurs Javascript
Zostań Programistą JavaScript #2 - Typy Zmiennych - Kurs Javascript
1 rok temu
Kurs Javascript: Zmienne w Javascript - czym są zmienne?
Kurs Javascript: Zmienne w Javascript - czym są zmienne?
7 lat temu
2# JavaScript od Zera do Bohatera - Zmienne
2# JavaScript od Zera do Bohatera - Zmienne
4 lata temu
Zostań Programistą JavaScript #1 - Zmienne - Kurs Javascript
Zostań Programistą JavaScript #1 - Zmienne - Kurs Javascript
1 rok temu
Java Script dla początkujących || Zmienne
Java Script dla początkujących || Zmienne
10 miesięcy temu
JavaScript 10 typy string
JavaScript 10 typy string
1 rok temu
Dlaczego warto DOBRZE znać JavaScript | Przeprogramowani ft.code v0.0.30
Dlaczego warto DOBRZE znać JavaScript | Przeprogramowani ft.code v0.0.30
2 lata temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
 DRAX
DRAX
24. lutego 2012 в 7:38
2012-02-24T19:38:24+00:00
Więcej
Źródło
Edytuj
#11263629

To jest to, co działa dla mnie:

if (typeof myVar === 'string' || myVar instanceof String)
// it's a string
else
// it's something else
Mark Amery
Mark Amery
Edytowana odpowiedź 16. lutego 2017 в 7:25
1750
0
Solution / Answer
Pablo  Santa Cruz
Pablo Santa Cruz
30. października 2010 в 2:40
2010-10-30T14:40:41+00:00
Więcej
Źródło
Edytuj
#11263628

Możesz użyć operatora typeof:

var booleanValue = true; 
var numericalValue = 354;
var stringValue = "This is a String";
var stringObject = new String( "This is a String Object" );
alert(typeof booleanValue) // displays "boolean"
alert(typeof numericalValue) // displays "number"
alert(typeof stringValue) // displays "string"
alert(typeof stringObject) // displays "object"

Przykład z tej strony. (Przykład został jednak nieco zmodyfikowany).

To nie będzie działać zgodnie z oczekiwaniami w przypadku łańcuchów utworzonych za pomocą new String(), ale jest to rzadko używane i zalecane przeciwko. Zobacz inne odpowiedzi, aby dowiedzieć się, jak sobie z tym poradzić, jeśli chcesz.


  1. The Google JavaScript Style Guide mówi, aby nigdy nie używać prymitywnych wrapperów obiektów.
  2. Douglas Crockford zaleca, aby prymitywne zawijasy obiektów zostały zdeprecjonowane.
 WD40
WD40
Edytowana odpowiedź 6. listopada 2018 в 8:14
1496
0
 Cody
Cody
25. kwietnia 2013 в 1:15
2013-04-25T13:15:53+00:00
Więcej
Źródło
Edytuj
#11263630

Najlepszy sposób:

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');

Każdy z nich został skonstruowany przez odpowiednią funkcję swojej klasy, jak "new Object()" itd.

Również, Duck-Typing: "Jeśli wygląda jak kaczka, chodzi jak kaczka i pachnie jak kaczka - musi być Array" Znaczenie, sprawdź jego właściwości.

Mam nadzieję, że to pomoże.

Edit; 12/05/2016

Pamiętaj, że zawsze możesz też użyć kombinacji podejść. Oto'przykład użycia inline map działań z typeof:

var type = { 'number': Math.sqrt.bind(Math), ... }[ typeof datum ];

Oto bardziej 'prawdziwy świat' przykład użycia map inline:

function is(datum) {
    var isnt = !{ null: true, undefined: true, '': true, false: false, 0: false }[ datum ];
    return !isnt;
}
console.log( is(0), is(false), is(undefined), ... );  // >> true true false

Ta funkcja użyłaby [ custom ] "type-casting" -- raczej, "type-/-value-mapping" -- aby dowiedzieć się, czy zmienna faktycznie "istnieje". Teraz możesz rozdzielić ten paskudny włos pomiędzy null & 0!

Wiele razy nie obchodzi cię nawet jej typ. Innym sposobem na obejście typowania jest łączenie zestawów Duck-Type:

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) ...;
}

Zarówno Number.prototype jak i String.prototype mają metodę .toString(). Po prostu upewniłeś się, że odpowiednik łańcuchowy liczby jest taki sam, a następnie upewniłeś się, że przekazałeś go do funkcji http jako Number. Innymi słowy, nie dbaliśmy nawet o to, jaki był jej typ.

Mam nadzieję, że to da ci więcej do pracy :)

 Cody
Cody
Edytowana odpowiedź 5. grudnia 2016 в 7:02
24
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
365
Zarejestrowany 1 dzień temu
2
True Image
Zarejestrowany 1 dzień temu
3
archana agarwal
Zarejestrowany 3 dni temu
4
Maxim Zhilyaev
Zarejestrowany 6 dni temu
5
adambotsfford adambotsfford
Zarejestrowany 1 tydzień temu
BG
DA
DE
EL
ES
FI
FR
HU
ID
IT
JA
KO
LV
NL
PL
PT
RU
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem