質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

6950閲覧

substrの廃止の理由と代替について知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/05/15 11:40

編集2021/05/15 11:44

月5水3木2金1
水2木4
のような、文字の長さが異なるものから火2、水4のように抜き出すために、substrを使用したいと考え、MDN Web Docsを使って検索していたのですが、substrが非推奨となっていました。その根拠に、> probably won't be removed anytime soon, but it's defined in Annex B of the ECMA-262 standard, whose introduction states: "… Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. …"とあったので、リンクに飛んでみたのですが、リンク先にはそれらしい記述がありませんでした。なので、もし廃止されるのならその理由と、substrと同じように使える関数があれば教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

リンク先にはそれらしい記述がありませんでした。

Annex Bの先頭部分にあります。

These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code.

代わりに、sliceあるいはsubstringを使いましょう。

投稿2021/05/15 11:48

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikadzuchi

2021/05/16 15:46

それは廃止の理由ではないですよね。 理由と言えるのはその上の「have one or more undesirable characteristics」ですが、具体的に何がundesirableなのかは分かりません。
ikadzuchi

2021/05/20 14:46

ああ、質問タイトルに引きずられました。廃止でなく非推奨ですね。
think49

2021/05/20 15:24 編集

> These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code. ECMAScript implementations are discouraged from implementing these features unless the implementation is part of a web browser or is required to run the same legacy ECMAScript code that web browsers encounter. 所詮は相互運用性の為の、独自拡張の後追い仕様であり、ES言語の一部と認められていません。 Webブラウザ限定の機能であり、Node.jsでは使用出来ません。 Webブラウザで独自拡張時代のレガシーコードを動作させる事に価値がありますが、新規コードで採用するメリットがありません。
ikadzuchi

2021/05/20 16:27

> 所詮は相互運用性の為の、独自拡張の後追い仕様であり つまり「相互運用性の為の、独自拡張の後追い」であることが非推奨であることの理由だという意見でしょうか。でしたらそれが分かる資料などあれば回答になると思います。お示しの引用からは読み取れません。 > ES言語の一部と認められていません。 そんなことはないですね。「These features are not considered part of the core ECMAScript language.」と言うのですから、ECMAScriptのコアでない一部です。また「All of the language features and behaviours specified in this annex … would be removed from this specification.」とあり、今のところspecificationに含まれるlanguage featureの1つです。 残りは特に非推奨とされた理由に関係ない話ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問