X



JavaScript 4©2ch.net
0001デフォルトの名無しさん 転載ダメ©2ch.net
垢版 |
2014/12/05(金) 12:19:07.19ID:fmzBASgG
( ^ω^) 初学者・迷子・ロリ幼女はこちらで
  _、_
( ,_ノ` ) プロフェッショナルはECMAScript デス 4へ

【前スレ】
JavaScript 3
http://peace.2ch.net/test/read.cgi/tech/1380177260/

【関連スレ】
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/
CoffeeScript
http://peace.2ch.net/test/read.cgi/tech/1320949260/
TypeScript part1
http://peace.2ch.net/test/read.cgi/tech/1349187527/
構造化ウェブプログラミング言語Dart2
http://peace.2ch.net/test/read.cgi/tech/1319388343/
Microsoft SkyDrive API
http://peace.2ch.net/test/read.cgi/tech/1385604796/
【MACRO】Google Apps Script 質問スレ【DRIVE】
http://peace.2ch.net/test/read.cgi/tech/1404007623/
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
0247デフォルトの名無しさん
垢版 |
2015/07/24(金) 23:57:05.40ID:QlYyU5j9
迷子なんでここでいいかな?
cordova(phonegap)で躓いてるんだけど、専用スレが見当たらない
誘導plz
0249デフォルトの名無しさん
垢版 |
2015/07/26(日) 00:45:58.44ID:Nu2ySp1+
webアプリの伝票を表示する画面のHTMLで、テーブルタグでエクセル方眼紙作ってあった
列とか必要以上に多くて無駄にセルの結合してあった
0252デフォルトの名無しさん
垢版 |
2015/08/02(日) 18:40:44.98ID:mqZtRy/B
数字の1と文字の1が一致して笑った。
カス言語すぎる。
0253デフォルトの名無しさん
垢版 |
2015/08/02(日) 18:45:01.04ID:dTRZmQiN
たしかperlも一致してた気がする
0259デフォルトの名無しさん
垢版 |
2015/08/02(日) 19:41:23.07ID:mqZtRy/B
じゃあ、==の存在意義はなんだよ
0260デフォルトの名無しさん
垢版 |
2015/08/02(日) 19:49:47.26ID:dTRZmQiN
explicit宣言で==がsyntaxerrorになったりせんのけ
0261デフォルトの名無しさん
垢版 |
2015/08/02(日) 20:51:00.19ID:j05l/s8s
変数に型がない言語ではどうしても、
== と === 相当の機能が必要になる。
変数に型がない言語では全て同じ。
0263デフォルトの名無しさん
垢版 |
2015/08/02(日) 22:13:12.22ID:dTRZmQiN
CoffeeScriptおすすめですお
0264デフォルトの名無しさん
垢版 |
2015/08/02(日) 22:15:15.51ID:j05l/s8s
言語としては悪くないが、
将来性として悪い。

BabelなどでES6が使えるようになった今、
CoffeeScriptの役目は終わった。
優位性が無くなったのだから。

CoffeeScriptはES6をつくるための
犠牲になったのだ。
0267デフォルトの名無しさん
垢版 |
2015/08/03(月) 05:17:31.66ID:M3KvY+a0
>>261
luaならそんなクソ仕様ないけど
0268デフォルトの名無しさん
垢版 |
2015/08/03(月) 20:20:01.84ID:OzQ4PZKS
>>267
でもこういうクソ仕様はありますね。

2.2.1 - 変換
Luaは文字列と数値を実行時に自動的に変換する。 すべての数学演算は、
文字列に適用されると、一般的な変換ルールに基づいてその文字列を数値に変換しようとする。


ただし、例外があって


2.5.2 - 関係演算子
2.2.1 の変換ルールは等価比較には適用されない。 そのため、"0"==0 は false に評価され、
t[0] と t["0"] は異なったテーブルエントリを示す。


一貫性がない。
0269デフォルトの名無しさん
垢版 |
2015/08/04(火) 11:19:43.50ID:Wrx2TKJj
NaN !== NaN は他言語でもそうなのかな
これだけは直感的でないと感じてしまう
0270デフォルトの名無しさん
垢版 |
2015/08/04(火) 20:47:31.71ID:LaebqzUe
>>269
Rubyも同じ
http://docs.ruby-lang.org/ja/search/class:Float/version:2.0.0/query:NAN/
> ただし、NaN 同士の比較では常に false を返します。

Pythonでも同様
http://d.hatena.ne.jp/yosshi71jp/20090920/1253415431
> nanは非数(not a number)、infは無限(infinity)。通常、
> この表示になってしまったら、これにどんな演算を行っても、結果はもう変わらない。

PHPでも
PHP 型の比較表
http://php.net/manual/ja/types.comparisons.php
> この値を、自分自身を含む他の値と比較すると、緩い比較であっても厳しい比較であっても
> 結果は FALSE となります (つまり NAN != NAN であり NAN !== NAN であるということです)。

さらにPerlでも
http://perldoc.jp/docs/perl/5.6.1/perlop.pod
> NaN はどの値に対しても(NaN に対してでさえも) "<", "==", ">", "<=", ">=" の
> いずれも成立しないので、これらは全て偽となります。

SQLでも似た仕様がある。

NULL は NULL と等しくない!?
http://blog.livedoor.jp/i_am_best/archives/7845603.html
0271デフォルトの名無しさん
垢版 |
2015/08/04(火) 20:48:25.72ID:LaebqzUe
>>269
> NaN !== NaN は他言語でもそうなのかな
> これだけは直感的でないと感じてしまう

直感的じゃないという意見はわからなくもないが、
他言語でも同じなわけで、それを知らないということは、
君の経験不足ってのがよく分かるねw
0273デフォルトの名無しさん
垢版 |
2015/08/04(火) 21:03:34.53ID:SiN2Ipli
a = NaN, b = NaN
aとbを比較しようとしたときにどういう問題が発生するか考えれば納得出来るだろう
0274デフォルトの名無しさん
垢版 |
2015/08/04(火) 21:18:44.87ID:LaebqzUe
>>273
わかりづらいw

var a = "a";
var b = "b";

parseInt(a) == parseInt(b)

これがtrueだとおかしいだろ?
ぐらいのことを言えよ。
0275デフォルトの名無しさん
垢版 |
2015/08/04(火) 21:25:12.39ID:MmQrnXHp
は?
NaN という状態の意味を考えろよ?
言語でしか考えてなくてコンピュータで処理するってこと微塵も考えてないだろ?
0278デフォルトの名無しさん
垢版 |
2015/08/04(火) 21:56:56.46ID:2w4CQfTI
>>271
他言語の経験がないのは認めるけど、煽りとかどうでもいいから
NaN !== NaN が成立する合理的な理由があるなら教えて欲しい
「他言語でもそうだから」という教科書的な答えでは納得できない

>>273-274
その比較はする必要性を全く感じないので、そのコードの目的がわからない
null, undefined は等価なのに NaN だけ特別扱いする理由がわからない
0280デフォルトの名無しさん
垢版 |
2015/08/04(火) 22:56:02.17ID:MmQrnXHp
>>278
null や undefined は言語上で特定の意味を与えられた値にすぎない
NaN はそれとは全く違う
不正な演算によって生じた結果を表す状態で、これは言語ではなくてコンピュータの仕組みから定義されているもの
「不正な値」だと理解してもらっていい
不正な値なので大小比較自体が成立しないのでその結果も不明となる
あとは自分で NaN をググるなり、コンピュータでの数値表現について勉強するなりしてくれ
0282デフォルトの名無しさん
垢版 |
2015/08/05(水) 00:11:47.63ID:GLQwjMtk
しかし大小比較自体が成立しないんだったら
言語側では例外を投げてもいいような気もするが
IEEE754で演算上の振る舞いも規定されているのか
0290デフォルトの名無しさん
垢版 |
2015/08/05(水) 19:53:39.57ID:HdJkl2eK
                               / {;;;;;;> _八_ :: :|
                         /)   ..:::::::::::ヽ ( : |
                           , - '   .. '' {.. :::( 丶 _)  |
                          /....    ,.... .. :::     ::: |
                   _/{:::::r‐  ,.::::::::::/   :   :  }
                _ イ   :::::   {:::::::::}. ...   :::  . ´ ^}
            _... , ィ  ... ::   .. ::  , ::::::::::::      .:.  . ,'
             /:::   . ´      ゛   :::::: :: ::::::::) ...:::.::.  }
       .. イ:...::   ´ ,..::::::::::::::. ..::::..        :::"゛.. ::::  ,'
      ,.´  ...  .:. :: ´(::::::::: ゝ .:::::::ノ    ;..  ハ     .. ,′
.     /  {::::::::..  ::: ::::  "" ::  ......  ⌒ヽ  {     {
    /:::.      /  .... -<::  :::::::(:::::::   }  レ:::::::::::... {
.    {ヽ      <  :::   ::   ::     ::::  { :::::::::::: ヽ
    {:: ..       ___{      ,....:.:.:.:.::ヽ ,.    { i::::::::::::   |
    ヾ::::    ´        ,'.:.:.:.:.:.:.:.:.:.   :: .::.  ゛"゛  .,′
     \       y :.:.:.:: ヾ::  ::  :: } .. /:   `,´  /
.        \      ..::.::.::.. `    ::::::ゝ :: ::: ::.     /
           \    ヾ:._.:   ..   ,:.: −       _ン
           \    :::::  ... ..  .  "゛    ,..ィ ~
            ヽ _ ::::     ....:::. ::::::::::_ .ン
                ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0291デフォルトの名無しさん
垢版 |
2015/08/05(水) 19:57:24.97ID:HdJkl2eK
                   /                             ヽ
                    /                              ヽ
                    /                     人         ト、 |
                   /   >‐ァ              / _\       ! jノ
               /  / /            /,=彡'⌒  V ,=ミ   \
                 / /  /           r==彡tテ丁>   ∨ /ヽ |   \___,
             //    /        __  /`¨´ ヽ.ゞ'′    リ ノ /     _ノ
               {'    . ′      ⌒≫t示             /    <
                   /          >ヘヽゞイ              ∨      ヽ
             /       ,, ’     ヽ丿              ∨     !
             /  _  ..  ´          `ー  _,. -‐'’       /  \f⌒ヽ. |
             ̄                 ヽ ´           /     \   ヽ!
                                  \       /  !     /`≫‐-
            -‐…‐-                 \     /   !   /`y'´
            // ̄)    `丶                  _ア爪      .'  /`y'
          // /       ‘,             -‐</ノ ヽ   ′/`y'
       // /          L     ,-<     ∨\ ! _, イヽ/
       | し'           丿 |   /    ヽ.    ヽ/ 丁 〉 //
       | r−、         / /  /  .′          ̄  ̄
       | U  `ー― - イ /    /  '
       | U           |      /   !


                    若草物語 ナンとジョー先生
0293デフォルトの名無しさん
垢版 |
2015/10/04(日) 11:02:40.14ID:K1qsk9YZ
よくsetTimeoutつかって関数を一定時間繰り返し実行する例を見るけど
メモリリーク(スタックオーバーフロー)しそうな気がしてならねえ
function viewTime()
{
var date = new Date();//これはスタックに貯まるのか?
console.log("date = " + date);
setTimeout(viewTime,1000);
}
0296デフォルトの名無しさん
垢版 |
2015/10/05(月) 06:12:57.62ID:cBREl52D
ローカル変数なんだから関数終了で破棄されるだろ
非同期とか割り込みとか関係無い
0297デフォルトの名無しさん
垢版 |
2015/10/05(月) 06:40:12.29ID:sGblq84u
>>296
わからんやつだな
setTimeout が 指定時間後に実行する関数を設定しているだけでそこで呼び出してるわけじゃない
ってすぐに理解できてないと

viewTime()
 setTimeout()
  viewTime()
   setTimeout()
    viewTime()
     ...

みたいに再帰呼び出ししてるように錯覚しちゃうってことだろうよ
再帰呼び出しなら呼び元は終了してないからやばいよね

次の段階として、非同期で呼ばれるとなんとなく理解はしていても
別のコンテキストで実行されるってのがわかってないと this とか使ってあれえ?ってなことになる
0298デフォルトの名無しさん
垢版 |
2015/10/05(月) 09:58:01.89ID:YN/6GJzS
>>297
それは仮想的なコードだと思うけど、クロージャじゃないんだから一回毎に viewTime 内のメモリはGCが解放してくれないとおかしいんじゃない?
そうでなければ、ブラウザのバグだと思うけど
0301610
垢版 |
2015/11/05(木) 21:03:50.50ID:O9StB1rc
じゃあここでいいぞ。

一応俺のスタンスを言っておくと、俺はお前みたいな奴が嫌いじゃない。
お前はあのスレの中で唯一積極的にコードを書き、IDを付けて議論に持ち込み、論理的に解決しようとする。この点はいい。
ただなあ、技術的に余りにも稚拙すぎるから、色々空回りしている。
だからやる気があるのなら少しはサポートしてやるよ。上達したいかどうかはお前が決めろ。

ちなみにマジでウザイから無駄に吠えるのは止めろ。お前が大したことがないのは事実なんだよ。
今のお前ではあのベンチマークがどれだけ間抜けなことになっているのか分からないのだろうが、
上達した後から読み返せば今のお前の痛さは発狂レベルだぞ。
まあ、今のお前には俺が嘘を言っているとしか思えないのだろうけども。

とはいえ、あのスレの中の初心者で上達する可能性があるのはお前だけだ。
他の馬鹿共はお前と同様にあのベンチの問題が分からないにもかかわらず、煽ることしかできない無能共だ。
そもそも俺はお前みたいに「自分でやる」タイプじゃないとプログラミングには向かないと思っているので、
一から教えてくださいとか言われても死ねとしか思わない。
だからあのスレにたむろしている馬鹿共が何であそこにいるのかも謎なんだが。

もしやるのなら、こちらのスレの内容は向こうには投稿しないように。ゴミ共が増えるだけだから。
ベンチマークの結果がデタラメすぎるので訂正したくなると思うが、その必要もない。
心配せずともJavaScriptの個人的Web情報はデタラメばかりだし、
馬鹿は馬鹿のままでいればいいし、強制的に教育する方法もないんだよ。
今のお前のように、自分で馬鹿を止めますと決心させるしかないんだ。
そして自分で学ぼうとする心がある奴は、あの経緯ならこちらを見ている。だから、転載する必要は全くない。
マジであのスレ終わっているぞ。いろんな意味で。

まあとにかく、どうするかはお前が決めろ。
0304デフォルトの名無しさん
垢版 |
2015/11/11(水) 10:08:35.38ID:M5AnRRSD
>>301の輝かしい功績

+ JavaScript の質問用スレッド vol.126 +
http://peace.2ch.net/test/read.cgi/hp/1439005423/
+ JavaScript の質問用スレッド vol.125 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436400138/
+ JavaScript の質問用スレッド vol.124 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1427008867/l50
+ JavaScript の質問用スレッド vol.123 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1422084185/l50
+ JavaScript の質問用スレッド vol.123 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423910471/l50
+ JavaScript の質問用スレッド vol.122 + [転載禁止©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1418395948/l50
+ JavaScript の質問用スレッド vol.121 +
http://peace.2ch.net/test/read.cgi/hp/1410603104/l50
0311デフォルトの名無しさん
垢版 |
2016/03/26(土) 00:52:55.36ID:VGHlAznE
with(this){してその中でプロパティ読むのってアリ?}
0313デフォルトの名無しさん
垢版 |
2016/05/01(日) 15:21:38.46ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
0314デフォルトの名無しさん
垢版 |
2016/06/09(木) 17:18:01.82ID:dpBG783z
たまにwithあったらなって思うことはあるな
例えばWebpackがモジュールに引数で渡す挙動とか
0315デフォルトの名無しさん
垢版 |
2016/06/29(水) 13:17:10.60ID:+ZYTNDiN
http://www.cybersyndrome.net/
ここの検索結果画面、例えば
http://www.cybersyndrome.net/search.cgi?q=&;a=&f=&s=&n=
からプロキシ一覧を取得しようとしてXMLHttpRequestを使ってresponseTextを見てるんだけど
どうもscriptを動かさないとプロキシが表示されないみたい
そんなわけでresponseTextの中の3番目のスクリプトを動かしてプロキシ一覧を表示させたいんだけど
どうするのが良策ですか?ちなみにChrome
0320デフォルトの名無しさん
垢版 |
2018/02/16(金) 06:29:27.57ID:W1XJdyx1
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0321デフォルトの名無しさん
垢版 |
2018/02/25(日) 23:50:49.29ID:2698yb5F
javascriptで配列の要素それぞれに関数を作用させて要素を作るってできますか?
var a = [1,2,3];
function f(x){return x+1;}
var b = f(a);// b = [2,3,4];
みたいな
0324デフォルトの名無しさん
垢版 |
2018/03/04(日) 23:55:48.77ID:fY1aJvVU
javascriptの正規表現で
A/B/C(http://hoge.com/fuga)/X/Y
このような文字列を/で分割したいが、()の中の/は分割の対象にしない
ということはどのようにすればいいでしょうか?
0327デフォルトの名無しさん
垢版 |
2018/03/10(土) 21:38:04.28ID:LJUwa8tD
XMLHttpRequestを使って取得したページのスクリプトを実行させようとしているのですが
できません
取得したページを構成
var doc =document.implementation.createHTMLDocument("");
doc.body.innerHTML =req.responseText;
このdocの中のscriptタグを取り出し
新たにscript elementをdoc.createElement("script")で作りコピーし
更にappendChildでスクリプトを追加し直せば実行されるかと思いましたがされませんでした(Chrome)
なにかいい知恵はないでしょうか
0328デフォルトの名無しさん
垢版 |
2018/03/10(土) 21:52:05.17ID:LJUwa8tD
今ふと思ったのですが
作っているものがChromeの拡張機能なのでセキュリティ設定で外部のスクリプトができないようになってるだけかもしれません
ちょっと見直してきます
0330デフォルトの名無しさん
垢版 |
2018/03/10(土) 23:06:06.97ID:LJUwa8tD
なるほど
とりあえず目的に対して別の方法を思いついたのでスクリプトの再実行はやめておきます
0331デフォルトの名無しさん
垢版 |
2018/05/23(水) 22:22:52.48ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

9O7AM
0332デフォルトの名無しさん
垢版 |
2018/07/04(水) 23:42:45.95ID:gFgZc5FG
C4H
0333デフォルトの名無しさん
垢版 |
2018/08/15(水) 08:39:41.98ID:tlm7UXZ5
"abcde?fgh".match("e?f")
これが
["f", index: 6, input: "abcde?fgh", groups: undefined]
になるんですが(chromeブラウザのコンソールで確認)
文字列の中の?ってどういう扱いなんでしたっけ?
0335デフォルトの名無しさん
垢版 |
2018/08/15(水) 18:38:51.76ID:tlm7UXZ5
match("e?f")の"e?f"は文字列リテラルじゃなくて正規表現/e?f/と解釈されるということですか?
0336デフォルトの名無しさん
垢版 |
2019/07/05(金) 21:42:57.25ID:efC0bxMu
javascriptのオブジェクトの書き方で
{hoge:hoge}とかこうとして{hoge,hoge}と書いてエラーにならなかったんですが
これって有効なんですかね?
0339デフォルトの名無しさん
垢版 |
2019/07/07(日) 10:14:41.57ID:3ySSrzHj
あーわかりました
var a = 2;

var x = {a};
とすると
var x = {a:2};
と同じになるんですね

>>338
勉強になります
0340デフォルトの名無しさん
垢版 |
2019/07/13(土) 23:14:14.21ID:57lWPs8z
https://mevius.5ch.net/test/read.cgi/tech/1489511075/862 で質問した者なのだけど、
String.matchとRegExp.execの挙動の細かい違いについて分かる人居る?

仕様書はMDNから飛べるけど一応以下。
https://tc39.es/ecma262/#sec-string.prototype.match
https://tc39.es/ecma262/#sec-regexp.prototype.exec
正直俺はよく分からない。

問題になるのは質問した内容で、再掲すると、
'@time;prop1:style1;prop2:style2'.match(/(^|[@;])[^@;]*/g); // 結果 ["", ";prop1:style1", ";prop2:style2"] 、俺の想定 ["", "@time",";prop1:style1", ";prop2:style2"]
'@time;prop1:style1;prop2:style2'.match(/(^.|[@;])[^@;]*/g); // 結果 ["@time", ";prop1:style1", ";prop2:style2"] 、これは納得
の前者の挙動が謎だったのだが、

var re = /(^|[@;])[^@;]*/g;
var str = '@time;prop1:style1;prop2:style2';
re.exec(str); // 結果 ["", ""]
console.log(re.lastIndex);

でちまちま調べる限り、lastIndexは0のまま固定されており、俺の『正規表現の』理解は間違いではないことは分かった。
当然これだとMDNのexecにあるような while ((myArray = myRe.exec(str)) !== null) みたいなことをすると無限ループする。
だから String.match はそうならないように何かしら対策がしてあって、結果、頭のマッチが取れないようだ。
なのだが、仕様書を見ても違うのは分かるが何がどうなのかよく分からない。
String.matchでは (^| の条件は駄目で、 (^.| のように、「文頭」ではなく「文頭の文字」に当たるようにしないといけない、ということなのか?
0341デフォルトの名無しさん
垢版 |
2019/07/13(土) 23:28:56.86ID:57lWPs8z
すいません分かりました。

String.match は RegExp[@@match] を読んでて、その中で RegExp.exec を呼んでいる。
RegExp.exec は当然そのまま RegExp.exec を呼んでいる。
だからそのままだと当然挙動は同じになるのだけど、String.matchの場合、
> 4. If matchStr is the empty String, then
> a. Let thisIndex be ? ToLength(? Get(rx, "lastIndex")).
> b. Let nextIndex be AdvanceStringIndex(S, thisIndex, fullUnicode).
> c. Perform ? Set(rx, "lastIndex", nextIndex, true).
https://tc39.es/ecma262/#sec-regexpbuiltinexec
って書いてあったわ。
つまりマッチ結果が空文字だと必ず一文字進めるようになっており、「文頭マッチのフラグを落とす」仕様にはなってない。
この仕様でいいのか?という気もするが、とにかくそうなっているようだ。
お騒がせしました。
0342デフォルトの名無しさん
垢版 |
2019/07/16(火) 20:12:13.23ID:hMJFhr7R
というかこれはMDNに注意書きがいる案件だ。
勿論君の手柄にしてくれていいから、誰かやっておいてくれ。
追記は取り敢えず4ヶ所(3文案)か?

1. String.match に、
「空文字にマッチした場合、その空文字の次の文字にはマッチしません。
このため、空文字マッチを含む正規表現(オブジェクト)を与えた場合、全てのマッチ文字列が結果に含まれないことがあります。」

2. String.replaceに、
「空文字にマッチした場合、その空文字の次の文字にはマッチしません。
このため、空文字マッチを含む正規表現(オブジェクト)を与えた場合、全てのマッチ文字列が置換されないことがあります。」

3. RegExp.exexとRegExp.testに、
「空文字にマッチした場合、lastIndexが更新されません。(+1されません)
このため、空文字マッチを含む正規表現(オブジェクト)を与えた場合、
ループ内でマッチ結果の空文字判定を行わないと、無限ループします。」

問題となるケースは、空文字マッチを含む正規表現+空文字マッチ直後にマッチ文字列が来る場合。
具体的には>>341
searchはgマッチ関係ないからセーフ、
splitに関係するケースがあるかは分からない。(ぱっとは思いつかない)
matchAllは知らん。

ちなみに以前 test について文句を言った者だ。これについて対応してくれた人はありがとう。
今回も頼むわ。
なお今確認すると、
> 注目すべきは、別な文字列で検索しても lastIndex がリセットされないことです。
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
とモロに書いてあって素晴らしい。ただこれはもっと赤字とか目立つように書くべきだが。

俺はWeb板は無視しているが、これについてだけは告知貼っておく。
いずれにしてもMDNの更新誰かよろしく。
0346デフォルトの名無しさん
垢版 |
2019/07/17(水) 23:31:18.95ID:2/Bgill9
俺は全世界の問題を一人で背負い込むほど若者ではないんだよ。
MDNの決定プロセスなんて知らんし、
それ以前に他人が噛むことにより「承認」の手続きがなされ、よりましな方向になると信じてる。
バグを見つけるのも十分な貢献だし、それをMDNに記載するのも同様だ。
だから一人でやる必要も意味もないし、それ以前に一人でやるべきではないと思ってるんだよ。

お前らが「こんなのMDNに記載する必要なし」と思うのなら放置でよし、
「こんな落とし穴があるのなら共有すべきだ」と思うのなら、
俺はテストパターンを提供したのだから、お前らはMDNを書き直すことによってcontributeしろ、ということ。
レスを投稿する


ニューススポーツなんでも実況