JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 73c8-oPzN)
2017/04/03(月) 00:31:25.68ID:82yaJsi70838デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/08(土) 05:38:53.92ID:5BjTXb8r0 アドバイスもなにもな
JavaScriptとはどういうものかとかHTMLのこととか微塵も分かっていない状態で
そんな身の丈にあっていないサイト使おうとするからそうなる
『餡』は『餡』でもこし餡、粒あんいろいろあるように、君がやってるのは
ideoneは『白餡』を欲しているのに君は『黒餡の饅頭』を与えてるような、論外ものなんだよ
そこは最悪でも饅頭と餡の違い、そして白餡黒餡の違いが分かる人が利用するとこなんだよ
産まれて初めて餡(しかもWeb上の黒餡)を知った人が一人で使うようなところではない
JS実行サイトなら他にもたくさんあるが、君くらいならメモ帳で書いていくので十分なんだよ
JavaScriptとはどういうものかとかHTMLのこととか微塵も分かっていない状態で
そんな身の丈にあっていないサイト使おうとするからそうなる
『餡』は『餡』でもこし餡、粒あんいろいろあるように、君がやってるのは
ideoneは『白餡』を欲しているのに君は『黒餡の饅頭』を与えてるような、論外ものなんだよ
そこは最悪でも饅頭と餡の違い、そして白餡黒餡の違いが分かる人が利用するとこなんだよ
産まれて初めて餡(しかもWeb上の黒餡)を知った人が一人で使うようなところではない
JS実行サイトなら他にもたくさんあるが、君くらいならメモ帳で書いていくので十分なんだよ
839デフォルトの名無しさん (ワッチョイ 7f23-ZuCk)
2017/07/08(土) 12:06:03.27ID:+tVxWBzW0840デフォルトの名無しさん (ワッチョイ d797-HWfD)
2017/07/08(土) 12:20:32.49ID:If7Rv9IA0841デフォルトの名無しさん (ワッチョイ 9f30-rvkC)
2017/07/08(土) 12:44:49.69ID:v/CZ5FQl0 ideone使いにくいよな。
JavaScript以外なら仕方ないのかもしれないけど、
そうでないなら使いたくないわw
JavaScript以外なら仕方ないのかもしれないけど、
そうでないなら使いたくないわw
842デフォルトの名無しさん (スププ Sdbf-HUZE)
2017/07/08(土) 14:30:09.61ID:J5RuKAu7d 何かのアルゴリズムとかECMAScripを試したいときは便利だよ
そうじゃないときは使いにくいというより、使おうと考えるべきじゃない
そうじゃないときは使いにくいというより、使おうと考えるべきじゃない
843デフォルトの名無しさん (アウアウカー Sa2b-KFf1)
2017/07/08(土) 16:00:56.38ID:Fv/VLC2ua >>837
35歳の発達か
35歳の発達か
844837 (ワッチョイ d759-TyVU)
2017/07/08(土) 18:57:51.60ID:AHa+5Wfk0845デフォルトの名無しさん (ワッチョイ f72d-rE3N)
2017/07/08(土) 19:52:07.55ID:VUw5dhen0 paiza.ioでよくね?
何か問題あるか?
何か問題あるか?
846デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/08(土) 20:00:40.34ID:5BjTXb8r0 一番いいのはね、Webサイトい興味をもってブログとかし始めて、
もっと自由な表現がしたくてHTMLとCSSをかじり、
やがてJSにたどり着くコースなのよ
そうするとね、JSの能力が低くてもHTMLとCSSの能力でカバーして十分に
作りたい物表現できるのよ、
そこから楽しみながら徐々にJSに重点置いていくのも容易
でもね、そういう基盤が全くないというのは、無理とは言わないけど
少なくともここで文字だけで教えるのは容易では無いわ
仮に教えるとしても結局、HTMLやCSS、
もしかするともっと基礎的な知識を身に着けろという話に終始するだけだろうし
JSって確かに簡単な言語だけどね、それはJSを始めようとする人は
HTMLやCSSの知識があるということが半前提でのことなのよ
そして、ブラウザの操作やその他のリテラシーもそれと同じくらい重要
君はまず地道にそういう知識をためていかないと無理があるよ
もっと自由な表現がしたくてHTMLとCSSをかじり、
やがてJSにたどり着くコースなのよ
そうするとね、JSの能力が低くてもHTMLとCSSの能力でカバーして十分に
作りたい物表現できるのよ、
そこから楽しみながら徐々にJSに重点置いていくのも容易
でもね、そういう基盤が全くないというのは、無理とは言わないけど
少なくともここで文字だけで教えるのは容易では無いわ
仮に教えるとしても結局、HTMLやCSS、
もしかするともっと基礎的な知識を身に着けろという話に終始するだけだろうし
JSって確かに簡単な言語だけどね、それはJSを始めようとする人は
HTMLやCSSの知識があるということが半前提でのことなのよ
そして、ブラウザの操作やその他のリテラシーもそれと同じくらい重要
君はまず地道にそういう知識をためていかないと無理があるよ
847デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/08(土) 20:27:31.78ID:fIuXTSpk0 3日でマスター HTML5 & CSS3、鳥羽薫、2013
この本で簡単に、30ほどのHTML5・CSS3の主要タグが学べる
この本で簡単に、30ほどのHTML5・CSS3の主要タグが学べる
848デフォルトの名無しさん (ワッチョイ f72d-rE3N)
2017/07/08(土) 21:15:27.92ID:VUw5dhen0 JavaScriptもHTMLもCSSも何も知らないまま入社2日目からWebサイトの改修を先輩への質問なしでさせられて泣きそうでした
849デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/08(土) 23:46:11.44ID:EDp/ROlD0 API用のURL編集ツールとか
URLの解析ツールってあるの?
クエリストリングを作るのが難易度高すぎる。
配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
最終的にはエンコードされて汚ったなくなるし。
URLの解析ツールってあるの?
クエリストリングを作るのが難易度高すぎる。
配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
最終的にはエンコードされて汚ったなくなるし。
850デフォルトの名無しさん (ワッチョイ 9f30-rvkC)
2017/07/09(日) 00:11:17.72ID:ODdY4A4c0 クエリストリングを作る?
そんなもんjQueryとかに任せればいいだろ?
> 配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
クエリストリングとは全く関係ない話だ
そんなもんjQueryとかに任せればいいだろ?
> 配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
クエリストリングとは全く関係ない話だ
851デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/09(日) 00:14:11.12ID:LPmXeDzw0852デフォルトの名無しさん (ワッチョイ 9f30-rvkC)
2017/07/09(日) 00:22:07.43ID:ODdY4A4c0 >>851
ちゃんとexampleみな
https://api.jquery.com/jquery.get/
$.get( "test.php", { name: "John", time: "2pm" } );
こういうふうに書くんだよ。
ちゃんとexampleみな
https://api.jquery.com/jquery.get/
$.get( "test.php", { name: "John", time: "2pm" } );
こういうふうに書くんだよ。
853デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/09(日) 05:46:42.70ID:sX6v1jPj0 var url = "http://何々"
// 全体の設定
$.ajaxSetup({
data: {format: 'xml'},
timeout: 60 * 1000
});
$.ajax( url )
.done(function( data, textStatus, jqXHR ) { 処理 })
.fail(function( jqXHR, textStatus, errorThrown ) { 処理 });
こんな感じでも、書ける
// 全体の設定
$.ajaxSetup({
data: {format: 'xml'},
timeout: 60 * 1000
});
$.ajax( url )
.done(function( data, textStatus, jqXHR ) { 処理 })
.fail(function( jqXHR, textStatus, errorThrown ) { 処理 });
こんな感じでも、書ける
854デフォルトの名無しさん (アウアウウー Sa5b-Razr)
2017/07/09(日) 11:35:11.72ID:6p7UXVr5a >>849
new URLSearchParams を使う方法も有る。
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
var params = new URLSearchParams;
params.append('q', 'URLSearchParams');
params.append('ie', 'UTF-8');
console.log('https://www.google.co.jp/search?' + params.toString()); // https://www.google.co.jp/search?q=URLSearchParams&ie=UTF-8
new URLSearchParams を使う方法も有る。
https://developer.mozilla.org/ja/docs/Web/API/URLSearchParams
var params = new URLSearchParams;
params.append('q', 'URLSearchParams');
params.append('ie', 'UTF-8');
console.log('https://www.google.co.jp/search?' + params.toString()); // https://www.google.co.jp/search?q=URLSearchParams&ie=UTF-8
855854 (アウアウウー Sa5b-Razr)
2017/07/09(日) 11:38:32.00ID:6p7UXVr5a URLコンストラクタを使った方がいいか。
var url = new URL('https://www.google.co.jp/search');
url.searchParams.append('q', 'URLSearchParams');
url.searchParams.append('ie', 'UTF-8');
console.log(url.toString()); // https://www.google.co.jp/search?q=URLSearchParams&ie=UTF-8
var url = new URL('https://www.google.co.jp/search');
url.searchParams.append('q', 'URLSearchParams');
url.searchParams.append('ie', 'UTF-8');
console.log(url.toString()); // https://www.google.co.jp/search?q=URLSearchParams&ie=UTF-8
856デフォルトの名無しさん (ワッチョイ b730-rvkC)
2017/07/09(日) 13:20:33.93ID:zx3kMPLK0 いや違うんだよ。>>854-855みたいに
クエリストリングを作る必要がないって話。
フォーム使うって手もあるしJavaScriptであれば
普通にパラメータをハッシュまたは配列で渡すだけで
組み立ててくれる。
クエリストリングを作る必要がないって話。
フォーム使うって手もあるしJavaScriptであれば
普通にパラメータをハッシュまたは配列で渡すだけで
組み立ててくれる。
857デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/09(日) 14:37:35.20ID:9yQC/vv/0 それはそうするためのライブラリを使えばの話だろ
標準APIのxhrやfetchで使えるのは
Blob,BufferSource,FormData,URLSearchParams,USVString,ReadableStream
だけ
標準APIのxhrやfetchで使えるのは
Blob,BufferSource,FormData,URLSearchParams,USVString,ReadableStream
だけ
858デフォルトの名無しさん (ワッチョイ b730-rvkC)
2017/07/09(日) 14:58:54.59ID:zx3kMPLK0859デフォルトの名無しさん (ワッチョイ b730-rvkC)
2017/07/09(日) 15:02:30.29ID:zx3kMPLK0 それに>>851の段階でjQuery使うってのは明らかだよね?
860デフォルトの名無しさん (フリッテル MM4f-lBVE)
2017/07/09(日) 17:11:29.14ID:7vHFYENhM Polyfillは将来的に外せるものだし、性能差もあるからjQueryと同列に語るのは違和感があるな
ところで、>>851は一例じゃなかったのか
質問者はすべてのコードでjQueryを使って、ajax以外(a要素とか)でURLを組み立てる事がないなら、そうなんだろうな
ところで、>>851は一例じゃなかったのか
質問者はすべてのコードでjQueryを使って、ajax以外(a要素とか)でURLを組み立てる事がないなら、そうなんだろうな
861デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/09(日) 17:12:12.99ID:9yQC/vv/0 jQueryの話だったのにJavaScriptであればって話を広げたのは他の誰でもなく君じゃんよ
jQueryならちゃんとjQueryであればって書いてよ
jQueryならちゃんとjQueryであればって書いてよ
862デフォルトの名無しさん (フリッテル MM4f-lBVE)
2017/07/09(日) 17:36:25.69ID:7vHFYENhM863デフォルトの名無しさん (フリッテル MM4f-lBVE)
2017/07/09(日) 17:40:04.34ID:7vHFYENhM ごめん、よく読んだら>>861は俺宛ではなかったな
>862は忘れてくれ...
>862は忘れてくれ...
864デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/09(日) 17:56:45.96ID:LPmXeDzw0 URLSerchParamsや URLコンストラクタなんてのがあるのか。
クエリストリング構築関係って統一した手法が確立されて、
どうしてもフレームワーク依存になってやり方は人によってバラバラ
な感じが否めない。
結局「xx使えばいい」以上のことはいかんとも言い難いことって結構
あるよな、特にJavaScriptはそればっかだ。
クエリストリング構築関係って統一した手法が確立されて、
どうしてもフレームワーク依存になってやり方は人によってバラバラ
な感じが否めない。
結局「xx使えばいい」以上のことはいかんとも言い難いことって結構
あるよな、特にJavaScriptはそればっかだ。
865デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/10(月) 02:21:11.80ID:CdB4JEYo0 APIのURLとAPIじゃないURLの違いって何ですか?
866デフォルトの名無しさん (ワッチョイ b730-rvkC)
2017/07/10(月) 02:35:48.89ID:ahk65wH50 れすぽのちがい
867デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/10(月) 06:57:20.29ID:bg+Uigm+0 JapaScriptのthisって今でも使われてんの?
それとももう使うのは非推奨になっている?
それとももう使うのは非推奨になっている?
868デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/10(月) 10:08:34.12ID:pPp/QbwmM869デフォルトの名無しさん (ワッチョイ f72d-rE3N)
2017/07/10(月) 10:27:44.46ID:eOXntHhA0 余裕で使われてる
870デフォルトの名無しさん (スププ Sdbf-HUZE)
2017/07/10(月) 11:14:35.24ID:1OG9NP+7d 何もできない事は無いな
手続き型で書くか、プロトタイプベース駆使してクラスシステム作り直せばね
手続き型で書くか、プロトタイプベース駆使してクラスシステム作り直せばね
871デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/10(月) 14:27:33.65ID:bg+Uigm+0 thisって使いやすい?
thisと言う文法だけで何通りもの解釈がでてきたから
それぞれ新しい文法が新たらに出てこないのかな?
アロー関数が追加されたりasys/awaitが出てきたみたいに
thisと言う文法だけで何通りもの解釈がでてきたから
それぞれ新しい文法が新たらに出てこないのかな?
アロー関数が追加されたりasys/awaitが出てきたみたいに
872デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/10(月) 16:22:07.96ID:x/tMl3Ao0 使いにくい点はあるよ、
個人的な一番は
this.hoge this.fuga this.piyo
とくどく書かないといけないこと
勿論今なら分割代入あたりで展開したり、Object.assignでまとめて代入したりもできるが、
それでも昔っからあるプロポーザルのように
::hoge ::fuga ::piyo
などと書ければなとよく思う
あと直接はthisとは関係ないけど、
プライベート関係で新しい構文は入るだろうね
個人的な一番は
this.hoge this.fuga this.piyo
とくどく書かないといけないこと
勿論今なら分割代入あたりで展開したり、Object.assignでまとめて代入したりもできるが、
それでも昔っからあるプロポーザルのように
::hoge ::fuga ::piyo
などと書ければなとよく思う
あと直接はthisとは関係ないけど、
プライベート関係で新しい構文は入るだろうね
873デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/10(月) 16:41:07.30ID:CdB4JEYo0 そういやJSにはスタティックの概念がないな。
874デフォルトの名無しさん (ワッチョイ f7a9-lTuT)
2017/07/10(月) 18:36:42.76ID:gqDySAuG0 Math.random().toString(34).slice(2)
このコードってどういう意味だと思う?
34ってなんなんや。
このコードってどういう意味だと思う?
34ってなんなんや。
875デフォルトの名無しさん (アウアウカー Sa2b-rE3N)
2017/07/10(月) 19:29:28.19ID:2duUxTIUa 基数
ググりなさいよ
ググりなさいよ
876デフォルトの名無しさん (ワッチョイ f7a9-uXY2)
2017/07/10(月) 20:25:31.79ID:gqDySAuG0877デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/10(月) 20:32:31.99ID:x/tMl3Ao0 間違いか、34*34通りあれば十分だったんじゃないの?
878デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/10(月) 21:44:19.17ID:pPp/QbwmM 他人のコードなのに奇数なら36のはずだと勝手に決めつけ思い込む脳神経ってどうなってるんだろうね
879デフォルトの名無しさん (ワッチョイ d759-TyVU)
2017/07/11(火) 00:08:12.63ID:DtGvVlsG0 質問です。
変数を宣言する際に記述するvarは省略することが出来るのでしょうか?
私の買った本だと、書かれていたり、省略されていたりして
混乱気味なのですが…。
変数を宣言する際に記述するvarは省略することが出来るのでしょうか?
私の買った本だと、書かれていたり、省略されていたりして
混乱気味なのですが…。
880デフォルトの名無しさん (ワッチョイ f72d-rE3N)
2017/07/11(火) 00:10:33.39ID:i4eD5D7P0 出来るけどグローバル変数になるのでよっぽどの場合以外は使わないようにしましょう
881879 (ワッチョイ d759-TyVU)
2017/07/11(火) 00:27:18.10ID:DtGvVlsG0882デフォルトの名無しさん (ワッチョイ 9723-KuRC)
2017/07/11(火) 01:10:06.11ID:OLy+oHXE0 >>881
クロージャ内変数を掴みに行っているのが見えてないだけだろ。
韓国人死ね
てかマジで他もいろいろ酷いがデタラメ答えるな。
スレのレベルが下がっているのはお前らにも分かるだろアホ共。
もう既に間違いも大量に放置されている。こういうのはお互いに利益無いと知れ。
馬鹿な韓国人には何度言っても通じないようだが。マジで死ね。
クロージャ内変数を掴みに行っているのが見えてないだけだろ。
韓国人死ね
てかマジで他もいろいろ酷いがデタラメ答えるな。
スレのレベルが下がっているのはお前らにも分かるだろアホ共。
もう既に間違いも大量に放置されている。こういうのはお互いに利益無いと知れ。
馬鹿な韓国人には何度言っても通じないようだが。マジで死ね。
883879 (ワッチョイ d759-TyVU)
2017/07/11(火) 01:56:20.34ID:DtGvVlsG0884デフォルトの名無しさん (ワッチョイ b723-BL37)
2017/07/11(火) 02:20:56.58ID:kTultHtx0 XMLHttpRequestとクロスドメイン参照と
JSONPとcallbackを
郵便屋さんで例えてください。
JSONPとcallbackを
郵便屋さんで例えてください。
885デフォルトの名無しさん (ワッチョイ b730-rvkC)
2017/07/11(火) 03:14:02.76ID:jfrWcBvE0 郵便屋でーす
886デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/11(火) 04:47:03.01ID:DVbjq/Wb0 >>879
この両者には僅かな違いがあります。
varを使って宣言する(var a = 10)とその変数はグローバル変数となり
varを使わずに宣言(a = 10)するとまずスコープチェーンを
辿ってaを検索し、aが存在すればaに代入を試みて、
aが存在しなければ、グローバルスコープにaプロパティを追加します。
(グローバルプロパティの生成)
開眼!Javascript
p81
https://jsfiddle.net/jseja/6Xyh3/
この両者には僅かな違いがあります。
varを使って宣言する(var a = 10)とその変数はグローバル変数となり
varを使わずに宣言(a = 10)するとまずスコープチェーンを
辿ってaを検索し、aが存在すればaに代入を試みて、
aが存在しなければ、グローバルスコープにaプロパティを追加します。
(グローバルプロパティの生成)
開眼!Javascript
p81
https://jsfiddle.net/jseja/6Xyh3/
887デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/11(火) 04:54:08.93ID:DVbjq/Wb0889デフォルトの名無しさん (ワッチョイ b70b-KMeR)
2017/07/11(火) 11:27:38.46ID:xvQ/lQkn0 WebでのJSの実行環境は
with(window){}
で囲まれているようなものだからね
でも今からはModuleの時代だしそういう癖つけないほうが良いよ
with(window){}
で囲まれているようなものだからね
でも今からはModuleの時代だしそういう癖つけないほうが良いよ
890879 (ワッチョイ d759-TyVU)
2017/07/11(火) 23:25:29.24ID:DtGvVlsG0891デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/12(水) 01:07:25.34ID:VV5TEq59M892886 887 (ワッチョイ 57d8-KuRC)
2017/07/12(水) 03:02:30.48ID:JRRJcnxl0893デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/12(水) 03:04:27.14ID:JRRJcnxl0 こっちは有料の本の中身の情報を
タイトル名、ページ番号
その中身の一部引用までして
書き込んでいるのに
こちらの要望は軽く無視された・・悲しいわぁ・・・
タイトル名、ページ番号
その中身の一部引用までして
書き込んでいるのに
こちらの要望は軽く無視された・・悲しいわぁ・・・
894デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/12(水) 06:38:54.28ID:HQm2gXhD0 >>886
var 無しだと、グローバルプロパティだから、
スコープチェーンをたどるから、ややこしい
チェーンをたどって見つからなければ、最終的にグローバルプロパティで、
グローバル変数とは別のもの
こんなややこしい仕様を作った、JSの作者は、頭おかしい
var 無しだと、グローバルプロパティだから、
スコープチェーンをたどるから、ややこしい
チェーンをたどって見つからなければ、最終的にグローバルプロパティで、
グローバル変数とは別のもの
こんなややこしい仕様を作った、JSの作者は、頭おかしい
895デフォルトの名無しさん (ワッチョイ f7a9-aOiv)
2017/07/12(水) 07:28:39.75ID:46U9BX050 varはもう使うな。
constかlet使え
constかlet使え
896デフォルトの名無しさん (アウアウカー Sa2b-rE3N)
2017/07/12(水) 07:46:53.52ID:m006016La letが使えないブラウザ向けに作ってる人もいるんです!
897デフォルトの名無しさん (ワッチョイ b70b-kLC1)
2017/07/12(水) 08:57:04.34ID:Xbh+81Re0898デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/12(水) 09:46:28.42ID:JRRJcnxl0899デフォルトの名無しさん (ワッチョイ b70b-kLC1)
2017/07/12(水) 10:33:07.51ID:Xbh+81Re0 いや、var付きかどうかには違いがあるけど、
グローバルオブジェクトのプロパティとグローバル変数は同じものだよ
スコープにはオブジェクト型ってあって、with文のスコープとグローバルスコープはそうなってるから
グローバルオブジェクトのプロパティとグローバル変数は同じものだよ
スコープにはオブジェクト型ってあって、with文のスコープとグローバルスコープはそうなってるから
900デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/12(水) 11:12:26.90ID:JRRJcnxl0901デフォルトの名無しさん (スププ Sdbf-HUZE)
2017/07/12(水) 12:40:32.42ID:MU+9qUhDd だからそれはvarの効果であって、グローバルスコープは
グローバルオブジェクトのオブジェクト型スコープだから
そこに対する参照は全てグローバルオブジェクトへの参照へリダイレクトされるんだよ
つまりグローバル変数とグローバルオブジェクトのプロパティは同じもの
varで宣言すれば属性が変わるが存在するのは同じ場所
グローバルオブジェクトのオブジェクト型スコープだから
そこに対する参照は全てグローバルオブジェクトへの参照へリダイレクトされるんだよ
つまりグローバル変数とグローバルオブジェクトのプロパティは同じもの
varで宣言すれば属性が変わるが存在するのは同じ場所
902デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/12(水) 13:31:19.76ID:JRRJcnxl0 じゃあ他人のコードをレビューする時、
deleteは無視しても挙動は変わらないんだな?
deleteは無視しても挙動は変わらないんだな?
903デフォルトの名無しさん (ワッチョイ 57d8-KuRC)
2017/07/12(水) 13:52:48.55ID:JRRJcnxl0 やめたやめた、絡むだけ時間の損だわ。
904デフォルトの名無しさん (ワッチョイ 57d8-hKQV)
2017/07/12(水) 14:42:40.12ID:JRRJcnxl0905デフォルトの名無しさん (JP 0H4f-rvkC)
2017/07/12(水) 15:11:57.05ID:LVxqEvY9H お前の書き込みが俺をイライラさせる件についてはどう思うんだ
906デフォルトの名無しさん (ワッチョイ b70b-kLC1)
2017/07/12(水) 15:53:52.86ID:Xbh+81Re0 >>904
おれがいつそんな細かいことを気にせずテキトーでいいと言った?
俺はここの住人の中でもっとも細かいことが気になる人間だぞ?
だからむしろ、お前はスコープと変数の扱いの仕様レベルのことが分かっていないんだから、
言い回しに気をつけろと超細かいことを言ってるんだよ
いいか、グローバル変数とグローバルプロパティに差なんてない、両者は同じもの
ただvarで宣言するとconfigurableがfalseになるからdeleteできない、それだけなんだよ
おれがいつそんな細かいことを気にせずテキトーでいいと言った?
俺はここの住人の中でもっとも細かいことが気になる人間だぞ?
だからむしろ、お前はスコープと変数の扱いの仕様レベルのことが分かっていないんだから、
言い回しに気をつけろと超細かいことを言ってるんだよ
いいか、グローバル変数とグローバルプロパティに差なんてない、両者は同じもの
ただvarで宣言するとconfigurableがfalseになるからdeleteできない、それだけなんだよ
907デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/12(水) 16:13:36.51ID:HQm2gXhD0 グローバルオブジェクトは、唯一無二のシングルトン
グローバル変数は、グローバルな変数
グローバルプロパティは、グローバルなプロパティだから、delete で削除できる
これら、3つは別のもの
グローバル変数は、グローバルな変数
グローバルプロパティは、グローバルなプロパティだから、delete で削除できる
これら、3つは別のもの
908デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/12(水) 17:33:04.93ID:VV5TEq59M 要するに、普通のオブジェクトでのルールをグローバルオブジェクトにも適用して例外をなくしたからぱっと見で意味が分からない仕様になってるんだろうなぁ
全てがグローバルオブジェクトの中の出来事と思えばさほどおかしい仕様ではないが他言語からは理解しがたい不思議な世界かもしれない
全てがグローバルオブジェクトの中の出来事と思えばさほどおかしい仕様ではないが他言語からは理解しがたい不思議な世界かもしれない
909デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/12(水) 17:35:19.86ID:VV5TEq59M 仮にグローバルオブジェクトの外からそれらを見ることがあるなら、グローバルプロパティと変数の差はもっとわかり安いだろう
910デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/12(水) 18:06:03.89ID:VV5TEq59M とにかく開発時には、verもしくはthis(orなにかしらのオブジェクト)にドットで繋いで変数宣言しないとだめって事だな
それ以外の宣言だとぱっと見だと判断のつかない所属の変数になってしまう事がある
それはJSとしては正しい挙動だが、わざわざそんな事を狙ってやるやつは居ない
大抵はミスでそうなるケース
それ以外の宣言だとぱっと見だと判断のつかない所属の変数になってしまう事がある
それはJSとしては正しい挙動だが、わざわざそんな事を狙ってやるやつは居ない
大抵はミスでそうなるケース
911デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/12(水) 18:07:07.39ID:HQm2gXhD0 JSが難しい理由は、var, new の有無で、意味が変わってくる所。
ちょっとした書き間違いで、動作が異なる
しかも、コンパイルエラーにならないで、
しばらくしてから違う箇所で、実行時エラーになる
実装者向けの機能が、むき出しで、一般のプログラマーまで、
それを習得しないといけなくなってる
すごく、インタープリター内部の話まで、しなければならない。
それで、Ruby よりも、かなり難しい
ちょっとした書き間違いで、動作が異なる
しかも、コンパイルエラーにならないで、
しばらくしてから違う箇所で、実行時エラーになる
実装者向けの機能が、むき出しで、一般のプログラマーまで、
それを習得しないといけなくなってる
すごく、インタープリター内部の話まで、しなければならない。
それで、Ruby よりも、かなり難しい
912デフォルトの名無しさん (ワントンキン MM7f-gJC/)
2017/07/12(水) 18:24:56.67ID:VV5TEq59M JSはフリーダムすぎるんだよね
誰も使わないような自由があちらこちらにあって、それがケアレスミス時の落とし穴になるという
いろいろ作ってて理解不能なエラー挙動に直面して、ウォッチで追って行って「そんな仕様だったのかよ。。。」とあとから気づくことも多かった
誰も使わないような自由があちらこちらにあって、それがケアレスミス時の落とし穴になるという
いろいろ作ってて理解不能なエラー挙動に直面して、ウォッチで追って行って「そんな仕様だったのかよ。。。」とあとから気づくことも多かった
913デフォルトの名無しさん (ワッチョイ b70b-kLC1)
2017/07/12(水) 19:23:00.20ID:Xbh+81Re0 まあnew演算子の挙動は理解しとかないといけないだろうな
旧クラスシステムは、関数にデフォでprototypeメソッドが生えることを除くと
完全にnew演算子の力だけで成り立ってることを一旦理解すれば
newの有無で〜とか言う発言はなくなる
だってそもそもnewは演算子なんだから、そりゃどんな演算子でも飛ばせば動作が変わって来るのは当然だし
旧クラスシステムは、関数にデフォでprototypeメソッドが生えることを除くと
完全にnew演算子の力だけで成り立ってることを一旦理解すれば
newの有無で〜とか言う発言はなくなる
だってそもそもnewは演算子なんだから、そりゃどんな演算子でも飛ばせば動作が変わって来るのは当然だし
914デフォルトの名無しさん (ワッチョイ f7a9-aOiv)
2017/07/12(水) 19:32:20.46ID:46U9BX050 ここにいる人たちってeslintとか使ってないんか
915デフォルトの名無しさん (ワッチョイ 7f23-ZuCk)
2017/07/12(水) 19:49:51.64ID:svcC79vd0 勉強にはなったと思う
しかしグローバルプロパティを
deleteしようとすることは
俺の仕事内容的にはまずないだろうな……
しかしグローバルプロパティを
deleteしようとすることは
俺の仕事内容的にはまずないだろうな……
916デフォルトの名無しさん (ワッチョイ ffaa-PX3H)
2017/07/12(水) 20:12:49.78ID:HQm2gXhD0 new Number()
Number()
new を付けると、オブジェクトで、
無しだと、プリミティブになるとか、
ちょっとした変化を付けているから、困る。
ちょっとした書き方の変化で、色々と出来るようにしているから、ややこしい
Number()
new を付けると、オブジェクトで、
無しだと、プリミティブになるとか、
ちょっとした変化を付けているから、困る。
ちょっとした書き方の変化で、色々と出来るようにしているから、ややこしい
917デフォルトの名無しさん (ワッチョイ b70b-kLC1)
2017/07/12(水) 20:39:54.78ID:Xbh+81Re0 取り敢えずクラスはクラス構文で書けばいい
そうすればnew無しでは呼べない
そうすればnew無しでは呼べない
918デフォルトの名無しさん (スププ Sd70-wcQn)
2017/07/13(木) 03:17:56.06ID:UhYYQlFzd >>907
違う違う、いい加減仕様読みなって
グローバルに変数作ろうとするとグローバルオブジェクトのプロパティを作成することになるの
その時var宣言付きだとconfigurableがfalseになるからdeleteできない
ただそれだけでグローバル変数とグローバルプロパティに区別はない
違う違う、いい加減仕様読みなって
グローバルに変数作ろうとするとグローバルオブジェクトのプロパティを作成することになるの
その時var宣言付きだとconfigurableがfalseになるからdeleteできない
ただそれだけでグローバル変数とグローバルプロパティに区別はない
919デフォルトの名無しさん (ワントンキン MM1a-cSUh)
2017/07/13(木) 06:48:46.09ID:1ML2Rzf1M >>918
自分で言ってて矛盾してると思わないの?
自分で言ってて矛盾してると思わないの?
920デフォルトの名無しさん (ワッチョイ 4d0b-kuRt)
2017/07/13(木) 07:01:17.86ID:qKiU4eWA0 何も矛盾していない
矛盾してると思うのは君の前提知識が誤ってるから
そしてそろそろ仕様を読め、この順で
わからないところがあったら説明してやるから
https://tc39.github.io/ecma262/#sec-globaldeclarationinstantiation
https://tc39.github.io/ecma262/#sec-createglobalvarbinding
https://tc39.github.io/ecma262/#sec-global-environment-records
https://tc39.github.io/ecma262/#sec-object-environment-records
矛盾してると思うのは君の前提知識が誤ってるから
そしてそろそろ仕様を読め、この順で
わからないところがあったら説明してやるから
https://tc39.github.io/ecma262/#sec-globaldeclarationinstantiation
https://tc39.github.io/ecma262/#sec-createglobalvarbinding
https://tc39.github.io/ecma262/#sec-global-environment-records
https://tc39.github.io/ecma262/#sec-object-environment-records
921デフォルトの名無しさん (ワントンキン MM1a-cSUh)
2017/07/13(木) 08:33:49.98ID:1ML2Rzf1M >>920
なぜ変数とプロパティの違いすら分からないの?
両者は全然ちがうだろ
グローバルだけはスコープチェーンの最終地点だから使用する際の挙動に違いがほとんど無いだけ
これはたまたまそうなってるだけであり、「区別がない」なんて無知にもほどがあるだろ
なぜ変数とプロパティの違いすら分からないの?
両者は全然ちがうだろ
グローバルだけはスコープチェーンの最終地点だから使用する際の挙動に違いがほとんど無いだけ
これはたまたまそうなってるだけであり、「区別がない」なんて無知にもほどがあるだろ
922デフォルトの名無しさん (フリッテル MM5e-R3UR)
2017/07/13(木) 13:51:12.12ID:oJKwR9xkM >>907
つまり、こういう事か?
- delete演算子で削除できるものが「グローバルプロパティ」
- var 宣言したものは「グローバル変数」
オレオレ定義にしか思えんのだが、該当する仕様のURLを教えてくれ。
つまり、こういう事か?
- delete演算子で削除できるものが「グローバルプロパティ」
- var 宣言したものは「グローバル変数」
オレオレ定義にしか思えんのだが、該当する仕様のURLを教えてくれ。
923デフォルトの名無しさん (フリッテル MM5e-knux)
2017/07/13(木) 14:05:18.85ID:oJKwR9xkM >>921
var宣言してもグローバルオブジェクトのプロパティになるからでは?
<script>
var a = 1; // グローバル変数
console.log(this.a); // グローバルオブジェクトのプロパティ
</script>
だから、これは「グローバル変数でもグローバルオブジェクトのプロパティでもある」という認識が正しい。
彼が指摘しているように、仕様を読んだ方がいい。
var宣言してもグローバルオブジェクトのプロパティになるからでは?
<script>
var a = 1; // グローバル変数
console.log(this.a); // グローバルオブジェクトのプロパティ
</script>
だから、これは「グローバル変数でもグローバルオブジェクトのプロパティでもある」という認識が正しい。
彼が指摘しているように、仕様を読んだ方がいい。
924デフォルトの名無しさん (ワッチョイ df6f-qBah)
2017/07/13(木) 20:28:17.30ID:fMgp1qch0 トップレベルでObject.getOwmPropertyDescriptor(this, 'v')
すりゃ>>918が正しい事が確認できる
すりゃ>>918が正しい事が確認できる
925デフォルトの名無しさん (ワッチョイ 4d8e-N0vF)
2017/07/13(木) 21:06:35.19ID:+QqE9gTA0 スレ違いだったらすみません。
JSの勉強として既存のスクリプトを読んだりしているのですが、どうしても理解できない点がありまして、
よろしければご教示お願いできないかと思い書き込ませていただきました。
読んでいるのは以下のプロジェクトの /lib/marked.js となります。
JSの勉強に加えて、似たような処理をするスクリプトを組む参考にもなると思い選びました。
https://github.com/chjj/marked
当該スクリプトの下部で定義されている replace という関数に含まれている以下の文が、何を目的として存在しているのかが分かりません。
val = val.replace(/(^|[^\[])\^/g, '$1');
もしお時間ありましたら、どなたか解説お願いしても構わないでしょうか?
JSの勉強として既存のスクリプトを読んだりしているのですが、どうしても理解できない点がありまして、
よろしければご教示お願いできないかと思い書き込ませていただきました。
読んでいるのは以下のプロジェクトの /lib/marked.js となります。
JSの勉強に加えて、似たような処理をするスクリプトを組む参考にもなると思い選びました。
https://github.com/chjj/marked
当該スクリプトの下部で定義されている replace という関数に含まれている以下の文が、何を目的として存在しているのかが分かりません。
val = val.replace(/(^|[^\[])\^/g, '$1');
もしお時間ありましたら、どなたか解説お願いしても構わないでしょうか?
926デフォルトの名無しさん (アウアウカー Sa11-7i7E)
2017/07/13(木) 21:15:07.43ID:OmneFwIKa 性器表現
927デフォルトの名無しさん (ワッチョイ 0aaa-32Qs)
2017/07/13(木) 21:42:50.08ID:7UlgIumN0 他人のソースコードを読んでも、作者にしか分からないから、
時間が掛かるだけで、何にもならない。
自分で作った事だけが、自分を成長させる
それに、どうせ読むなら、John Resig 作の jQuery、
Jeremy Ashkenas 作の Underscore.js など、すごいライブラリを読みなよ
正規表現 - MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
時間が掛かるだけで、何にもならない。
自分で作った事だけが、自分を成長させる
それに、どうせ読むなら、John Resig 作の jQuery、
Jeremy Ashkenas 作の Underscore.js など、すごいライブラリを読みなよ
正規表現 - MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions
928デフォルトの名無しさん (ワッチョイ 0aaa-32Qs)
2017/07/13(木) 22:41:06.52ID:7UlgIumN0 var str3 = str.replace(/(^|[^\[])\^/g, '$1');
g フラグは、一致するだけ、複数にマッチする
$n は、( )で囲んだ部分に、一致した部分。
$1 は、1つ目の( )、$2 なら、2つ目の( )
^ は、文字列の先頭に一致する。^A なら、先頭がA。
ただし、[ ]の先頭にあると、否定の意味になる
[abc][a-c]は、a, b, c のどれかの1文字に一致するが、
[^abc]は、a, b, c のどれかの1文字に一致しない文字を表す
\ は、特殊文字をエスケープする。
特殊文字の意味をなくして、通常の文字として扱う。
\^ なら、^ の特殊な意味をなくして、単に、^ 文字を表す
\[ なら、[ 。
[ ] の中で、[ を使えないから、\[ と書いている。
つまり、[^\[] は外側の、[ ] を外すと、^\[ となり、[ 以外の文字
| は、どちらかの文字を表す。A|B なら、A か、B
(^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
2文字目が、^ にマッチする。
$1 で、( )内は、1文字目だけを取り出す
g フラグは、一致するだけ、複数にマッチする
$n は、( )で囲んだ部分に、一致した部分。
$1 は、1つ目の( )、$2 なら、2つ目の( )
^ は、文字列の先頭に一致する。^A なら、先頭がA。
ただし、[ ]の先頭にあると、否定の意味になる
[abc][a-c]は、a, b, c のどれかの1文字に一致するが、
[^abc]は、a, b, c のどれかの1文字に一致しない文字を表す
\ は、特殊文字をエスケープする。
特殊文字の意味をなくして、通常の文字として扱う。
\^ なら、^ の特殊な意味をなくして、単に、^ 文字を表す
\[ なら、[ 。
[ ] の中で、[ を使えないから、\[ と書いている。
つまり、[^\[] は外側の、[ ] を外すと、^\[ となり、[ 以外の文字
| は、どちらかの文字を表す。A|B なら、A か、B
(^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
2文字目が、^ にマッチする。
$1 で、( )内は、1文字目だけを取り出す
929デフォルトの名無しさん (ワッチョイ 0aaa-32Qs)
2017/07/13(木) 22:41:29.60ID:7UlgIumN0 var str = "a^^b";
var str2 = str.match(/(^|[^\[])\^/g);
var str3 = str.replace(/(^|[^\[])\^/g, '$1');
console.log(str2, '\n', str3);
str2は、a^ で、$1 は、( )内だから、a だけを表す。
replaceでは、a^ を、a で置換するから、str3は、a^b となる
var str2 = str.match(/(^|[^\[])\^/g);
var str3 = str.replace(/(^|[^\[])\^/g, '$1');
console.log(str2, '\n', str3);
str2は、a^ で、$1 は、( )内だから、a だけを表す。
replaceでは、a^ を、a で置換するから、str3は、a^b となる
930デフォルトの名無しさん (ワッチョイ 4d0b-kuRt)
2017/07/13(木) 22:53:39.59ID:qKiU4eWA0 >>921
順を追って書いていくからどこで引っかかるか教えてくれ
変数はEnvironment Recordという構造体に保存される
Environment RecordにはObject型があって、そこでは変数はオブジェクトのプロパティとして保存される
グローバルスコープのEnvironment RecordはグローバルオブジェクトをベースとしたObject型だ
グローバル変数はグローバルオブジェクトのプロパティとして保存される
順を追って書いていくからどこで引っかかるか教えてくれ
変数はEnvironment Recordという構造体に保存される
Environment RecordにはObject型があって、そこでは変数はオブジェクトのプロパティとして保存される
グローバルスコープのEnvironment RecordはグローバルオブジェクトをベースとしたObject型だ
グローバル変数はグローバルオブジェクトのプロパティとして保存される
931デフォルトの名無しさん (ワッチョイ 8bf3-z+eH)
2017/07/13(木) 23:24:43.34ID:2zl2aPWN0 >>925が超初心者と想定した説明を。
例えば入力された電話番号をチェックしたい場合、有効な電話番号を10桁の数字とすると、
if (phoneNumber == "0000000000" || phoneNumber == "0000000001" || ......)
と書いていては現実的に不可能です。
正規表現は文字列の法則を示したもので、replace関数の親戚のmatch関数で、
if (phoneNumber.match(/[0123456789]{10}/))
と書けば、"0000000000"〜"9999999999"までをカバー出来ます。
[0123456789]はより単純に[0-9]と書くこともでき、この部分は0〜9の数字1文字を示しています。
その後に続く{10}はそれを10回繰り返したものという意味です。
実はこれでは不完全で、この正規表現では10桁の数字さえあればよく、
例えば11桁以上の数字や、"0123456789A"や"A01234567890"みたいな文字も通ってしまいます。
そこで先頭に^をつけることによって、数字から始まることを示し、
最後に$をつけることによって、10桁で終了することを示せば、期待通りになります。
if (phoneNumber.match(/^[0-9]{10}$/))
さて本題ですが、上のmatch関数もそうですが、replace関数の1番目の引数は""で囲っていなく//で囲っています。
これは文字列ではなく、正規表現オブジェクトを渡していて、matchやreplace関数ではそうするもんだと思って下さい。
文字列変数valにある、(^|[^\[])\^という正規表現で示される部分を、(2番目の引数の)$1に置き換えるという意味です。
$1というのは、正規表現の後方参照と呼ばれるもので、正規表現の1番目の丸括弧()の中を指しています。
(^|[^\[])\^という正規表現なので、(^|[^\[])の部分が$1になります。
(^|[^\[])\^を(^|[^\[])に置き換える。つまり、丸括弧の外にある\^の部分を削りたいわけです。
/(^|[^\[])\^/gと書いてますが、このgというのは、正規表現のフラグの1つで、一致したもの全てを置き換えるという意味です。
もしgがない場合、一致した最初の1つしか置き換えられません。
大文字小文字を区別しないフラグなど、フラグは他にもいくつかあります。
初心者に正規表現は難しいので、(^|[^\[])\^がどういう意味なのかは時間をかけて勉強してみて下さい。
例えば入力された電話番号をチェックしたい場合、有効な電話番号を10桁の数字とすると、
if (phoneNumber == "0000000000" || phoneNumber == "0000000001" || ......)
と書いていては現実的に不可能です。
正規表現は文字列の法則を示したもので、replace関数の親戚のmatch関数で、
if (phoneNumber.match(/[0123456789]{10}/))
と書けば、"0000000000"〜"9999999999"までをカバー出来ます。
[0123456789]はより単純に[0-9]と書くこともでき、この部分は0〜9の数字1文字を示しています。
その後に続く{10}はそれを10回繰り返したものという意味です。
実はこれでは不完全で、この正規表現では10桁の数字さえあればよく、
例えば11桁以上の数字や、"0123456789A"や"A01234567890"みたいな文字も通ってしまいます。
そこで先頭に^をつけることによって、数字から始まることを示し、
最後に$をつけることによって、10桁で終了することを示せば、期待通りになります。
if (phoneNumber.match(/^[0-9]{10}$/))
さて本題ですが、上のmatch関数もそうですが、replace関数の1番目の引数は""で囲っていなく//で囲っています。
これは文字列ではなく、正規表現オブジェクトを渡していて、matchやreplace関数ではそうするもんだと思って下さい。
文字列変数valにある、(^|[^\[])\^という正規表現で示される部分を、(2番目の引数の)$1に置き換えるという意味です。
$1というのは、正規表現の後方参照と呼ばれるもので、正規表現の1番目の丸括弧()の中を指しています。
(^|[^\[])\^という正規表現なので、(^|[^\[])の部分が$1になります。
(^|[^\[])\^を(^|[^\[])に置き換える。つまり、丸括弧の外にある\^の部分を削りたいわけです。
/(^|[^\[])\^/gと書いてますが、このgというのは、正規表現のフラグの1つで、一致したもの全てを置き換えるという意味です。
もしgがない場合、一致した最初の1つしか置き換えられません。
大文字小文字を区別しないフラグなど、フラグは他にもいくつかあります。
初心者に正規表現は難しいので、(^|[^\[])\^がどういう意味なのかは時間をかけて勉強してみて下さい。
932デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/13(木) 23:38:29.43ID:ZRvPs5t50 >>928
というかその正規表現はおかしいだろ。
JavaScriptではエラーにならないし、
よくあるサイト上でのチェックでも実際のJavaScriptで動作させているから動いてしまうが。
チェッカーを探したがいいのが無いね。
> (^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
意味的におかしいだろ。^ は [ 以外の文字なんですがそれは?
君が勘違いしているのは下記か?
/(\^|[^\[])\^/
が、まあ、これが意味ないのは上記の通り。意味があるようにするとしたら以下か?
/(^\^|[^\[])\^/
韓国人死ね
というかその正規表現はおかしいだろ。
JavaScriptではエラーにならないし、
よくあるサイト上でのチェックでも実際のJavaScriptで動作させているから動いてしまうが。
チェッカーを探したがいいのが無いね。
> (^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
意味的におかしいだろ。^ は [ 以外の文字なんですがそれは?
君が勘違いしているのは下記か?
/(\^|[^\[])\^/
が、まあ、これが意味ないのは上記の通り。意味があるようにするとしたら以下か?
/(^\^|[^\[])\^/
韓国人死ね
933あ (スフッ Sd94-HJuN)
2017/07/13(木) 23:54:34.87ID:gzfFo6hjd934デフォルトの名無しさん (ワッチョイ 0aaa-32Qs)
2017/07/14(金) 00:09:24.28ID:jwaA4OPc0 そもそも、この正規表現は正しいのか?
935デフォルトの名無しさん (ワッチョイ 0123-z+eH)
2017/07/14(金) 00:24:01.50ID:jsZNOhnp0 >>933
え?それってありなん?
まあ俺は正規表現のプロではないが。
そして試してみた結果、確かにそのようだが、ものすごく気持ち悪い。
'^'.replace(/(^|[^\[])\^/g,'$1'); // ''
これってマジでありなん?しかもカッコ内じゃないのに置換されてるし。
韓国人死ね
え?それってありなん?
まあ俺は正規表現のプロではないが。
そして試してみた結果、確かにそのようだが、ものすごく気持ち悪い。
'^'.replace(/(^|[^\[])\^/g,'$1'); // ''
これってマジでありなん?しかもカッコ内じゃないのに置換されてるし。
韓国人死ね
936デフォルトの名無しさん (ワッチョイ df6f-qBah)
2017/07/14(金) 00:36:41.22ID:i0uGqEt60 ^が行頭を表すなんて朝鮮人以外はみんな知ってる
937デフォルトの名無しさん (ワッチョイ 2e20-z+eH)
2017/07/14(金) 01:07:53.54ID:+/3l0vud0 さわんじゃね
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【悲報】日本人「日本が中国と戦争になったら世界中の国が応援してくれるぞ!」 [616817505]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 【ほんこん悲報】吉本新喜劇の中国公演が中止に! [523957489]
