String
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
* Some parts of this feature may have varying levels of support.
Sumário
O objeto global String é um construtor para strings, ou uma sequência de caracteres.
Sintaxe
As formas literais de declaração de String são:
'string text' "string text" "中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어"
Além da forma regular, de caracteres de impressão, caracteres especiais podem ser codificados usando a escape notation (notação com barra invertida):
| Codigo | Saida |
|---|---|
| \0 | o caractere NULL |
| \' | aspas simples |
| \" | aspas duplas |
| \\ | barra invertida |
| \n | nova linha |
| \r | carriage return |
| \v | tab vertical |
| \t | tab |
| \b | backspace |
| \f | form feed |
| \uXXXX | unicode codepoint |
| \xXX | the Latin-1 character |
Ou, usando o objeto global String diretamente:
String(thing) new String(thing)
Parâmetros
thing-
Qualquer coisa a ser convertida para uma string.
Descrição
Strings são úteis para guardar dados que podem ser representados em forma de texto. Uma das operações mais usadas nas strings é checar seu tamanho, para construir e concatená-las usando os operadores + e +=, checando pela existência ou posição de substrings com o método indexOf , ou extrair substrings com o método substring.
Acesso à caractere
Há duas maneiras de acessar um caractere individual em uma string. A primeira é o método charAt:
return "cat".charAt(1); // returns "a"
A outra maneira (introduzido no ECMAScript 5) consiste em tratar a string como um objeto Array-like, onde os caráteres individuais correspondem a um índice numérico:
return "cat"[1]; // returns "a"
Para acesso de caracteres usando uma notação de colchetes, tentando deletar ou designar um valor a estas propriedades não haverá sucesso. As propriedades envolvidas não são nem escritas ou configuráveis. (Veja Object.defineProperty para mais informações.)
Comparando strings
Desenvolvedores de C têm a função strcmp() para comparar strings. No JavaScript, basta usar o operador maior que e menor que:
var a = "a";
var b = "b";
if (a < b)
// verdadeiro
print(a + " é menor que " + b);
else if (a > b) print(a + " é maior que " + b);
else print(a + " e " + b + " são iguais.");
Um resultado similar pode ser alcançado usando o método localeCompare herdado pelas instâncias de String.
Distinção entre String primitiva e objetos String
Note que o JavaScript distingue entre objetos String e valores de string primitivas. (O mesmo é válido para Boolean e Numbers.)
Strings literais (definidas por aspas duplas ou aspas simples) e strings retornadas da chamada da função String fora do contexto de uma função construtora (sem o uso da palavra chave new) são strings primitivas. O JavaScript converte automaticamente strings primitivas para objetos do tipo String, por isso é possível utilizar os métodos do objeto String através de strings primitivas. Em contextos onde um método é invocado de uma string primitiva ou uma propriedade é procurada, o JavaScript irá criar um objeto com a string primitiva e executar o método ou acessar a propriedade procurada.
var s_prim = "foo";
var s_obj = new String(s_prim);
console.log(typeof s_prim); // Loga "string"
console.log(typeof s_obj); // Loga "object"
String primitivas e objetos String também dão resultados diferentes quando usado eval. Primitivas passadas para eval são tratadas como código fonte; Objetos String são tratados como todos os outros objetos são, retornando o objeto. Por exemplo:
s1 = "2 + 2"; // cria uma string primitiva
s2 = new String("2 + 2"); // cria um objeto de String
console.log(eval(s1)); // retorna o número 4
console.log(eval(s2)); // retorna a string "2 + 2"
Por estas razões, o código pode quebrar quando encontra objetos String quando espera na verdade uma string primitiva, apesar de que geralmente autores não precisam se preocupar com a distinção.
Um objeto String pode ser convertido sempre para sua contraparte primitiva com o método valueOf.
console.log(eval(s2.valueOf())); // retorna o número 4
Nota:
Para uma outra possível abordagem para strings em JavaScript, favor ler o artigo sobre StringView – a C-like representation of strings based on typed arrays.
Propriedades
String.prototype-
Permite a adição de propriedades a um objeto String.
Métodos
String.fromCharCode()-
Retorna uma string criada usando a sequência especificada de valores Unicode.
String.fromCodePoint()Experimental-
Retorna uma string criada usando a sequência especificada de posições de código.
Métodos genéricos de Strings
Métodos de instância String também estão disponíveis no Firefox a partir de JavaScript 1.6 (embora não faça parte dos padrões ECMAScript) no objeto String para aplicar métodos String a qualquer objeto:
var num = 15;
alert(String.replace(num, /5/, "2"));
Genéricos também estão disponíveis em métodos Array.
O seguinte é uma implementação para fornecer suporte a navegadores sem suporte:
/*globals define*/
// Assume que todos os métodos de instância String fornecidos
// já presentes (podem ser usadas implementações para este se não disponível)
(function () {
"use strict";
var i,
// Nós também poderíamos construir o array de métodos com os seguintes,
// mas o método getOwnPropertyNames() não é implementável:
// Object.getOwnPropertyNames(String).filter(function (methodName)
// {return typeof String[methodName] === 'function'});
methods = [
"quote",
"substring",
"toLowerCase",
"toUpperCase",
"charAt",
"charCodeAt",
"indexOf",
"lastIndexOf",
"startsWith",
"endsWith",
"trim",
"trimLeft",
"trimRight",
"toLocaleLowerCase",
"toLocaleUpperCase",
"localeCompare",
"match",
"search",
"replace",
"split",
"substr",
"concat",
"slice",
],
methodCount = methods.length,
assignStringGeneric = function (methodName) {
var method = String.prototype[methodName];
String[methodName] = function (arg1) {
return method.apply(arg1, Array.prototype.slice.call(arguments, 1));
};
};
for (i = 0; i < methodCount; i++) {
assignStringGeneric(methods[i]);
}
})();
Instâncias de String
>
Propriedades
Métodos
Métodos não relacionados ao HTML
Métodos de envoltório HTML
Exemplos
>Conversão de String
É possível usar String como uma alternativa "mais segura" toString, como embora normalmente ainda chama o toString subjacente, também funciona para null e undefined. Por exemplo:
var outputStrings = [];
for (let i = 0, n = inputValues.length; i < n; ++i) {
outputStrings.push(String(inputValues[i]));
}
Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string-objects> |
Compatibilidade com navegadores
Loading…