From 980fe00a74a9ad013b945755415ace2e5429c3c2 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Wed, 27 Oct 2021 02:31:24 +0300 Subject: [RU] Remove notranslate (#2874) --- .../reference/global_objects/string/index.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'files/ru/web/javascript/reference/global_objects/string/index.html') diff --git a/files/ru/web/javascript/reference/global_objects/string/index.html b/files/ru/web/javascript/reference/global_objects/string/index.html index 5db7b5e416..80c7293c4d 100644 --- a/files/ru/web/javascript/reference/global_objects/string/index.html +++ b/files/ru/web/javascript/reference/global_objects/string/index.html @@ -16,7 +16,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String

Строковые литералы могут быть следующих форм:

-
'строка текста'
+
'строка текста'
 "строка текста"
 "中文 español English हिन्दी العربية português বাংলা русский 日本語 ਪੰਜਾਬੀ 한국어 தமிழ்"
 
@@ -84,7 +84,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/String

Либо можно использовать глобальный объект String напрямую:

-
String(thing)
+
String(thing)
 new String(thing)
 
@@ -103,12 +103,12 @@ new String(thing)

Существует два способа добраться до конкретного символа в строке. В первом способе используется метод {{jsxref("String.prototype.charAt()", "charAt()")}}:

-
return 'кот'.charAt(1); // вернёт "о"
+
return 'кот'.charAt(1); // вернёт "о"
 

Другим способом (введённым в ECMAScript 5) является рассмотрение строки как массивоподобного объекта, в котором символы имеют соответствующие числовые индексы:

-
return 'кот'[1]; // вернёт "о"
+
return 'кот'[1]; // вернёт "о"
 

При доступе к символам посредством нотации с квадратными скобками, попытка удалить символ, или присвоить значение числовому свойству закончится неудачей, поскольку эти свойства являются незаписываемыми и ненастраиваемыми. Смотрите документацию по методу {{jsxref("Object.defineProperty()")}} для дополнительной информации.

@@ -117,7 +117,7 @@ new String(thing)

Разработчики на C имеют для сравнения строк функцию strcmp(). В JavaScript вы просто используете операторы меньше и больше:

-
var a = 'a';
+
var a = 'a';
 var b = 'b';
 if (a < b) { // true
   print(a + ' меньше чем ' + b);
@@ -136,7 +136,7 @@ if (a < b) { // true
 
 

Строковые литералы (обозначаемые двойными или одинарными кавычками) и строки, возвращённые вызовом String в неконструкторном контексте (то есть, без использования ключевого слова {{jsxref("Operators/new", "new")}}) являются строковыми примитивами. JavaScript автоматически преобразует примитивы в объекты String, так что на строковых примитивах возможно использовать методы объекта String. В контекстах, когда на примитивной строке вызывается метод или происходит поиск свойства, JavaScript автоматически оборачивает строковый примитив объектом и вызывает на нём метод или ищет в нём свойство.

-
var s_prim = 'foo';
+
var s_prim = 'foo';
 var s_obj = new String(s_prim);
 
 console.log(typeof s_prim); // выведет 'string'
@@ -145,7 +145,7 @@ console.log(typeof s_obj);  // выведет 'object'
 
 

Строковые примитивы и объекты String также дают разные результаты при использовании глобальной функции {{jsxref("Global_Objects/eval", "eval()")}}. Примитивы, передаваемые в eval(), трактуются как исходный код; объекты же String трактуются так же, как и все остальные объекты, а именно: возвращается сам объект. Например:

-
var s1 = '2 + 2';             // создаёт строковый примитив
+
var s1 = '2 + 2';             // создаёт строковый примитив
 var s2 = new String('2 + 2'); // создаёт объект String
 console.log(eval(s1));        // выведет число 4
 console.log(eval(s2));        // выведет строку '2 + 2'
@@ -155,7 +155,7 @@ console.log(eval(s2));        // выведет строку '2 + 2'
 
 

Объект String также всегда может быть преобразован в его примитивный аналог при помощи метода {{jsxref("String.prototype.valueOf()", "valueOf()")}}.

-
console.log(eval(s2.valueOf())); // выведет число 4
+
console.log(eval(s2.valueOf())); // выведет число 4
 
Примечание: для того, чтобы узнать больше о другом возможном подходе к строкам в JavaScript, прочитайте статью о StringView — C-подобном представлении строк на основе типизированных массивов.
@@ -186,7 +186,7 @@ console.log(eval(s2)); // выведет строку '2 + 2'

Методы экземпляров String также доступны в Firefox как часть JavaScript 1.6 (который не является частью стандарта ECMAScript) на объекте String, что позволяет применять эти методы к любому объекту:

-
var num = 15;
+
var num = 15;
 console.log(String.replace(num, /5/, '2'));
 
@@ -194,7 +194,7 @@ console.log(String.replace(num, /5/, '2'));

Следующая прослойка позволяет использовать их во всех браузерах:

-
/*globals define*/
+
/*globals define*/
 // Предполагаем, что все требуемые методы экземпляров String уже присутствуют
 // (для них так же можно использовать полифилы, если их нет)
 (function() {
@@ -249,7 +249,7 @@ console.log(String.replace(num, /5/, '2'));
 
 

Объект String можно использовать как «безопасную» альтернативу методу {{jsxref("String.prototype.toString()", "toString()")}}, так как хотя он обычно и вызывает соответствующий метод toString(), он также работает и для значений {{jsxref("Global_Objects/null", "null")}} и {{jsxref("Global_Objects/undefined", "undefined")}}. Например:

-
var outputStrings = [];
+
var outputStrings = [];
 for (var i = 0, n = inputValues.length; i < n; ++i) {
   outputStrings.push(String(inputValues[i]));
 }
-- 
cgit v1.2.3-54-g00ecf