のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,685,799人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレ+ JavaScript の質問用スレッド vol.138 +

JavaScript覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

252 = :

そもそもjavascript動かしただけで犯罪になるのが日本だからな
逮捕されることを覚悟してやるしかねえわ

253 :

replace用の第1引数と第2引数のペアをまとめてオブジェクトに入れておいて呼び出したいのですけど
どんな感じでやるんですかね

今だと
const regObj = { 'a':正規表現, 'b':正規表現, 'c':正規表現 ];
const strObj = { 'a':文字列, 'b'文字列, 'c':文字列 };
const index = 'c';
text.replace(regObj[index], strObj[index]);

って別々の配列使っちゃってるんですけど
まとめたほうがわかりやすいだろうなと

一応
const regStrObj = {
 'a' : [ 正規表現, 文字列 ],
 'b' : [ 正規表現, 文字列 ],
 'c' : [ 正規表現, 文字列 ],
};
const arr = regStrObj['c'];
text.replace(arr[0], arr[1]);
って方法は思いつくものの、なんかもっといい書き方があるような気がして

255 :

ゼビオ行きたい

257 = :

>>253
もっと柔軟に考えな
定義はできるだけシンプルのほうが良い
アクセスは構造化されていたほうが良い
この2つは両立できる

258 = :

本来順序がないものに配列使うのは好きじゃないなぁ
だからArray#entries/Object.entriesとかも好きになれない

259 = :

entiries系は走査が目的で順序なんて気にしないことの方が多いでしょ

260 = :

>>259
key/valueを配列で持ってるでしょ
そのことよ

261 = :

[key, value] of entries
とかすりゃいいだけじゃん

263 = :

>>261
多分もうそれが嫌なんじゃない?
jsのArrayオブジェクトを静的型付け言語の配列と同じように考えてるっぽい

264 = :

>>263
え、違和感ない?一ミリも?
他にもMapに配列リテラル与えるのも違和感あるんだが

265 = :

>>264
全く違和感ない
むしろ、>>253で無駄にキーを定義しているのが気になる
配列はキーがインデックスになっただけ

266 = :

>>264
> 他にもMapに配列リテラル与えるのも違和感あるんだが
「違和感がある」がキーのことか、引数に二次元配列を渡していることか、わからんが、既にある定義に違和感があるなら、Mapを漠然と理解している気になってるからなんじゃないかね
イテレータとか、理解してるか?

267 = :

ま、好みの問題だし[0],[1]のアクセスに全く違和感ないなら分かり合えんのでいいわ
デストラクチャリングできるから良いって問題じゃないし
ただesには妥協の産物もあるってことは理解しといたほうがいいぞ

268 = :

jsが妥協だらけなんてことは大前提の上での話だと思うけど……生まれからして開発者と会社間の妥協の産物やないか

269 = :

すべての言語が妥協だらけなんてことは大前提の上での話だと思うけど……

270 = :

我が人生に一片の妥協なし!

271 = :

ちなみにリリースしたてのreact hooks apiの使用例:
const [count, setCount] = useState(initialCount);
5ちゃんのスーパーハカーによると妥協の産物である。

272 = :

だからそれもデストラクチャリング前提の妥協の産物でしょ

273 = :

メモリ上に並ぶんだからどうやったって順序があるだろ

274 = :

違和感ある/なしの感想だけを求めて理由はどうでも良かったのか
すぐ共感を求める女性のような考え方だな

276 = :

Mapや配列にした途端に違和感があるという不思議ちゃん

277 = :

>>258はPHPの連想配列にも不満をいいそう

278 = :

>>267
考え方が狭いだけだと思うよ
[a,b],
[c,d],
[e,f]
って
_ key val
0 a b
1 c d
2 e f
のような項目名が暗黙のテーブルってだけなんだよ
なんか配列というものにへんな固定観念を持ってるから違和感を感じるだけなんだよ
定義はシンプルな方が良いんだからさ
{key:'a',value:'b'},{key:'c',value:'d'},{key:'e',value:'f'}
みたいにするよりは配列を使ったほうが良いんだよ
別に[a,b],[c,d],[e,f]と書いて置いてオブジェクトに変換して使うとかも簡単にできるんだからさ
そのへんが内部的にも行われてると考えればいいだけで変なこだわりを持っても価値がないんだよ

