前提・実現したいこと
node.jsでLINEbotを開発しています。
文字列を操作する機能を実装中にエラーが発生しました。
以下の問題をどうすればいいでしょうか?よろしくお願いします。
発生している問題・エラーメッセージ
エラーなしの動作停止
該当のソースコード
javascript
1var hoge = ""; 2hoge += `(長い文字列)`;
試したこと
約380文字(正確な値は不明)付近まで文字列を短くすると、正常に実行できます。
約400文字付近で文字列を代入する部分が止まってしまいます。
補足情報(FW/ツールのバージョンなど)
glitch.com
「止まる」とは??
ハングアップ?エラーで終了?エラーが出ずに終了?
下の方に書いてある、「文字列を代入する部分が止まってしまいます。」ということです。
その文の意味を聞いています。
表現が悪かったですね。すいません。
そもそも文字列を代入する部分およびその文字列を扱う関数自体が動かなくなります。
「動かなくなる」とは?
具体的にどういう現象のことを言ってますか?見たままを客観的に描写してください。
エラーは出ずにプログラムとしては正常に実行できます。が、変数が代入されなくなります。hoge=(長い文字列)
止まるというより無視(?)されます。
なるほど。現象は理解できました。
var hoge = "";
hoge += `実際には400文字以上の文字列`;
console.log(hoge);
で、空が表示されるという意味ですね。質問にはそう書いたほうがいいです。
ちょっと考えられない現象なので、原因は私にはわかりませんが。
hoge += `バッククォートではなくシングルかダブルクォートにしてみませんか?`
テンプレートリテラルとして予期しない動きをしている可能性あります...が再現できなかった。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings
var hoge = "";
var val = 'fuga';
var fuga1 = '${val}';
var fuga2 = '`${val}`';
hoge += `(長い文字列)`; console.log(hoge);//(長い文字列)
hoge += `${val}`; console.log(hoge);//(長い文字列)fuga
hoge += `${fuga1}`; console.log(hoge);//(長い文字列)fuga${val}
hoge += `${fuga2}`; console.log(hoge);//(長い文字列)fuga${val}`${val}`
回答1件
あなたの回答
tips
プレビュー