279 = :

元は順序がどうとか言ってたから、arr[3]みたいな順序に依存したアクセスが気にくわないと言うのならわかる

282 = :

iterableの考え方が出来てない人が「妥協の産物」と断じているだけだろう

283 = :

本人も両親の妥協の産物なのです

284 = :

一週間前に始めた超初心者です。

htmlファイルと外部読み込みjavascriptファイルをPCで作り、スマホに送ってクロームで開いたところ、
htmlは表示されましたが、どうしてもjavascriptがうまくいきません。なぜでしょうか?
(スクリプトをhtmlに直接書き込むと動作するので、外部読み込みファイルの指定の仕方が悪いと思っています。)

【外部ファイル指定部分】
<a href="./time.html" target="frame_name" >現在時刻</a><br>
<iframe name="frame_name" width="200" height="50" ></iframe><br>

285 = :

>>284
まず服を脱いでください

286 = :

質問です。

var x = 123;

function hello(){
var y = 456;

var button = document.getElementById("btnElement");
button.onclick = function(mouseEvent){ console.log("x="+x+",y="+y); };
}

このときyがundefinedになりますが、
クリックのイベントハンドラ内にyを渡す方法はありませんか?

287 = :

>>286
> このときyがundefinedになりますが、
button.onclick の関数を定義してるのはhello関数のスコープ
hello関数で定義しているyは参照できるはず
適当に補って試してみたが再現しない

変数のスコープ説明のためのソースっぽいけど、このソースそのままなの?
どこかtypoしてないか?

290 = :

>>288
それならjQueryを使うと良い。単純に置き換えるだけでもここまで短くなる

function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
var btn1 = $("#btn1");
btn1.click(fnc);
var btn2 = $("#btn2");
btn2.click(fnc);
var btn3 = $("#btn3");
btn3.click(fnc);
});

一時変数を使うまでもないのでこうだな

function fnc(event) {
alert(event.currentTarget.value);
}
$(function() {
$("#btn1").click(fnc);
$("#btn2").click(fnc);
$("#btn3").click(fnc);
});

291 = :

そして根本的にやるならこう

<button id="btn1" value="1" class="btn">ボタン1</button>
<button id="btn2" value="2" class="btn">ボタン2</button>
<button id="btn3" value="3" class="btn">ボタン3</button>

$(function() {
$(".btn").click(function() {
alert(this.value);
});
});

293 = :

>>288
ボタンが一列に並ぶかどうかとか色々不明な前提条件があるので
すまんけど明確な方針は出せない
少なくとも適用する関数が全て同じfncならば、
idじゃなくてclassでまとめることをオススメする
http://jsfiddle.net/kgn91oyL/

294 = :

>>288

>>291のコードを動くようにしてみた
http://jsfiddle.net/r38gt724/

更に一行で書いてみた。
個人的にはアロー関数は戻り値を使うべきだと思ってるので好きではないが
http://jsfiddle.net/pm4cqf75/

296 = :

>>290-294でした

297 = :

>>288
個別ボタンにaddEventlistenerするのではなく外側の要素でイベント取ってclass等で判別するとか
http://jsfiddle.net/o3s2mwp9/

298 = :

>>288
var btn1 = document.getElementById("btn1");
などはまるごと省略してよい
id属性をもつ要素はそのままグローバルプロパティとして現れる決まりがある

299 = :

>>297と同等のことをjQueryであるとこうなります。

document.getElementById("buttons").addEventListener("click", ev => {
 if (ev.target.classList.contains("btn")) {
  alert(ev.target.value);
  }
});



$("#buttons").on("click", '.btn', function(event) {
 alert(this.value);
});

http://jsfiddle.net/3t1nv7kq/

300 = :

デザイナーってJavaScriptどらくらい理解してればいい?


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について