X



+ JavaScript の質問用スレッド vol.137 +
レス数が1000を超えています。これ以上書き込みはできません。
0001Name_Not_Found
垢版 |
2019/01/06(日) 20:11:13.75ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

※前スレ
+ JavaScript の質問用スレッド vol.136 +
http://mevius.5ch.net/test/read.cgi/hp/1542707959/
0002Name_Not_Found
垢版 |
2019/01/06(日) 20:12:10.67ID:???
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0003Name_Not_Found
垢版 |
2019/01/06(日) 20:19:55.21ID:???
■テンプレ案
https://fiddle.jshell.net/6ksf2087/show/light/

■参考URL
ダウンロード、CDN
http://jquery.com/download/
ブラウザサポート
http://jquery.com/browser-support/
jQuery UI
http://jqueryui.com/
jQuery UI ダウンロ−ド
http://jqueryui.com/download/
リファレンス等
http://alphasis.info/
http://www.jquerystudy.info/
http://js.studio-kingdom.com/
【翻訳まとめ】jQuery 3.0 アップグレードガイド - Qiita
http://qiita.com/fmy/items/345a264a1cf2e2a73f62
0004Name_Not_Found
垢版 |
2019/01/06(日) 20:20:14.89ID:???
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0006Name_Not_Found
垢版 |
2019/01/06(日) 20:21:41.75ID:???
https://w3techs.com/technologies/overview/javascript_library/all

w3techsによると2017年1月の時点で71.9%のサイトがJavaScriptのライブラリとして
jQueryを使用していることが判明し、それ以降もシェアの増加が続いていたが、
2018年4月〜2018年10月の約半年間で変化が見られず、ようやく73.3%〜73.4%で
増加が停止したようである。

しかしながら、減少の傾向は見られず、マーケットシェア(JavaScriptを使用しているサイトでの使用率)
https://w3techs.com/technologies/history_overview/javascript_library は97.2%を
示していることから、jQueryからの移行が始まったと言うより、上げ止まりであると考えられる

jQuery以外では、この1年でBootstrapが2%程度、Underscoreが1%程度増加している以外は
ほとんど変動はなく、期待されていたAngularは過去最高の0.5%から0.1%減少した0.4%に、
Reactは過去最高の0.6%から0.5%と大きく減少し、0.1%に下がっていることが判明した。

またいずれのライブラリも使用していないサイトは24.5%で
2017年まで減り続けていたがこの一年ではほとんど変化はない。

この状況が大きく変化するときは来るのだろうか?この先の動向が注目される
0012Name_Not_Found
垢版 |
2019/01/06(日) 20:41:08.96ID:???
じゃあ使用率のデータあるっていうの?
0015Name_Not_Found
垢版 |
2019/01/06(日) 20:59:56.27ID:???
>>14
お前はjQueryスレ行けや
こっち来んな!!
0016Name_Not_Found
垢版 |
2019/01/06(日) 21:02:47.49ID:???
>>14
トレンド
https://ja.wikipedia.org/wiki/%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89
> トレンド(英語:trend)は、時代の趨勢、潮流、流行のこと。ファッション、マーケティング、
> 経済動向分析などの分野でよく使用される。統計学では、傾向変動を指す(#統計学用語)。

googleトレンドなんだから、今の流行を示してるに決まってるだろ
0017Name_Not_Found
垢版 |
2019/01/06(日) 21:05:56.40ID:???
>>15
何をそんなに怒ってるの?

>>16
ただの検索数だよ
クローラの割合、前年比、トレンドをあわせて考えると、
reactを使い始めて、検索しながら手探りで使い始めている層が多いということが考えられるね
0018Name_Not_Found
垢版 |
2019/01/06(日) 21:07:20.32ID:???
reactの0.1%って幾らなんでも少なすぎない?
と思ったけど個人サイトやペライチのサイトも考えればそんなもんか
ペライチサイトでもjQueryだけはとりあえず入れるからなぁ
0019Name_Not_Found
垢版 |
2019/01/06(日) 21:15:10.12ID:???
> reactの0.1%って幾らなんでも少なすぎない?
そこはそんなに重要じゃなくて、2018年に0.7%まで増えていたのが
2918年終わりには一気に0.2%まで減ってしまったところなんだよな
順調に増えてるなら、低くてもまだ出たばかりだって言えるんだけどさ

https://w3techs.com/technologies/history_overview/javascript_library/ms/y
0020Name_Not_Found
垢版 |
2019/01/06(日) 21:16:01.77ID:???
> 2918年終わりには一気に0.2%まで減ってしまったところなんだよな
900年ほど水増ししちゃったw
2018年の終わりってことね
0021Name_Not_Found
垢版 |
2019/01/06(日) 21:16:31.95ID:???
>>19
jQueryスレでやれカスブタ野郎!!!
0022Name_Not_Found
垢版 |
2019/01/06(日) 21:19:12.20ID:???
>>21
Reactの話題をjQueryスレでやるっておかしくね?w
0023Name_Not_Found
垢版 |
2019/01/06(日) 23:48:08.82ID:pumZpKMR
>>3
なぜjQuetyスレのテンプレを使う?
啓蒙活動は余所でやってくれ
0024Name_Not_Found
垢版 |
2019/01/08(火) 09:33:13.12ID:70burGZj
質問

<span onclick="funca()">
<a href="abc
0025Name_Not_Found
垢版 |
2019/01/08(火) 09:34:54.25ID:70burGZj
>>24すみません途中で書き込んじゃいました。改めて

質問

<span onclick="funca()">
<a href="a">link</a></span>

というような状況で、linkをクリックした時にリンクを開く動作だけしてspanのonclickが働かないようにする
(伝播しないようにする?)にはどうしたら良いんでしょうか?
0026Name_Not_Found
垢版 |
2019/01/08(火) 12:38:32.80ID:???
>>25
訪問したサイトにイベント付きのリンクがあり、
そのイベントを発火させないスクリプトをあとから実行したい
ということなら
a要素をspanから出して直後に挿入とか
span要素の親要素.insertBefore(span要素.querySelector('a'),span要素.nextElementSibling);
もっと簡潔に書けそうですが
https://jsfiddle.net/Lcn8orwv/
0027Name_Not_Found
垢版 |
2019/01/08(火) 13:04:33.39ID:???
>>25
<a href="a" onclick="arguments[0].stopPropagation()">link</a>
0029Name_Not_Found
垢版 |
2019/01/08(火) 18:49:57.58ID:???
>>27
ありがとうございます。バッチリいけました。
onclickの中のarguments[0]の役割について勉強になりました。なるほど。
0030Name_Not_Found
垢版 |
2019/01/09(水) 05:25:30.34ID:???
「javascript stoppropagation preventdefault」で検索!
0031Name_Not_Found
垢版 |
2019/01/09(水) 06:23:07.93ID:???
argumentsが使えるなんて保証されてんの?
0032Name_Not_Found
垢版 |
2019/01/09(水) 09:15:46.00ID:???
そらそうよ。
onclick="function(e) {e.stopPropagation();}"
って書くのと同じなんだからarguments[0]はイベントオブジェクト
0033Name_Not_Found
垢版 |
2019/01/09(水) 11:29:10.76ID:???
> onclick="function(e) {e.stopPropagation();}"
> って書くのと同じなんだから

それは保証されてんの?
0034Name_Not_Found
垢版 |
2019/01/09(水) 12:26:11.70ID:???
なんだが分からんが俺が保証しようw
0038Name_Not_Found
垢版 |
2019/01/10(木) 09:32:58.20ID:2AtXVlsu
>>33
同義じゃね?
無名関数で一度ラップされてるだけで
0039Name_Not_Found
垢版 |
2019/01/10(木) 15:36:42.44ID:???
>>38
それなら
onclick="void function(e){e.stopPropagation();}()"
と書くことになるけどこれはエラー。
この場合eもarguments[0]もundefined。
0040Name_Not_Found
垢版 |
2019/01/10(木) 17:17:24.23ID:2AtXVlsu
>>39
void演算子つくと、onclick属性の値はundefinedになっちゃ
…いま気づいたわ間違ってたわすまんこ

<a onclick=" arguments[0].stopPropergation(); ">



a要素.addEventListener('click', function(){ arguments[0].stopPropergation(); });


onlick属性の値は
addEventListenerの第二引数に渡される関数の中身だた
0041Name_Not_Found
垢版 |
2019/01/10(木) 17:39:03.85ID:???
arguments[0]に頼らざるを得ないのかよ
なんか気持ち悪いな
0042Name_Not_Found
垢版 |
2019/01/11(金) 00:14:21.33ID:???
>>41
そんな書き方は普通されないし、する必要もない
<a onclick="event.stopPropagation()">
がある
0043Name_Not_Found
垢版 |
2019/01/11(金) 01:38:27.07ID:???
>>42
グローバルにeventが置かれてるのは
IE、safari、chromeだけじゃね?
違ったっけ?
0044Name_Not_Found
垢版 |
2019/01/11(金) 09:13:39.91ID:???
eと並んでjs側でも慣例的によく使われるとはいえイベントオブジェクトを勝手にeventという特定の変数名にバインドされてるのは更に気持ち悪いな。arguments[0]のほうがまだマシだわ。
0045Name_Not_Found
垢版 |
2019/01/11(金) 09:50:37.79ID:???
あれってバインドされてるんじゃなくて
window.eventってのが最初からいて
全てで起こるイベントを拾ってるんだと思ってた
0047Name_Not_Found
垢版 |
2019/01/11(金) 21:44:42.64ID:???
テンプレートストリングってバックチックで囲むやつのことですか?
0048Name_Not_Found
垢版 |
2019/01/11(金) 21:46:45.41ID:???
今井寿がどうしたって?
0050Name_Not_Found
垢版 |
2019/01/12(土) 01:16:23.16ID:???
くらえ! テンプレートストリングバックチック!!
0052Name_Not_Found
垢版 |
2019/01/12(土) 09:32:50.42ID:???
>>51
ありがとう、これですか
f-stringみたいで使いやすいですね
今はテンプレートリテラルと呼ぶのか
0053Name_Not_Found
垢版 |
2019/01/12(土) 10:50:35.29ID:???
テンプレートリテラルバックチック!!
0054Name_Not_Found
垢版 |
2019/01/12(土) 17:08:09.17ID:???
テンプレートストリングからテンプレートリテラルに改名されてもmdnのurlは昔の名前のままなんだな。当たり前か…
0055Name_Not_Found
垢版 |
2019/01/13(日) 06:55:46.95ID:asIlMu3r
google maps APIで、マーカーに関連付けしたInfoWindowの内容を取得するにはどうしたらいいでしょうか?

具体的には、以下のようなマーカーアがある状態で、マーカーをクリックしたら、地名・タイトル・本文 を文字列として取得したいです。
var marker1 = new google.maps.Marker( { position: { lat:30, lng:135 }, label:'地名', icon:'icon.png', map:map });
var info1 = new google.maps.InfoWindow( { content: '<div class = "inf">タイトル<br><div>本文</div></div>' } );
marker1.addListener('click', function(){ info1.open(map, marker1); } );
0056Name_Not_Found
垢版 |
2019/01/13(日) 11:00:45.93ID:???
タイトルのセレクターは、div.inf
本文は、div.inf > div

地名は、わからない
0057Name_Not_Found
垢版 |
2019/01/13(日) 11:40:14.49ID:???
アロー関数の前につけるvar, const, let
ってどれでもいいの?
0059Name_Not_Found
垢版 |
2019/01/13(日) 11:48:06.69ID:???
let使うとif等のブロック内で定義した時、ブロックから出ると使えなくなる
その方がいい場面があればletだけど、多分内と思う

脳死でconstで良いと思う
varはもう生涯使わんでいい
0060Name_Not_Found
垢版 |
2019/01/13(日) 12:03:07.48ID:???
>>58
>>59
ありがとう
varはデプリケーテッドなんですね
let はスコープ内だけで
varはglobal
constは定数
0061Name_Not_Found
垢版 |
2019/01/13(日) 12:13:26.62ID:???
constはletとスコープは一緒
値を更新しないならconstが推奨される
アロー関数を変更することなんてまず無いんだからconst一択
どうしてもconstではできない時(少ない)だけletを使う
0062Name_Not_Found
垢版 |
2019/01/13(日) 12:23:27.73ID:???
アロー関数と関数宣言って使い分けがめんどくさい
なんでこんなクソごっちゃで仕様めちゃくちゃにしてるんだか
0063Name_Not_Found
垢版 |
2019/01/13(日) 12:39:59.91ID:???
アロー関数は当分使わないかな
なんか見づらいんだよな
0064Name_Not_Found
垢版 |
2019/01/13(日) 13:04:40.46ID:???
アロー関数は「関数である値」と考えればいいよ
見づらいのは関数だと考えているから。

例えば、 sort(比較関数) みたいな時
引数はsoft関数にわたす値のようなもんでしょ?

だから関数として見えるんじゃなくて
値として見えるように、ああいう構文になってるんだよ
0065Name_Not_Found
垢版 |
2019/01/13(日) 13:06:35.64ID:???
>>62
ついて来れない人達のために
仕方なく互換性を残してるんだよ
0066Name_Not_Found
垢版 |
2019/01/13(日) 13:12:07.30ID:???
まあ関数リテラルのシンタックスシュガーだけど実際は中の挙動が違うし当たり前だけど定義の前では使えない
0067Name_Not_Found
垢版 |
2019/01/13(日) 13:13:16.73ID:???
アロー関数の => {} の{}の仕様は無くして欲しかったね。returnも使えなくしてほしかった
=> の右側は式だけで十分
0068Name_Not_Found
垢版 |
2019/01/13(日) 13:19:11.56ID:???
だからアロー関数と関数宣言の両方を使ってるソースみると、なんで統一しないの?ってなることもある
だけどこれは仕方のないことなんだよ
統一したいならfunctionを使うしかない
0069Name_Not_Found
垢版 |
2019/01/13(日) 13:31:32.20ID:???
=> = function
こういう代入ができればいいのに
0070Name_Not_Found
垢版 |
2019/01/13(日) 13:35:22.93ID:???
>>68
目的が違うからだよ

・関数は宣言しておいて何処か別の場所で使う
・アロー関数は別の関数に値として渡すために使う

書き方を分けることで、どういう使い方をするのかを
読み手に読み取らせることが出来る
0071Name_Not_Found
垢版 |
2019/01/13(日) 13:36:07.62ID:???
「使い方が違う」というのを理解せずに
単に「書き方が違う」とだけしか思ってないやつがいるんだよな
0072Name_Not_Found
垢版 |
2019/01/13(日) 13:54:05.63ID:???
>>70
>・アロー関数は別の関数に値として渡すために使う

渡すためだけにしか使えないわけじゃないんだけど、それはどこで誰が決めたの?
0073Name_Not_Found
垢版 |
2019/01/13(日) 14:12:56.13ID:???
input検証にhtml5からrequiredプロパティが使えるようになったとのことで
それ試してるんですがvalidになったときの状態はどうやって判定したらいいのでしょう?
input[name="hoge"]がパターン^abcでvalidになるとして
if ($('input[name="hoge"]').value.match(/^abc/))
のようにとってしまっては
ただvalidとinvalidでスタイルを変更するだけの飾りになってしまうので
何かvalidになったときその要素に何かプロパティが設定されるのではないかと思うのですが
ちょっと調べてもわかりませんでした
ご存知の方教えていただけるとありがたいです
007473
垢版 |
2019/01/13(日) 14:28:38.45ID:???
すみません追記です

$('input[name="hoge"]')は$hogeとして
patternプロパティ参照して
if ($hoge.value.match($hoge.pattern))
ではとれます
if ($hoge.value.isvalid)
のようにとれるのが理想でプロパティ見てますが
っぽいのが見当たりません
0075Name_Not_Found
垢版 |
2019/01/13(日) 14:30:39.77ID:???
$('input[name="hoge"]:valid') でいいでしょ?
無駄なことしなーいw
007673
垢版 |
2019/01/13(日) 14:56:58.66ID:???
>>75
:の意味がよくわからず思考から除外してました
それでとれることを確認しました
Event.targetにも対応したかったのでそれをヒントに調べましたところ
checkValidity()メソッドでいけることがわかりました
$hoge.checkValidity()

どうもありがとうございました
0077Name_Not_Found
垢版 |
2019/01/13(日) 19:29:07.92ID:???
オブジェクト(変数)名を取得する方法を教えてください。
具体的には、以下のようにしたいです。

let variable1 = "";
let variable2 = [];
let variable3 = 12;

let list = [];

list.push(variable1);
list.push(variable2);
list.push(variable3);

for(let i = 0; i < list.length; i++)
{
alert(list[i].???);           //variable1 variable2 variable3と順番に表示
}
0078Name_Not_Found
垢版 |
2019/01/13(日) 19:35:26.00ID:???
長い

const variable1 = "";
const variable2 = [];
const variable3 = 12;

const list = [variable1, variable2, variable3];

for (const i of list) {
 alert(???);           //variable1 variable2 variable3と順番に表示
}
0079Name_Not_Found
垢版 |
2019/01/13(日) 19:43:44.97ID:???
listに入るものは変数名ではなく変数の中身だけなので無理
0080Name_Not_Found
垢版 |
2019/01/13(日) 19:54:58.99ID:???
こんな感じで書く方法があれば行けるかもねぇ

for (arr) {
console.log(this.var_name);
}
0081Name_Not_Found
垢版 |
2019/01/13(日) 21:13:18.39ID:???
const variable1 = "";
const variable2 = [];
const variable3 = 12;

const list = {variable1, variable2, variable3};

for (const [key, value] of Object.entries(list)) {
alert(key);
}
0083Name_Not_Found
垢版 |
2019/01/13(日) 21:30:43.28ID:???
おまえ頭柔らかいな
ほめてやろう
0084Name_Not_Found
垢版 |
2019/01/13(日) 21:39:04.89ID:???
>>81
レベルが違うってはっきりわかんだね
0085Name_Not_Found
垢版 |
2019/01/13(日) 22:34:07.85ID:???
やっぱダメだわ大抵の処理系ではvariable1, variable2, variable3の順で出てくるれるが仕様では順序保証されてない
0086Name_Not_Found
垢版 |
2019/01/13(日) 22:42:52.36ID:???
Mapなら確か順序保証されてたからそっちにすれば
0087Name_Not_Found
垢版 |
2019/01/13(日) 23:25:31.42ID:???
eval使っていいならこんなのはどうじゃろ?
順序保証されたぞ。

const variable1 = "";
const variable2 = [];
const variable3 = 12;

const list = ['variable1', 'variable2', 'variable3'];
const map = list.map(name => [name, eval(name)]);

for (const [key, value] of map) {
alert(key);
}
0088Name_Not_Found
垢版 |
2019/01/14(月) 02:25:40.41ID:???
関数を文字列化して、そこから正規表現で抜き出すw
0089Name_Not_Found
垢版 |
2019/01/14(月) 13:32:41.26ID:???
>>77
いずれにしても、変数名を文字列で渡さなければ、無理

const map = new Map([['variable1', variable1], ['variable2', variable2], ['variable3', variable3]]);
for (let [key, value] of map) condole.log(key)
0090Name_Not_Found
垢版 |
2019/01/14(月) 16:46:47.82ID:???
ちょっと趣向を変えてこんなのとかw
順序は保証されるし変数名を文字列で渡さなくてもいいぞ。

const variable1 = () => "";
const variable2 = () => [];
const variable3 = () => 12;

const list = [variable1, variable2, variable3];

for (const func of list) {
alert(func.name);
}
0092Name_Not_Found
垢版 |
2019/01/14(月) 16:54:47.92ID:???
もう終わりにしてくれるか
0093Name_Not_Found
垢版 |
2019/01/14(月) 17:36:46.04ID:???
そもそも変数名を取得する設計を見直した方がいい
何がしたかったのかをもう一度よく考えてみるべき
0094Name_Not_Found
垢版 |
2019/01/14(月) 18:13:17.12ID:???
>>81
個別に変数を作らなければ良い
const map = new Map([['variable1', ""], ['variable2', []], ['variable3', 12]]);
for (let [key, value] of map) console.log(key);
0095Name_Not_Found
垢版 |
2019/01/14(月) 18:17:17.65ID:???
Mapリテラルまだー?
今の初期化構文、わかりづらいしリストに型の違う値入れなきゃで気持ち悪い
0096Name_Not_Found
垢版 |
2019/01/14(月) 18:19:23.94ID:???
それならMap使う必要まったくなくない?

const list = [['variable1', ""], ['variable2', []], ['variable3', 12]];

for (const [key, value] of list) {
alert(key);
}
0097Name_Not_Found
垢版 |
2019/01/14(月) 18:24:35.90ID:???
variable3の値だけ欲しいときに毎回find走らせるの?
0099Name_Not_Found
垢版 |
2019/01/14(月) 18:42:47.94ID:???
あー、まぁ「variable3は必ずlistの3要素目である」っていう前提下ならlist[2][1]とかでいけるのか
自分がそういう書き方しないから抜けてたわ
0100Name_Not_Found
垢版 |
2019/01/14(月) 18:47:02.84ID:???
>>97
keyはユニークなんだから、配列と違って全体検索ではないでしょ?
0103Name_Not_Found
垢版 |
2019/01/14(月) 20:11:29.02ID:???
>>95
マジレスすると、Mapリテラルは非常に設計が面倒くさいと思うぞ
keyに何でも入れられるので、Syntaxが複雑化極まる
{{1:1,true:2,"s":3,{}:4,[]:5,()=>1:6,function f(){}:7,Symbol():8,new Object:9}}
0105Name_Not_Found
垢版 |
2019/01/14(月) 20:17:16.40ID:???
飛影はそんなこと言わない
0106Name_Not_Found
垢版 |
2019/01/14(月) 20:25:54.34ID:???
Mapいいんだけどさぁ、重厚長大過ぎるよ。
使いどころはあるけど普段使いしないよ。
単なる組み込みクラスでリテラルも無くsetget系APIも目にうるさい。
顧客が本当に求めていたもの: 列挙時順序保証のオーダードオブジェクトリテラル
const list = #{variable1, variable2, variable3};
>>81の順序が保証されるみたいな。
これをfor inしたときはプロトタイプ辿らないみたいな挙動なら完璧。
0107Name_Not_Found
垢版 |
2019/01/14(月) 20:41:21.54ID:???
たしかにget/setはダサい
[]でアクセスできてこそmap
TypedArrayが[]アクセスできるのは何でだっけ
0108Name_Not_Found
垢版 |
2019/01/14(月) 20:44:51.69ID:???
>>106
後方互換性を考慮してあの設計なのだろう
0109Name_Not_Found
垢版 |
2019/01/14(月) 20:48:57.65ID:???
>>107
TypedArrayは通常の配列と同じでString,Symbol型しかプロパティに持てないから
原理的には、プロパティアクセサを拡張すれば、new Mapでも[]の参照が可能
0110Name_Not_Found
垢版 |
2019/01/14(月) 20:52:39.68ID:???
テンプレートリテラル`〜`に対するタグ付きテンプレートリテラルhoge`〜`みたいに配列リテラル[〜]、オブジェクトリテラル{〜}に対してもfuga[〜]、piyo{〜}みたいにユーザー定義の道を開いてくれると嬉しい。
配列リテラルについては無理か…
fugaに対するキーワードアクセスと区別つかないもんな。
0111Name_Not_Found
垢版 |
2019/01/14(月) 20:54:21.73ID:???
>>110
タグ付きテンプレートリテラルとは?
0113Name_Not_Found
垢版 |
2019/01/14(月) 21:02:17.81ID:???
>>112
滅茶苦茶読みにくいな
template(`${0} ${'foo'}!`)がtemplate`${0} ${'foo'}!`と書けるだけだが、何が便利なんだ?
0114Name_Not_Found
垢版 |
2019/01/14(月) 21:05:44.07ID:???
>>113
styledComponentのAPIがこれ使ってた気がするな…
まあリフレクションAPIとかと同じでフレームワークやライブラリを作る人が使う機能で一般ユーザーは提供されるAPIにしたがってhoge`〜`するだけだよ。
0115Name_Not_Found
垢版 |
2019/01/14(月) 21:09:53.55ID:???
>>114
なるほど、タグ付きテンプレートリテラルに最適化されたAPIを作れるのが利点か
0117Name_Not_Found
垢版 |
2019/01/14(月) 21:41:28.08ID:???
>>113
そんなもんテンプレートエンジン使っていればわかるやん?

例えばCakePHPだとh関数でHTMLエスケープするやろ?
e関数だと、そのままechoやろ?
0118Name_Not_Found
垢版 |
2019/01/14(月) 21:46:25.67ID:???
tag(``)がtag``って書けるのがナウいんだよ!うるせーな!!
0119Name_Not_Found
垢版 |
2019/01/14(月) 21:52:53.15ID:???
>>118
違います。
tag(`a${1}b`)だと関数tagは1つの文字列a1bしか受け取れません。
tag`a${1}b`だと関数tagは配列(厳密にはrawも含むが)['a', 'b']と1がそのまま受け取れます。
0120Name_Not_Found
垢版 |
2019/01/14(月) 21:58:48.37ID:???
ようするに出力をエスケープするためのもの
0123Name_Not_Found
垢版 |
2019/01/15(火) 19:35:11.81ID:???
眺めてたらってそういう話もなくはないんだなって。。。
もういい加減にしてくれ
この手の話は何度もES6から出てただろうが
そして何度も挙がるものって2種類あって
毎回進歩するものとそうでないもの
これは後者だろうが
そのへんなんにも追っかけてなくてニュアンス理解してないくせに
一瞬調べて無責任に引っ張ってくるってどうよお前
お前どうよ?それ
0124Name_Not_Found
垢版 |
2019/01/15(火) 19:41:05.06ID:???
無責任って何を当たり前なことを…
なんで俺が責任とるんだよバーカw
0127Name_Not_Found
垢版 |
2019/01/15(火) 21:06:16.47ID:???
あんまり誤爆に見えない
0128Name_Not_Found
垢版 |
2019/01/15(火) 21:20:55.61ID:???
中身がない文章は汎用的になるので
どこでも使える
0129Name_Not_Found
垢版 |
2019/01/16(水) 08:46:50.52ID:???
>>77
let variable1 = "";
let variable2 = [];
let variable3 = 12;

let list = [];

list.push({variable1});
list.push({variable2});
list.push({variable3});

for (let obj of list) {
alert(Object.keys(obj)[0]);
}
0130Name_Not_Found
垢版 |
2019/01/16(水) 12:35:22.45ID:???
名前はスコープで管理されているのでwithを使うしかない
それでも原理的に確実ではないのでwith-proxyを使うか
0131Name_Not_Found
垢版 |
2019/01/16(水) 20:06:14.67ID:???
リストに追加した後も変数名残そうと思ったらwith-proxyだけじゃ足りないだろ
value-proxyが導入されたら組み合わせて可能かもしれないが
0132Name_Not_Found
垢版 |
2019/01/16(水) 20:20:43.58ID:???
with-proxyて何?検索しても出てこない(´;ω;`)
なんでみんな知ってるんや…
0133Name_Not_Found
垢版 |
2019/01/16(水) 21:25:52.91ID:???
そのまんま
with(new Proxy(......)){}
のことでしょ
こうしたら変数アクセスをほぼほぼプロキシできる
例えば__scope__でスコープオブジェクトにアクセスできるようにしたり
$GetVariableName(a) // 'a'
みたいな事とかいろいろできる
0134Name_Not_Found
垢版 |
2019/01/16(水) 21:33:32.12ID:???
他にも分数だったりbignum同士の四則演算もできたはず
$BEGIN_BIGNUM
a = '12345678901234567890'
b = '23456789012345678901'
c = a + b
$END_BIGNUM
c // '35802467913580246791'
って感じでできるようにプロダクトで使ったことある
0135Name_Not_Found
垢版 |
2019/01/16(水) 22:45:54.04ID:???
へぇ〜
参考ページない?英語でも可
いろいろサンプル見たい
0139Name_Not_Found
垢版 |
2019/01/17(木) 20:02:14.70ID:???
原理的に変数アクセスがプロキシできたらできることなら何でもできるよ
0140Name_Not_Found
垢版 |
2019/01/17(木) 20:04:53.47ID:???
変数名を後から変更すると不具合誘発するとか、怖くて使えない
0141Name_Not_Found
垢版 |
2019/01/17(木) 20:19:06.33ID:???
変数名を変えても影響でないでしょ
メタ処理で決め打たなければいいだけなんだから
0142Name_Not_Found
垢版 |
2019/01/17(木) 20:41:53.84ID:???
論よりコード。
with proxyでゴチャゴチャ言ってる人たちは上の奴らと違ってコードを出さずにイキってばかり。
0143Name_Not_Found
垢版 |
2019/01/17(木) 20:53:03.94ID:???
すまんが俺はコードより論派なんでね
糞面倒な糞コードをわざわざ書こうとは思わん
特に楽しくアイディアを語り合ってるのをイキってるとか言うやつの言うことは聞きたくないね
素直なかわい子ちゃんのお願いだったら聞いてやる
0144Name_Not_Found
垢版 |
2019/01/17(木) 20:59:33.67ID:???
てかwithproxyとやらでも順序は保証できないじゃんw
順序保証しなくていいなら>>81でいいじゃんww
ダラダラproxy書く意味まるでナシwww
proxyproxy言ってる人は何か勘違いしているのでは?wwww
論は論でも机上の空論wwwww
0145Name_Not_Found
垢版 |
2019/01/17(木) 21:09:12.84ID:???
こいつ何いってんだ?
listに入れたものだとvalue-proxy使わないと難しいねって最初から話されてるだろ
勿論すべての箇所で値が欲しいときはSLOVE(x)、名前が欲しいときはNAME(x)を使う
つまり
for(let i = 0; i < SLOVE(list).length; i++)
{
alert(NAME(SLOVE(list)[i]));           //variable1 variable2 variable3と順番に表示
}
みたいに書いてもいいっていうなら原理的に可能だが
0146Name_Not_Found
垢版 |
2019/01/17(木) 21:16:04.21ID:???
あと、ただ変数を列挙したいだけなら上で挙がったように
__scope__みたいなの1つだけ特別扱いして
__scope__.keys()みたいなのを定義すればいいだけだと思うよ

そのままだとすべて列挙することになるけど
まあどうして列挙したいのかわからんが、例えばデバッグのためなら
変数名のパターンで絞り込むとか、そのくらいのことで実際はOKかもしれんよ
0147Name_Not_Found
垢版 |
2019/01/17(木) 22:52:01.72ID:SKqdbC1t
お願いします

x = {"hello" : "world"};

x.["hello"] と x.hello で値が取得できますが


y = {"my name" : "John"};
のようにキーに空白が入った場合
y["my name"] としか書くことはできないのでしょうか
0149Name_Not_Found
垢版 |
2019/01/17(木) 23:16:56.33ID:???
>>77
趣向を変えてタグ付きテンプレートでやってみたよ!

let list_keys = strs => [eval(strs[0]), strs[0].replace(/\[(.*)\]/, '$1').split(/ *, */)];

let variable1 = '';
let variable2 = [];
let variable3 = 12;

let [list, keys] = list_keys`[variable1, variable2, variable3]`;

for (let i = 0; i < list.length; i++) {
alert(keys[i]);
}
0150Name_Not_Found
垢版 |
2019/01/17(木) 23:25:33.24ID:SKqdbC1t
>>148
さよか。
おおきに。
0151Name_Not_Found
垢版 |
2019/01/18(金) 22:26:47.21ID:???
$.ajaxのget使うときにurlのパラメータを指定しますが
{"url":'ht略://sample.com/api.php',
"type":"GET",
data:{"hoge":2,"fuga":3}
}
とした場合403が返ってきます。でも、
{"url":'ht略://sample.com/api.php?hoge=2&fuga=3',"type":"GET"}
みたいに"url"に書いてやると問題なくなります
考えられる原因はなんでしょうか
0152Name_Not_Found
垢版 |
2019/01/18(金) 23:24:59.96ID:???
>>151
記述を間違えている
開発ツールのnetworkタブで見てみると良いかも
0153Name_Not_Found
垢版 |
2019/01/19(土) 01:40:58.09ID:???
DOM操作ライブラリ回帰の流れでjQueryのajaxはもうslimビルドから削除されたよ。
AxiosかSuperAgentかRequest使いなよ。
0154Name_Not_Found
垢版 |
2019/01/19(土) 08:30:04.20ID:???
$.ajax使わないで、$.get使えばいいのにっていつも思うんだが
なんでわざわざ冗長なのを使うんだ?
0155Name_Not_Found
垢版 |
2019/01/19(土) 15:49:16.81ID:???
Axios と言うのを、本でよく見る
0156Name_Not_Found
垢版 |
2019/01/19(土) 15:53:51.86ID:???
>>154
ajax()ならgetでもpostでも容易に切り替える事ができるって理由で使っていたな
要は実装が決まってない状態
この状態を悪いって言わないでくれよ、この状態になってるから仕方ないんだ
0157Name_Not_Found
垢版 |
2019/01/19(土) 16:36:33.22ID:???
getは取得でpostは送信だろ?
なんでどちらかが決まらないなんてことがあるんだ?

今はデータ取得してるけど
もしかしたらデータ送信するかもしれない
とかか?なんでそんなのがあるんだ?
0158Name_Not_Found
垢版 |
2019/01/19(土) 16:37:17.02ID:???
仮に会ったとしても、$.getを$.postに変えれば同じだろう
0159Name_Not_Found
垢版 |
2019/01/19(土) 16:43:33.91ID:???
postでも取得できるしgetでも送信できるけどね
0160Name_Not_Found
垢版 |
2019/01/19(土) 16:44:59.65ID:???
最近axiosしか使ってないわ
0161Name_Not_Found
垢版 |
2019/01/19(土) 16:46:11.53ID:???
>>157
データを取得するけど指定したパラメタに応じた副作用があるAPIはどっちにしたらいいんだ?
0162Name_Not_Found
垢版 |
2019/01/19(土) 16:52:35.07ID:???
>157
getは取得→いやそもそもその取得するためのデータを送信してるだろ
postは送信→いやその後取得するだろ

検索結果、登録情報の更新、など、決めないと難しいと思う
0163Name_Not_Found
垢版 |
2019/01/19(土) 16:53:49.49ID:???
1970年1月1日9時00分からの任意の経過秒数から
年月日と曜日を求めるにはどうすればいいんですか?
例えば 6300000000 secだったら西暦何年の何月何日何曜日かというようにです
0164Name_Not_Found
垢版 |
2019/01/19(土) 16:57:41.81ID:???
9時間分のミリ秒数足してnew Date(経過時間)じゃダメ?
0165Name_Not_Found
垢版 |
2019/01/19(土) 18:47:47.25ID:???
Date
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date

1970年01月01日 00:00:00 UTC (Unix エポック) からのミリ秒数を表す整数値です
(ただし、多くの UNIX タイムスタンプ関数は、秒単位でカウントすることを考慮してください)。
なお、閏秒を無視します

その、+9時間は、エポックを日本時間で表示しただけ。
内部的には、UTC で管理していて、表示する際、ローカルタイムに変換しているだけ
0166Name_Not_Found
垢版 |
2019/01/19(土) 19:31:48.91ID:???
>>162
> getは取得→いやそもそもその取得するためのデータを送信してるだろ
> postは送信→いやその後取得するだろ

それは屁理屈
0167165
垢版 |
2019/01/19(土) 19:34:31.89ID:???
// 1970年01月01日 00:00:00 UTC (Unix エポック)
var dt = new Date( 1970, 0, 1, 0, 0, 0 );
console.log ( dt );

// 1日後
dt.setSeconds( dt.getSeconds() + 86400 );
console.log ( dt );

日付を扱うなら、moment.js が便利らしい
0168Name_Not_Found
垢版 |
2019/01/19(土) 21:07:34.88ID:???
date-fns、DayJS、Luxonもあるでよ
0169Name_Not_Found
垢版 |
2019/01/19(土) 21:16:24.33ID:???
var timestamp = 6300000000
var date = new Date (timestamp * 1000)
console.log(date)
document.write(date)
0170Name_Not_Found
垢版 |
2019/01/19(土) 22:40:05.23ID:S+7e1llm
下記で、本日の日付を表示できますが、
本日の一週間後 を表示させるには、どこを+7したら宜しいでしょうか
よろしくお願い致します。


<SCRIPT type="text/javascript">
<!--
function _HpbDays()
{
this[0] = "日"; this[1] = "月"; this[2] = "火"; this[3] = "水";
this[4] = "木"; this[5] = "金"; this[6] = "土";
}

var now = new Date();
var yr = now.getYear();
var mn = now.getMonth() + 1;
var dt = now.getDate();
var dy = now.getDay();

var fyr = (yr < 1900) ? 1900 + yr : yr;

var dys = new _HpbDays();
var dyj = dys[dy];

document.write(fyr + "年" + mn + "月" + dt + "日");
//-->
</SCRIPT>
0171Name_Not_Found
垢版 |
2019/01/19(土) 23:13:46.94ID:???
splice()って取り除いたのを返すのかい?
0172Name_Not_Found
垢版 |
2019/01/19(土) 23:47:52.97ID:???
>>170
const nextWeek = new Date();
nextWeek.setDate(nextWeek.getDate() + 7);
0175Name_Not_Found
垢版 |
2019/01/20(日) 00:31:07.74ID:???
momentはオワコン。
date-fns、DayJS、Luxonを使え。
0176Name_Not_Found
垢版 |
2019/01/20(日) 01:20:16.39ID:J9RkdJn9
170です
165さん172さん、ありがとうございます。
しかしよく解りません。そのコードを、どこに挿入すればよいのでしょうか・・・
0177Name_Not_Found
垢版 |
2019/01/20(日) 02:11:22.79ID:???
       ∧__∧
      (´∀` )
       (⊃⌒*⌒⊂)
        /__ノωヽ__)
0179Name_Not_Found
垢版 |
2019/01/20(日) 20:10:06.39ID:???
キモイんでカッコの中にスペース入れるのやめてください
0180Name_Not_Found
垢版 |
2019/01/20(日) 20:10:53.32ID:???
関数呼び出しの後にスペース入れるのもやめてください
0181Name_Not_Found
垢版 |
2019/01/20(日) 20:16:29.21ID:???
昔Cのコードでよく見かけたなぁ
0182Name_Not_Found
垢版 |
2019/01/20(日) 20:54:41.59ID:???
テンプレート文字列使ってるのにvar使うのやめてください
0183Name_Not_Found
垢版 |
2019/01/20(日) 21:03:18.91ID:???
ブラウザのコンソールで書いては消して試すのに便利だよvar
0184Name_Not_Found
垢版 |
2019/01/20(日) 21:44:06.51ID:???
ブラウザのコンソールでいちいちvarなんて書いてんの?
使い捨てるのになんでそんな面倒なことしてんの?
0185Name_Not_Found
垢版 |
2019/01/20(日) 23:23:54.97ID:???
オレ関数スコープがピッタリなところはvar使ってるわ。ブロックスコープ欲しいときは基本const、どうしてもミューテートしたい時やっとlet。letが一番使わない。
0186Name_Not_Found
垢版 |
2019/01/20(日) 23:27:28.75ID:???
let, constのTDZの仕様が気に入らな過ぎて関数スコープ作ってvar使ってるわ。
0187Name_Not_Found
垢版 |
2019/01/20(日) 23:33:09.72ID:???
不自由が好きな人も多いんだなあ
0188Name_Not_Found
垢版 |
2019/01/20(日) 23:37:03.27ID:???
効率的でもない、可読性や保守性が高いわけでもない、何のメリットもないこだわり
0189Name_Not_Found
垢版 |
2019/01/20(日) 23:53:32.45ID:???
なんか打つのめんどくてlet使うことが多い……
あとでconstに置換
あほか俺
0191Name_Not_Found
垢版 |
2019/01/21(月) 01:00:38.15ID:???
もしbabelでes5に変換してるんだったら関数スコープできてるとこはvarのままのほうがいいんじゃないかな。
変換後のコード量が意味もなく増える。
0192Name_Not_Found
垢版 |
2019/01/21(月) 01:16:22.39ID:???
>>178
☓ `${ dt.getFullYear( ) }年${ dt.getMonth( ) + 1 }月${ dt.getDate( ) }日`
○ dt.toLocaleDateString('ja',{year:'numeric',month:'long',day:'numeric'})
0193Name_Not_Found
垢版 |
2019/01/21(月) 12:30:52.67ID:???
>>191
babelはconstもletもvarに変換されるんだが?
0195Name_Not_Found
垢版 |
2019/01/21(月) 12:51:10.15ID:???
>>194
えとさぁ、変換後のコードは増えないって意味なのわからない?
0197Name_Not_Found
垢版 |
2019/01/21(月) 13:13:59.52ID:???
変換してからレスしようね
ほんとくだらない
0198Name_Not_Found
垢版 |
2019/01/21(月) 13:22:28.57ID:???
そもそもvarもletもよっぽど使わないでしょ
変数なんてなるべく変更しないものであるべきで、それならconst使うわけだし
変更しない変数にlet?
後から他人が読むこと考えろとしか
0199Name_Not_Found
垢版 |
2019/01/21(月) 13:32:19.80ID:???
>変数なんてなるべく変更しないものであるべき
そうなのか???
初めて聞いたぞ
0204Name_Not_Found
垢版 |
2019/01/21(月) 14:39:32.10ID:???
マジっすか
forループ回してインデックスとかプロパティ名とか取得するときどうやんの?
0206Name_Not_Found
垢版 |
2019/01/21(月) 15:11:14.31ID:???
まあ遅延Streamも末尾再帰最適化もない以上、foループがなくなることはないさ
0207Name_Not_Found
垢版 |
2019/01/21(月) 15:23:10.19ID:???
constのために人が束縛されにゃならんのかw
0208Name_Not_Found
垢版 |
2019/01/21(月) 15:43:02.00ID:???
逆だな。速度のためにforループを使わないと束縛されてることがいやだ
速度のことさえなければconstだけで十分

だからlodashを使う。内部ではforループを使っているだろうが
俺自身はconstだけで生きてられる
バグを少なくするコーディングができる
0209Name_Not_Found
垢版 |
2019/01/21(月) 15:47:35.99ID:???
プログラマの思考なんて縛ってなんぼや
縛るどころかゆるゆるガバガバのJSがカオスってることからもわかるじゃないか
0210Name_Not_Found
垢版 |
2019/01/21(月) 15:54:05.31ID:???
jsってもう生で書く言語じゃなくなったの?
0211Name_Not_Found
垢版 |
2019/01/21(月) 15:57:13.14ID:???
特殊なスコープで人生送ってくださいね
0212Name_Not_Found
垢版 |
2019/01/21(月) 16:07:35.93ID:???
>>205
エ〜、forの代わりにmap使うのー、バカじゃないのー
0213Name_Not_Found
垢版 |
2019/01/21(月) 16:09:17.98ID:???
普通の事だけど、何をもって馬鹿と言ってるのか
お前の考えを言えるかい?
0214Name_Not_Found
垢版 |
2019/01/21(月) 16:27:20.27ID:???
私男だけど単なる関数スコープのことを特殊なスコープとか言っちゃう男の人はNG
0215Name_Not_Found
垢版 |
2019/01/21(月) 16:37:01.90ID:???
let,constはブロックスコープで関数スコープじゃないよ
0216Name_Not_Found
垢版 |
2019/01/21(月) 16:40:45.31ID:???
>>214
constu君の脳内スコープを想像して言っただけだから気にしないでくださいね
0217Name_Not_Found
垢版 |
2019/01/21(月) 16:41:39.89ID:???
>>216
どういうこと?スコープの話なんかしてないけど
0218Name_Not_Found
垢版 |
2019/01/21(月) 16:42:37.98ID:???
「脳内スコープを想像して」ってかいてあるから
単なるこいつの勘違いかな
0219Name_Not_Found
垢版 |
2019/01/21(月) 17:58:49.39ID:???
お前らいつもケンカしてんな
0220Name_Not_Found
垢版 |
2019/01/21(月) 18:06:22.56ID:???
逆だよ
ケンカしている仕様をありがたく教授している
0221165
垢版 |
2019/01/21(月) 18:14:34.69ID:???
使い捨てコードは、VSCode のQuokka という拡張機能を使っている。
コードを書き換えると、即座に結果が表示されるので便利

ブラウザのコンソールは、使わない

>>192
format 関係の関数は、様々なブラウザでの互換性が不明

ライブラリでは、moment よりも、date-fns の方が良さそう
0223Name_Not_Found
垢版 |
2019/01/21(月) 18:44:38.04ID:???
>>221
良く尻も竹刀でオワコンライブラリを進めてタコとを半生しろ
0224Name_Not_Found
垢版 |
2019/01/21(月) 18:59:59.02ID:???
>>223
酔っ払っているのか?

>良く尻も竹刀でオワコンライブラリを進めてタコとを半生しろ
もう少し日本語で頼む
0227Name_Not_Found
垢版 |
2019/01/21(月) 23:09:26.86ID:???
俺の経験上、軽いが売りの代替ライブラリは
結局本家を超えることはできないよ

ま、互換性があるならいつでも本家momentに
戻せるから使うのは構わないけどな
0228Name_Not_Found
垢版 |
2019/01/22(火) 05:15:01.46ID:ejHVceL4
div class ='tenpoList' onclick="list_click()">
<ul>
<li></li><li></li><li></li>
</ul>
</div>


function list_click() {
$('div.tenpoList ul li').click(function () {
var num = $(this).index() + 1;
alert(num);
});
}

liをクリック時、クリックしたliのインデックスを1回だけalert表示したいのですが、
これを実行すると、クリックするたびに、表示されるalert回数が増えてしまいます。
どうすればいいでしょうか?
0229Name_Not_Found
垢版 |
2019/01/22(火) 06:05:16.40ID:???
onclickで呼び出す必要ないんじゃない
クリックするたびにイベントが追加されてるんじゃないか

window.onload = list_click
で読み込み時に一回だけイベント設定したらいいんじゃない
0230Name_Not_Found
垢版 |
2019/01/22(火) 06:36:46.55ID:???
>>206
末尾再帰どころか末尾呼び出し最適化も
とうの昔に仕様に入ってるよ
0231Name_Not_Found
垢版 |
2019/01/22(火) 07:03:42.24ID:???
>>228
タグのonclick属性を使うのは時代遅れ
またwindow.onloadを使うのも時代遅れ

onclickを消して、JavaScriptのコードはこれだけでいい

$('div.tenpoList ul li').click(function () {
var num = $(this).index() + 1;
alert(num);
});
0232Name_Not_Found
垢版 |
2019/01/22(火) 07:06:53.68ID:???
時代遅れ
どうせ書き換えるのならObservableを使おう
0233Name_Not_Found
垢版 |
2019/01/22(火) 07:16:04.79ID:???
>>230
どの主要ブラウザにも実装されてないし、babelも標準ではサポートしてないんだよなあ
0234Name_Not_Found
垢版 |
2019/01/22(火) 07:27:40.44ID:???
でも仕様に入ってるってことは将来はforループ無くなりそうだね
0236Name_Not_Found
垢版 |
2019/01/22(火) 12:51:33.14ID:???
>>231
ReactでもonClick使ってるんだが時代遅れなのかね?
0237Name_Not_Found
垢版 |
2019/01/22(火) 12:54:42.71ID:???
reactとバニラのonclickを一緒にするなよ
0238Name_Not_Found
垢版 |
2019/01/22(火) 15:10:35.22ID:???
Reactはこうした方が良いんだというモットーで
onClickを使っているが、やっぱり悪手だったと思う
HTML(JSX)が汚く見づらくなってしまってる

せめて値に入れられるのは関数名だけでJavaScriptコードは
入れられないようにするべきだっったね

まあHTML書く人との分業作業を断念して
JavaScriptを書くプログラマが全部やりますよっていう
驚きの方針を前提にするなら、それでもいいかぐらい
0239170
垢版 |
2019/01/22(火) 18:42:35.90ID:puXWH6Q8
>>178
やはり駄目でした。。。
ちなみにこれ、HTML上にあるJAVAスクリプトなんですが、それが原因でしょうか?
0240Name_Not_Found
垢版 |
2019/01/22(火) 18:45:12.22ID:???
ほんとに全部削除して<script>とかも削除したなんてオチだったりして
0242Name_Not_Found
垢版 |
2019/01/22(火) 19:32:07.87ID:???
>>239
178はconsole.logで出力してるからコンテンツエリアではなく開発ツールのコンソールに表示されるんだよ?
0243Name_Not_Found
垢版 |
2019/01/23(水) 12:25:20.49ID:???
jsfiddle は、Edge では結果が表示されない

Chrome を使うべき!
0244Name_Not_Found
垢版 |
2019/01/23(水) 13:02:25.28ID:???
Edgeどんだけポンコツなんだよw
chromeと一緒のエンジン搭載したんじゃなかったのか
0246Name_Not_Found
垢版 |
2019/01/23(水) 13:23:23.01ID:???
IEもウェブキットに変えてくれねえかな
0247Name_Not_Found
垢版 |
2019/01/23(水) 13:24:38.80ID:???
>>244
もうしたとは言ってねえよ
今年中位の勢いでしょうね
0249243
垢版 |
2019/01/23(水) 14:04:01.17ID:???
Edge の画面の拡大率を下げたら、見えた!

jsfiddle は、縦横のスクロールバーが出ない!
0250165
垢版 |
2019/01/23(水) 14:10:09.41ID:???
プログラム板のVSCode のスレから、移動してきました

// 1970年01月01日 00:00:00 UTC (Unix エポック)
var dt = new Date( 1970, 0, 1, 0, 0, 0 );
console.log ( dt );

// 1日後
dt.setSeconds( dt.getSeconds() + 86400 );
console.log ( dt );

これを、VSCode の拡張機能、Quokka.js で実行すると正常だけど、node.js で実行すると、9時間ズレる。
nodeのタイムゾーンがおかしい。どう設定すればよいの?

1969-12-31T15:00:00.000Z
1970-01-01T15:00:00.000Z
0251Name_Not_Found
垢版 |
2019/01/23(水) 15:02:56.96ID:???
date-utilsっていうライブラリ要るんじゃなかったっけ
0252165
垢版 |
2019/01/23(水) 16:54:05.64ID:???
// 1970年01月01日 00:00:00 UTC (Unix エポック)
var dt3 = new Date( 1970, 0, 1, 0, 0, 0 );

console.log ( dt3 );
console.log ( dt3.toLocaleString( 'en-US', { timeZone: 'Asia/Tokyo', hour12: false } ) );

出力
1969-12-31T15:00:00.000Z
1/1/1970, 00:00:00

ひとまず、内部ではUTC にして、
表示する際に、互換性は低いけど、toLocaleString で表示できた。
ただ、1970-01-01 のように表示できない

Windows10 のPC だけど、設定ファイルで出来ないのかな?
Linux では環境変数で設定しているけど

date-fns, date-utils も、調べてみる
0253Name_Not_Found
垢版 |
2019/01/23(水) 17:37:12.58ID:???
>>252
何でやってるの?
xamppだとphp.iniを編集する必要があるよ
0254165
垢版 |
2019/01/23(水) 18:08:03.83ID:???
単に、Windows10 のPC に、VSCode, Node.js を入れて、サンプルを実行しているだけ。
プロジェクトも作っていない。
未設定ワークスペースで、.js ファイルを実行しているだけ

VSCode の拡張機能、Quokka.js で実行すると正常だけど、

VSCode の拡張機能、Code Runner で右クリックメニューから実行するか、
端末から、node コマンドで実行すると、9時間ズレるのが不思議
0255Name_Not_Found
垢版 |
2019/01/23(水) 18:17:33.73ID:???
9時間ズレるのが不思議なの?w
日本標準時(JST)が世界標準時(UTC)マイナス9時間だからだよwww
0256165
垢版 |
2019/01/23(水) 18:27:26.02ID:???
ブラウザでも実行すると正常だけど、
Node.js だけは、console.log で表示する際に、UTC のままになる

Node.js の実行環境だけは、特殊
0258Name_Not_Found
垢版 |
2019/01/23(水) 19:14:39.54ID:???
nodeの場合デプロイ先のリージョンがアメリカかヨーロッパかでズレたらそっちのほうが困るがな。
0259165
垢版 |
2019/01/23(水) 19:47:54.29ID:???
ただ、VSCode の拡張機能、Quokka.js で実行すると、日本時間になる

console.log ( dt3.toLocaleString( 'en-US', { timeZone: 'Asia/Tokyo', hour12: false } ) );

とにかく、console.log の度に、こう書くのが面倒くさい。
設定ファイルか何かで、どうにか出来ないかな?
0260Name_Not_Found
垢版 |
2019/01/23(水) 20:41:39.03ID:???
This is arguably a V8 bug. It ignores locale settings. In fact, all date and number formatting logic is hard-coded.

The reason it works in Chrome and Chromium is that those projects use v8-i18n on top of V8. I don't think that's a direction we want to take. It depends on libicu and that's a massive library.
We would have to bundle it and that would increase our already large source tree by another 85 MB and ~500,000 LoC.
https://github.com/nodejs/node-v0.x-archive/issues/4689
0261Name_Not_Found
垢版 |
2019/01/23(水) 20:43:09.96ID:???
quokkaとやらはelectron組み込みのchromiumのV8を利用してるから問題ないんだろうな。
0262165
垢版 |
2019/01/23(水) 21:04:44.99ID:???
>>260
以下は、自動翻訳

これは間違いなくV8のバグです。 ロケール設定は無視されます。
実際、日付と数値のフォーマットロジックは、すべてハードコーディングされています

ChromeとChromiumで動作するのは、これらのプロジェクトがV8の上にv8-i18nを使用しているからです。
それが私たちが望む方向ではないと思います。 それはlibicuに依存しており、それは大規模なライブラリです。

これをバンドルする必要があります。
これにより、すでに大きなソースツリーがさらに85 MB、最大500,000 LoC増加することになります
0263Name_Not_Found
垢版 |
2019/01/23(水) 22:28:45.43ID:???
えぇバグなの
しかもデカイな
0264Name_Not_Found
垢版 |
2019/01/23(水) 23:56:59.18ID:???
バグではない
そもそもIOからも分離されたJSという言語のエンジンで
文字列をパースして評価する+標準出力に出すくらいのことしかしなくていいのに
ここだけ環境もといOSからロケーションを取得して(1個とは限らなかったりするし)適切に扱うとか異質
なので仕様にも実装していない場合や実装内で利用できない場合はオフセットを0として良いとしており
つまり実質的にこの仕様の実装はオプションだ サポートしていなくてもJSエンジンとして正しい
だからV8コアと国際対応は分離されているのにそれをNodeが取り入れたがらないだけ
0265Name_Not_Found
垢版 |
2019/01/24(木) 00:00:31.32ID:???
パッチ公開してる人いるから自分でnodeビルドすればいけるぞ
0266Name_Not_Found
垢版 |
2019/01/24(木) 14:51:31.03ID:???
デベロッパーツールでオリジン関係なくjsを実行できてしまうけど、そうするとサイトにいくらでも攻撃できちゃうのはどう対処すればいいの?
認証トークンもバレバレ、api実行もできるんだけど
0267Name_Not_Found
垢版 |
2019/01/24(木) 16:06:37.79ID:???
サーバーの設定でわざわざ全てのオリジンにcors許可してるんだろマヌケw
0268Name_Not_Found
垢版 |
2019/01/24(木) 17:09:06.59ID:???
マヌケって俺のサイトじゃないんだが?
0269Name_Not_Found
垢版 |
2019/01/24(木) 17:16:20.48ID:???
そういやjsのapi認証ってどうやって他人に使われるのを防げばいいの?
ドメイン制限はしてるけど、ローカルでexample.comwを見れるようにしたらそのまま使えてしまった
0270Name_Not_Found
垢版 |
2019/01/24(木) 18:01:29.93ID:???
認証関係は、twitter など、大手の認証を使う

各社で、パスワードなどを管理したら、漏えいするから危険!
0271Name_Not_Found
垢版 |
2019/01/24(木) 18:07:44.98ID:???
認証トークンは、1 time password とかだろ

1回限りのものだから、わかっても次には使えない
0272Name_Not_Found
垢版 |
2019/01/24(木) 18:08:23.06ID:???
>>270
分からないのに書き込むな。な?
住所晒せば大量のチラシ送ってやるぞ?
0273165
垢版 |
2019/01/24(木) 18:13:00.58ID:???
>>262
>日付と数値のフォーマットロジックは、すべてハードコーディングされています

node では、node専用の日付時刻ライブラリを使った方が、良さそう

ブラウザでは、それと異なるコーディングをするしかないか?
そもそも、ブラウザとnodeで、共に動作する、ソースコードの需要がないか
0274Name_Not_Found
垢版 |
2019/01/24(木) 20:17:40.03ID:???
new Date('2018/01/01 10:12:13 +0900')
みたいに明示したらいいだけじゃないの?
0275165
垢版 |
2019/01/25(金) 13:42:44.13ID:???
>>274
その手のフォーマットの互換性が、ハッキリしない。
使えるかどうか、よくわからない

素のJS ではなく、フォーマットのライブラリを使った方がよいかも
0276Name_Not_Found
垢版 |
2019/01/26(土) 03:43:05.61ID:???
classにsetterが設定されてるかどうかを、文字列から判定する方法が知りたいです
イメージ的には
class Hoge {
constructor() {
this._value ;
}
get value () { return this._value; }
set value (x) { this._value = x * 2; }
}

のようなケースで、
const hoge = new Hoge();
hoge.hasSetter('value') // true
となるようなhasSetterに相当するものです
hoge.hasOwnProperty('value') や
Object.getOwnPropertyDescriptor(hoge, 'value')
では引っかからなかったので、何か方法があれば教えていただきたいです
0277Name_Not_Found
垢版 |
2019/01/26(土) 05:34:45.83ID:???
Object.getOwnPropertyDescriptorはプロトタイプチェーンを辿らない
(だからOwnが名前に入ってる)
アクセサプロパティがプロトタイプチェーンにある場合、自前でプロトタイプチェーンを辿りながら判定する必要がある
0280Name_Not_Found
垢版 |
2019/01/26(土) 12:58:10.63ID:???
クラスにセッターっていうユースケースなら1つ前のhoge__proto__だけを見れば
実用上実際は殆ど十分なんじゃね
0281Name_Not_Found
垢版 |
2019/01/26(土) 14:22:58.48ID:???
細かい質問なんですが、ソースリストの整形の問題でエディタとかの話になるんですが
オブジェクトの記述でプロパティの名前と値の文頭をそれぞれ字下げで揃えるってことはできないでしょうか
自分はATOMのbeautifyを使ってるんですが
プロパティ名の文頭は揃っても、値の文頭が揃わないと読みづらいなと感じてます
0283Name_Not_Found
垢版 |
2019/01/26(土) 16:32:38.07ID:???
プログラム板のVSCode スレッドとか

VSCode はデフォルトで、beautify だったかな?
拡張機能もあるけど
0284Name_Not_Found
垢版 |
2019/01/26(土) 18:31:24.88ID:???
値の頭そろえるとlintがうるさいからやめた
0285Name_Not_Found
垢版 |
2019/01/26(土) 18:54:37.91ID:???
<select>
<option value="1">aaa
<option value="2">bbb
<option value="3">ccc
</select>
のvalueの値と表示部分の一覧をjavascriptで取得することはできますか?
できるならどうやるんですか?
0287Name_Not_Found
垢版 |
2019/01/26(土) 20:14:34.20ID:???
>>286
jqueryってやつを覚えないとだめなのか
0289Name_Not_Found
垢版 |
2019/01/26(土) 20:33:02.69ID:???
>>287
jQueryあった方が楽+早い+書きやすい+読みやすい、から使っているだけだよ
jsで書くとこんな感じになると思うけど、あまり自信は無い
http://jsfiddle.net/qzum8xkt/1/
0290Name_Not_Found
垢版 |
2019/01/26(土) 20:40:09.55ID:???
ここから怒涛のjQuery信仰者のご高説が始まるぞ
0291Name_Not_Found
垢版 |
2019/01/26(土) 20:41:57.58ID:???
jQueryはオワコンじゃない
0292Name_Not_Found
垢版 |
2019/01/26(土) 20:41:58.77ID:???
何をそんなに怖がってるの?
0294Name_Not_Found
垢版 |
2019/01/26(土) 20:59:53.26ID:???
>>281
atom-beautifyはjs-beautifyが動いてるけど
残念ながらその設定は無い
ESLintにもPrettierにも多分ない

IntelliJ IDEAとかならできたはず
0295Name_Not_Found
垢版 |
2019/01/26(土) 23:25:49.54ID:???
>>287
べつに覚えなくてもいいけど。
例えばselectタグにoreoreというidが降ってあったとすると、
[...document.querySelectorAll `select#oreore > option`]
.map(opt => [opt.value, opt.textContent])

[["1", "aaa/n"], ["2", "bbb/n"], ["3", "ccc/n"]]
が得られる。
jQueryは内部でSizzleというjavascript製セレクタエンジン使ってるんだが、モダンブラウザの場合そっちじゃなくてこのdocument.querySelectorAllを呼び出している。
なのでその場合jQueryはムダな数万行のコードで速度・帯域・メモリ・CPUをムダに消費するゴミ。
0296Name_Not_Found
垢版 |
2019/01/27(日) 00:21:48.75ID:???
> なのでその場合jQueryはムダな数万行のコードで速度・帯域・メモリ・CPUをムダに消費するゴミ。
minifyされてるのを使えば、たったの1行(もしかしたら数行)だよ
1行なんだから速度・帯域・メモリ・CPUなんか気にしなくていい
0298Name_Not_Found
垢版 |
2019/01/27(日) 00:48:31.90ID:???
行数で比較すんなよ
せめてバイト数で
0299Name_Not_Found
垢版 |
2019/01/27(日) 00:51:51.01ID:???
実際DOM操作のためだけにjQuery読み込むのってコスパわるいん?
0301Name_Not_Found
垢版 |
2019/01/27(日) 01:11:55.71ID:???
jquery-3.3.1.js
非圧縮開発版で10364行だった
266KB

min.jsは2行で85KB
0302Name_Not_Found
垢版 |
2019/01/27(日) 02:13:19.50ID:???
The Cost Of JavaScript In 2018
https://medium.com/@addyosmani/the-cost-of-javascript-in-2018-7d8950fbb5d4

javascriptのサイズと画像のサイズは同じ基準では比べられません。
https://i.imgur.com/pehx3NY.png

javascriptコードではダウンロードの時間のほかに、ブラウザによるパース(gzip、brotli等圧縮されたものであれば展開した後)、コンパイル、実行の時間を考慮する必要があります。
https://i.imgur.com/cZmFlKv.png

そういうわけで、CSS、Javascript、IMAGE、FONTの中でも、Javascriptが最もコストのかかる部分になっているのです。
https://i.imgur.com/rtm23gT.png
0303Name_Not_Found
垢版 |
2019/01/27(日) 02:32:52.24ID:???
javascript同士の比較の話してんのにcssや画像との比較を持ち出す池沼
0304Name_Not_Found
垢版 |
2019/01/27(日) 02:58:08.07ID:???
<div id="rubykichigai">〜〜</div>
の中のHTMLを取り出す処理を書いてみよう!

jQuery:
html増分:
書き込み制限に引っ掛かるので省略するがintegrity付きの公式scriptタグで155bytes。
javascript増分:
console.log($('#rubykichigai').html())
上述html155bytes + javascript38bytesに加え、jQuery分約85,000bytesです。
全然短くありませんねw

ピュアjavascript:
html増分:
なし。
javascript増分:
console.log(document.querySelector`#rubykichigai`.innerHTML)
計60bytes
0305Name_Not_Found
垢版 |
2019/01/27(日) 08:53:11.33ID:???
>>302
画像だって圧縮を展開して表示されるんだから
対して変わらんと思うけど?
0306Name_Not_Found
垢版 |
2019/01/27(日) 08:53:32.86ID:???
画像の圧縮っていうのはjpegとかのことね
0307Name_Not_Found
垢版 |
2019/01/27(日) 08:55:31.03ID:???
>>304
jQueryのコードは計算に入れなくていいでしょ?
読まないんだしさ。

console.log($('#rubykichigai').html())
console.log(document.querySelector`#rubykichigai`.innerHTML)

圧倒的にjQueryの方が短い。
0308Name_Not_Found
垢版 |
2019/01/27(日) 08:56:29.58ID:???
console.log(document.querySelector`#rubykichigai`.innerHTML)
この変な書き方を使えば、↓こうなるのか

console.log($`#rubykichigai`.html())
0309Name_Not_Found
垢版 |
2019/01/27(日) 09:06:12.46ID:???
どこかのサイトを使って素jsとjQueryで

・読み込み速度
・実行速度
・使用メモリ

の比較をしてくれ
0310Name_Not_Found
垢版 |
2019/01/27(日) 10:06:19.38ID:???
お前らどんだけヒマなんだよw
CDN、1.12なら間違いなくキャッシュされているからそもそも比較なんて出来ないぞ
0311Name_Not_Found
垢版 |
2019/01/27(日) 10:47:25.91ID:???
少なくともそこがボトルネックになることってそんなにない気がする
0312Name_Not_Found
垢版 |
2019/01/27(日) 10:48:58.05ID:???
>>309
比較対象にコードの量や複雑さが含まれてない
そんな比較に意味があるのか?

どんな言語のどんなライブラリだって
コードをインライン展開するよりも
関数にするほうが遅くなるが、
それ以上のメリットがあるから使うだろ
0313Name_Not_Found
垢版 |
2019/01/27(日) 11:40:24.80ID:???
>>310
キャッシュされてるならロード時間は考慮しなくていい

>>312
jQueryを使って何かDOM操作をしたとしても人間が重いと感じることはない

・メモリ消費なんてたかがほんのちょっと
ゲームやるわけじゃないんだからjQueryごとき微々たるもの

なんでjQuery不要論者は必死に危機感煽ってるんだよ?
0314Name_Not_Found
垢版 |
2019/01/27(日) 18:46:54.82ID:???
キャッシュされててもパース、コンパイル、実行時間はかかります。
必死に宣伝してるのはjQuery厨。
さもノーコストでいいことずくめみたいなウソつくのはやめろ。
どうやったってjQuery約85,000bytes分パース、コンパイル、実行時間が余計にかかる。
キャッシュのヒット率だって怪しいものだ。
マイナーバージョンひとつ違うだけで別物。
公式cdn、jsdeliver、google、cloudflare等々利用するcdnが違っても別物。
キャッシュはヒットしない。
バージョン違いオリジン違いの大量の糞ファイルで勝手にキャッシュ埋めやがって!
ユーザーのブラウザはお前らの物置じゃねーんだよ!
0315Name_Not_Found
垢版 |
2019/01/27(日) 19:05:01.87ID:???
いや、今のV8はもうパースデータのキャッシュに対応していて有効になってる
現在はまだChrome Stableでデフォルト有効になっていないがコンパイルデータのキャッシュにも対応している
そしてそれらの問題はLayered APIで解決されるめどが付いている
今更議論をすること自体が無駄
0316Name_Not_Found
垢版 |
2019/01/27(日) 19:20:02.68ID:???
>>314
だれもノーコストだっていってないし、
むしろコストは絶対あるって言ってるんだが?
なんでコストがあれば駄目みたいに思ってるんだ?
0317Name_Not_Found
垢版 |
2019/01/27(日) 19:20:27.57ID:???
>>314
ダイヤルアップ接続で20世紀のOSとブラウザでも使ってんのかw
0318Name_Not_Found
垢版 |
2019/01/27(日) 19:21:50.60ID:???
やっぱ今までは無理だったんだね。
それを隠してjQueryを宣伝してきたわけだ。
サイテー
0319Name_Not_Found
垢版 |
2019/01/27(日) 19:23:44.87ID:???
マジでノーコストだと思ってたのか?
僅かなコストで大きなメリットがあるから使うんだよ
0320Name_Not_Found
垢版 |
2019/01/27(日) 19:23:49.16ID:???
※キャッシュはユーザー側でオフにできます
0321Name_Not_Found
垢版 |
2019/01/27(日) 19:24:24.70ID:???
ん?じゃあjQueryのメリットって何よ?
jQueryを使わなくても同じことができるだろ=メリットはない
0322Name_Not_Found
垢版 |
2019/01/27(日) 19:25:10.77ID:???
マジで同じことができればメリットはないって思ってるのか?
0323Name_Not_Found
垢版 |
2019/01/27(日) 19:26:36.79ID:???
>>321
jQueryに費やしてきた俺の学習コストが報われる。
せっかく自由自在に使えるようになったところなのに、若いやつらに見向きもされず老害扱いされるなんて許されるべきではない。
0324Name_Not_Found
垢版 |
2019/01/27(日) 19:27:29.89ID:???
その理論が成立するなら機械語書くのが最適解になってしまう
0325Name_Not_Found
垢版 |
2019/01/27(日) 19:28:00.03ID:???
>>323
はいはい。わかったからメリットはよw
0328Name_Not_Found
垢版 |
2019/01/27(日) 19:29:16.79ID:???
>>323
実際に見向きもされないのはjQuery使えないやつなんだけどなwww
0330Name_Not_Found
垢版 |
2019/01/27(日) 19:30:41.02ID:???
jQueryは誰でも知ってて誰もが使ってるから
既存のコードが読めるというメリットが有る
0331Name_Not_Found
垢版 |
2019/01/27(日) 19:32:36.89ID:???
つまり誰もが知ってて誰もが使ってる状態をキープしないとメリットが消滅してしまう。
jQueryおじさんはそれを恐れている。
だからこそ必死なのだ。
0332Name_Not_Found
垢版 |
2019/01/27(日) 19:33:06.54ID:???
まぁ教えてもらいやすいのはメリットかもしれない
でもベタjsをもっと教えてくれ
0333Name_Not_Found
垢版 |
2019/01/27(日) 19:36:08.52ID:???
どうせまた言われるだろうから、先に書いておく。
誰もが使ってるということを示す客観的なデータ
数値は1年毎の1/1時点のシェア+今日のシェア

Market share yearly trends for JavaScript libraries for websites
https://w3techs.com/technologies/history_overview/javascript_library/ms/y
74.0% 84.1% 90.2% 92.9% 94.5% 95.8% 96.4% 96.2% 97.3% 97.3%

Historical yearly trends in the usage of JavaScript libraries for websites
https://w3techs.com/technologies/history_overview/javascript_library/all/y
28.3% 42.8% 54.5% 57.4% 61.5% 68.3% 71.9% 73.1% 73.6% 73.7%
0334Name_Not_Found
垢版 |
2019/01/27(日) 19:36:53.61ID:???
>>331
誰もが知ってて誰もが使ってるは単なる事実で
メリットじゃないぞ?

メリットがあるから、その結果として誰もが知ってて誰もが使ってる状態になるんだ
0335Name_Not_Found
垢版 |
2019/01/27(日) 19:37:00.53ID:???
>>331
なんでたかだかライブラリのひとつをまるで標準技術かのように騙して布教してるのか不思議だったがこういうことだったのね。
0337Name_Not_Found
垢版 |
2019/01/27(日) 19:39:11.47ID:???
>>335
あんたがjQueryが標準技術かのように思ってしまった。
それが現実だよ。
0338Name_Not_Found
垢版 |
2019/01/27(日) 19:41:05.35ID:???
はい締切
jQueryはメリットがない、コストだけがあうr
はい次
0339Name_Not_Found
垢版 |
2019/01/27(日) 19:42:13.99ID:???
「シェアが高いことがメリット」
これはネットワーク効果とかネットワーク外部性とか言われる立派な競争優位なのだ!
騙してでもシェアをキープする、これがjQueryがこの先生きのこるための道である!
0340Name_Not_Found
垢版 |
2019/01/27(日) 19:42:57.45ID:???
> 「シェアが高いことがメリット」

それも単なる結論
メリットがあってその結果シェアが高くなった
0341Name_Not_Found
垢版 |
2019/01/27(日) 19:43:55.63ID:???
「シェアが高いことがメリット」だと思ってる人は、逆に
「シェアが低いことがデメリット」だと思ってるんだろうか?
Reactとか0.2%ってデメリットが有るよな?
0342Name_Not_Found
垢版 |
2019/01/27(日) 19:44:59.88ID:???
で、そのメリットとは…?
0343Name_Not_Found
垢版 |
2019/01/27(日) 19:45:11.82ID:???
じゃあそのメリットはなんだよ?
0344Name_Not_Found
垢版 |
2019/01/27(日) 19:45:38.32ID:???
はい時間オーバー、締切
jQueryはメリットがない、コストだけがある
はい次
0345Name_Not_Found
垢版 |
2019/01/27(日) 19:47:28.62ID:???
なぜ必死にメリットが無いことにして話をすぐに終わらせようとするのか?
メリットが書き込まれたら都合が悪いことでもあるのだろうか?
0347Name_Not_Found
垢版 |
2019/01/27(日) 19:48:30.07ID:???
どんな綺麗事、御題目を並べたところで所詮$は巨大なjsコード、document. querySelectorはネイティブコード
0350Name_Not_Found
垢版 |
2019/01/27(日) 19:49:22.66ID:???
どんな綺麗事、御題目を並べたところで所詮$は巨大なjsコード、document. querySelectorはネイティブコード
jQueryを使わずネイティブコードで書けば、巨大な自作jsコードが出来上がるだけ
0351Name_Not_Found
垢版 |
2019/01/27(日) 19:52:03.16ID:???
そうだよな。jQueryを使わずに書いたら
自分が書いたJavaScriptコード数千行が
数万行になってしまう
本末転倒だ
0352Name_Not_Found
垢版 |
2019/01/27(日) 19:52:08.95ID:???
その自作jsコード99%のケースでは85kb以下に収まるだろうww
0353Name_Not_Found
垢版 |
2019/01/27(日) 19:53:51.91ID:???
収まるわけ無いじゃん。どんだけ小さい規模の話をしてるんだ?
0354Name_Not_Found
垢版 |
2019/01/27(日) 19:54:11.32ID:???
jQueryは良いライブラリなのに
ノータイム説明なしでぶっ込んでくる野郎が居るのが害悪
0355Name_Not_Found
垢版 |
2019/01/27(日) 19:56:47.42ID:???
1行50文字として、85kbだとたった2000行も書けば
あっというまに85kbなんて超えてしまう。
0356Name_Not_Found
垢版 |
2019/01/27(日) 19:57:25.74ID:???
メリット〜言いたい〜はやく言いたい〜
はやく言いたい〜jQueryのメリット〜
0358Name_Not_Found
垢版 |
2019/01/27(日) 19:59:02.91ID:???
>>356
焦るなw 次DOMを使う問題が出てきたら
ノータイム説明なしでjQuery使ったコードをぶっ込んでやるからさ
0359Name_Not_Found
垢版 |
2019/01/27(日) 19:59:37.56ID:???
jQueryはminifyしてるくせに自作コードはminifyしないんですくぁ↑?ww
0360Name_Not_Found
垢版 |
2019/01/27(日) 20:00:41.36ID:???
>>359
jQueryはminify版が配布されてるし、なんならgzip圧縮版も配布されてる
それに比べて自作コードはそんな事されてないだろ
0361Name_Not_Found
垢版 |
2019/01/27(日) 20:00:48.55ID:???
>>359
やっぱり騙してでも布教してシェアキープしたいんだねぇ…
0362Name_Not_Found
垢版 |
2019/01/27(日) 20:01:57.20ID:???
エディタで簡単にミニファイできるが…
何jQuery厨ってメモ帳で作ってるの?w
0363Name_Not_Found
垢版 |
2019/01/27(日) 20:02:15.72ID:???
実際それでシェアキープされてるからな
それが困るんだろうさ
0365Name_Not_Found
垢版 |
2019/01/27(日) 20:03:57.27ID:???
>>362
エディタはそれぞれが好きなものを使いたいんで、
特定のエディタを強制されるのは嫌だな
0366Name_Not_Found
垢版 |
2019/01/27(日) 20:05:52.91ID:???
心の声(なんでjQueryはメリット無いはずなのに、こんなに使われてるんだよ!悔しい!)
0367Name_Not_Found
垢版 |
2019/01/27(日) 20:07:01.20ID:???
>>365
そ、そうか。VSCodeでもatomでもSublimeでもできるが…
できないってことは本当にメモ帳なんだろうな。
メモ帳とjQueryとでお幸せにな。
0369Name_Not_Found
垢版 |
2019/01/27(日) 20:09:06.02ID:???
jQueryの〜♪メリット〜♪はやく言いたい〜♪
0370Name_Not_Found
垢版 |
2019/01/27(日) 20:09:50.99ID:???
>>367
じゃあvimだけを使ってどうやるか言ってみ

できるできないの可能性の話はしてない
それぞれでエディタでやった結果が
異なるのが問題なんだよ
0371Name_Not_Found
垢版 |
2019/01/27(日) 20:11:57.11ID:???
>>370
じゃあコマンドラインでterserかuglifyだな。
vim使ってんなら朝飯前だろ。
0372Name_Not_Found
垢版 |
2019/01/27(日) 20:13:32.90ID:???
例えばこれ

$(document).on('click', 'a', function() {
 $(this).toggleClass('on');
});

(minifyしたら1行にされて意味がないんで)
単語数で考えると、$, document, on, click, a, function, $, this, toggleClass, on
たったの10単語で実現できるコードをjQueryなしで書くと大幅に増えてしまう
0373Name_Not_Found
垢版 |
2019/01/27(日) 20:16:45.75ID:???
>>372はjQueryで書くとたったこれだけのことにプラス85,000文字かかりますという例です
0374Name_Not_Found
垢版 |
2019/01/27(日) 20:18:08.46ID:???
>>373
違うよ(笑)

やっぱりどんだけ小さいの話してるんだ?って
指摘は正しかったみたいだねw

352 名前:Name_Not_Found[sage] 投稿日:2019/01/27(日) 19:52:08.95 ID:???
その自作jsコード99%のケースでは85kb以下に収まるだろうww

353 自分:Name_Not_Found[sage] 投稿日:2019/01/27(日) 19:53:51.91 ID:???
収まるわけ無いじゃん。どんだけ小さい規模の話をしてるんだ?
0375Name_Not_Found
垢版 |
2019/01/27(日) 20:19:28.48ID:???
>>372 ←これ小さい話だよね?
自分で小さい例出しといてなに言ってんだコイツ
0376Name_Not_Found
垢版 |
2019/01/27(日) 20:22:44.45ID:???
>>375
そういうコードがたくさん集まって
コードの量が増えるんだろ?
お前、"例" ってどういうものか知ってるか?
0377Name_Not_Found
垢版 |
2019/01/27(日) 20:23:38.35ID:???
jQueryは膨大な粗大ゴミ
産業廃棄物

世界のネットワークに不要なトラフィックとしてゴミjQueryが世界を駆け巡る

jQuery房は地球表面に85000回頭ぶつけながら謝罪せよ
0379Name_Not_Found
垢版 |
2019/01/27(日) 20:28:15.71ID:???
不要なトラフィックって言っても画像1つ分程度でしか無いけどな
それにjQueryを使わずに書いた自作コードが大量に流れるほうがゴミだろう
0380Name_Not_Found
垢版 |
2019/01/27(日) 20:29:07.35ID:???
>>378
それ見て思ったんだけど、結論が書いてないんだよね
普通、それだけのことをしたら○○という効果がありましたって
書くと思うんだけど、jQuery廃止しても何も効果がなかったんだと思う
0381Name_Not_Found
垢版 |
2019/01/27(日) 20:31:01.00ID:???
netflixトップのランディングページからreactが取り除かれ、なぜかjQuery厨が大喜びしてましたがjQueryはどこにも使われてません。
一方トップ以下にはreactが未だ使われています。
jQueryはどこにも使われてません。
これからも使う予定はないとのことです。
0382Name_Not_Found
垢版 |
2019/01/27(日) 20:33:49.98ID:???
楽にサイト構築するためにjQueryがクソなのを受け入れられるのが
金持ちと貧民の境目
いいものに拘ってても一生貧民よ
0383Name_Not_Found
垢版 |
2019/01/27(日) 20:34:10.97ID:???
「netflixトップのランディングページからreactが取り除かれた
ということはjQueryを使ったんだ!」と思ったのはお前じゃね?
0384Name_Not_Found
垢版 |
2019/01/27(日) 20:37:15.06ID:???
>>383
だよな。
あれReactが遅いってことがわかったって喜んだだけなんだが
0385Name_Not_Found
垢版 |
2019/01/27(日) 20:40:09.17ID:???
>>378
1.12と思ったら1.2時代の話か
当時は使ってなかったけど、1.10ぐらいまでjQueryは仕様変わりまくりで使いづらかった
そりゃ苦労するわ
0387Name_Not_Found
垢版 |
2019/01/27(日) 20:47:41.08ID:???
>>384
ランディングページにReact使う意味ねえからやめたんだろ
そもそもFacebookみたいな複雑なUIとかに発揮するのがReactだからな
0389Name_Not_Found
垢版 |
2019/01/27(日) 20:52:34.71ID:???
>>388
言っただろ、騙してでもシェアを守りたいからだ。
シェアが高いことがメリットだからな。
0390Name_Not_Found
垢版 |
2019/01/27(日) 20:57:34.02ID:???
前提としてランディングページっていうのは、トップページだけのことではないことに注意ね
検索結果から飛んで最初に表示されるページでSEOが重要になるページのこと
(ランディングページの反対はログインしないと見れないページや設定画面など)

https://web60.co.jp/landing-page.html
> ランディングページ(landing page)とは、
> 直訳すれば着地ページで、ユーザーが最初に訪問するWebページになります。
>
> この意味でいえば、どんなサイトにも着地ページは複数あり、
> それはユーザー毎に異なることになります。これが広義のランディングページです。
> 日本では一般に「着地ページ」と言い、「ランディングページ」という場合は、次の狭義のランディングページを指します。


一部の企業でReact Native離れが始まる
https://tech.nikkeibp.co.jp/it/atcl/idg/14/481709/082000458/
0392Name_Not_Found
垢版 |
2019/01/27(日) 21:04:44.50ID:???
>>388
> >>374によるとNetflixの件は「小さい規模の話」らしい。

ランディングページに限った話だろ?小さい規模に決まってると思うが?
まさかNetflixのサイトがでかいから、
どのページも大規模なJavaScriptになってるはずだって言いたいの?
0393Name_Not_Found
垢版 |
2019/01/27(日) 21:04:56.96ID:???
jquery嫌いキチガイおもしろい
0394Name_Not_Found
垢版 |
2019/01/27(日) 21:05:39.75ID:???
>>390
reactnativedomとかあるからややこしいが基本reactnativeはios androidのネイティブアプリの話でwebとは関係ないぞ。
0395Name_Not_Found
垢版 |
2019/01/27(日) 21:05:54.35ID:???
ここWeb板だからReact Nativeじゃねえんだけど?
ああ、違いわかってねえバカなのかもな>>390
0396Name_Not_Found
垢版 |
2019/01/27(日) 21:09:48.01ID:???
React Native使わないでReact使っても
iOSやAndroidのネイティブアプリ作れないんだし
何のメリットもないやん
0397Name_Not_Found
垢版 |
2019/01/27(日) 21:10:42.14ID:???
じゃあ苦労して17kbに押さえたnetflixチームに言ってこいよ。
30kbのjQuery入れてくださいってw
キャッシュされるから二回目以降は大丈夫ですからってさぁwww
0399Name_Not_Found
垢版 |
2019/01/27(日) 21:13:26.93ID:???
それよりReact Nativeの件を説明してくれますかあ?
なんでReact Nativeの話持ち出したんですかあ?
0400Name_Not_Found
垢版 |
2019/01/27(日) 21:13:56.81ID:???
>>397
なんでそんな事する必要があるの?
jQueryを使うかどうかは合理的に選べばいいだけだろ
ネイティブアプリを作るのにjQueryを使えとか言わないし
0401Name_Not_Found
垢版 |
2019/01/27(日) 21:15:17.74ID:???
そういうことだな
ウェブの大部分を占めるウェブサイトには
jQueryがもっともバランスが良いってことだよ

CSSベースで設計したものに上手く適合するので
ウェブサイト標準技術で作られたサイトと相性いい
0402Name_Not_Found
垢版 |
2019/01/27(日) 21:15:25.00ID:???
jQuery房さぁーん、React Nativeの話題をいきなり出してきたのはなんでですかああああ?
0403Name_Not_Found
垢版 |
2019/01/27(日) 21:15:33.71ID:???
合理的に選びたいのに
選ぶ前に当然の様に入れてくるから嫌い
0404Name_Not_Found
垢版 |
2019/01/27(日) 21:16:30.62ID:???
脈絡なくネイティブアプリの話を持ち出し話をはぐらかそうとするjQuery厨
0405Name_Not_Found
垢版 |
2019/01/27(日) 21:16:53.85ID:???
マヌケ無能jQuery房さぁああああん
React Nativeーーーー??
0406Name_Not_Found
垢版 |
2019/01/27(日) 21:19:31.66ID:???
jQuery厨はjQuery以外の技術はからっきしなのでReactとReactNativeを混同してしまうのもしょうがない。
なんたって名前が似てるからねw
両方Reactって付いてるしww
jQuery厨が勘違いするのもしょうがねぇwwwww
0407Name_Not_Found
垢版 |
2019/01/27(日) 21:19:37.42ID:???
React Nativeーーーー!!
React Nativeーーーー!!
0408Name_Not_Found
垢版 |
2019/01/27(日) 21:19:58.64ID:???
なんかアンチがあれてるw
0409Name_Not_Found
垢版 |
2019/01/27(日) 21:20:21.80ID:???
Reactってあんまり使われてないのな
0411Name_Not_Found
垢版 |
2019/01/27(日) 21:26:06.51ID:???
いきなりReact Nativeの記事ワロタwww
ホントにjQueryのことしか知らねんだなw
元号変わることも知らなそうw
0412Name_Not_Found
垢版 |
2019/01/27(日) 21:28:31.17ID:???
話をReactにすり替えようとしてるのバレバレだってw
ここはjQueryのスレですよ?
0413Name_Not_Found
垢版 |
2019/01/27(日) 21:30:47.65ID:???
突然のReactの話題はそれが目的だったのか
0414Name_Not_Found
垢版 |
2019/01/27(日) 21:31:12.47ID:???
>>412
ちげーよヴァーカ
jQuery房はjQueryスレ行け
0415Name_Not_Found
垢版 |
2019/01/27(日) 21:31:22.12ID:???
>>3
>>23

こんなことをしてるから嫌われるんだ。
rubyキチガイと同じ。
0416Name_Not_Found
垢版 |
2019/01/27(日) 21:32:24.41ID:???
突然ネイティブアプリの話をしだしたjQuery厨、今度は責任転嫁し始めるww
0417Name_Not_Found
垢版 |
2019/01/27(日) 21:34:16.49ID:???
いい加減この質問に答えてくれませんかね?

例えばこれ

$(document).on('click', 'a', function() {
 $(this).toggleClass('on');
});

(minifyしたら1行にされて意味がないんで)
単語数で考えると、$, document, on, click, a, function, $, this, toggleClass, on
たったの10単語で実現できるコードをjQueryなしで書くと大幅に増えてしまう
0418Name_Not_Found
垢版 |
2019/01/27(日) 21:35:34.19ID:???
>>417はjQueryで書くとたったこれだけのことにプラス85,000文字かかりますという例です
0419Name_Not_Found
垢版 |
2019/01/27(日) 21:37:35.52ID:???
>>417
たったこれだけのことをするためにjQueryなんてウンコを入れてしまったため、あなたのサイトはnetflixより「大規模」wになってしまいましたw
0420Name_Not_Found
垢版 |
2019/01/27(日) 21:40:09.31ID:???
質問に答えられんのなw
0421Name_Not_Found
垢版 |
2019/01/27(日) 21:42:39.12ID:???
どんなに貶されてもスマホのネイティブアプリのReact Nativeの採用率が下がればjQuery厨の溜飲は下がるのである。
なぜかはまったく分からないが…
0422Name_Not_Found
垢版 |
2019/01/27(日) 21:44:43.61ID:???
だってたった10単語で実現できるってのがウソ、詐欺だからな。

「1単語で実現できるよ?hoge()」
こう言ってるのと一緒。
0423Name_Not_Found
垢版 |
2019/01/27(日) 21:46:40.86ID:???
>>420
どうしてネイティブアプリの話をしだしたのですか?
React Nativeがweb用だと勘違いしてたとの噂もありますが本当ですか?
答えてください!
0424Name_Not_Found
垢版 |
2019/01/27(日) 21:51:13.11ID:???
スッ…(jQuery厨、得意気にReact nativeの記事を出す)

面白すぎるwwwww
0425Name_Not_Found
垢版 |
2019/01/27(日) 21:57:10.31ID:???
>>346
色んな改善によりコストは昔に比べると0に近づいてきてるが
それでもやはり標準に便利な高レベルAPIが無いというのは不便で無駄なことなので
Layerd APIが提案されている
2020年代からはできるだけライブラリを使わず
標準APIと標準が用意したポリフィルAPIを使うことで問題を解決する
0427Name_Not_Found
垢版 |
2019/01/27(日) 22:00:50.59ID:???
新しい規格が策定されるのはいいんだけど、
古いブラウザが対応してないって問題どうにかしちくり〜
0428Name_Not_Found
垢版 |
2019/01/27(日) 22:04:09.94ID:???
まためっちゃ伸びてて草
0429Name_Not_Found
垢版 |
2019/01/27(日) 22:11:33.15ID:???
>>427
それはそもそも対応する必要がないんだよ
ずっと更新されないブラウザを使い続けてる環境で
ポリフィルやライブラリまで使って高レベルなことをすべきかどうか疑問だし

現時点・そして未来でも標準化して効率化しておく必要があるから標準化される機能なのに
古い環境で動かそうってのはそもそも無理があることだと思うよ
老体に鞭打つ的な行為で、実際結構お節介で重くて迷惑になるだけだと思う

だから最低でもimportに対応してる環境で足切るというのが現実的だと思う
古い環境はJSを無効にしてるのと同等に動作させるか、nomodule属性を使ってちょっとだけ機能を保管するか
その程度が落とし所だと思う
0430Name_Not_Found
垢版 |
2019/01/27(日) 22:42:49.35ID:???
落としどころを決めるのはアホ営業とアホ客だから
0431Name_Not_Found
垢版 |
2019/01/27(日) 23:01:56.04ID:???
>>430
仮に○○まで対応すると言ったって
全く同じ表示で同じ様に動作させろということにはならないでしょ
わからず屋が居るのならそいつに分かってもらうのも仕事のうちでしょ
奴隷じゃないんだから
0432Name_Not_Found
垢版 |
2019/01/27(日) 23:20:32.00ID:???
昔はブラウザの標準APIがアレだったから必要だったけど、今は標準APIが充実したからjQuery自体は必要無くなった感がある

でもjQueryに依存する物が多過ぎるから結局読み込む→どうせ読み込むなら使うか、みたいな感じになりがち
0433Name_Not_Found
垢版 |
2019/01/27(日) 23:39:09.00ID:???
今まで標準APIでできるようになってきたのってjQueryが担当してた部分だけど
連動リストだとかjQueryプラグインが担当してたような部分も標準化が進んでるから大丈夫
0434Name_Not_Found
垢版 |
2019/01/27(日) 23:41:08.92ID:???
getElementByIdをどうにかしてほしい
0436Name_Not_Found
垢版 |
2019/01/27(日) 23:52:44.80ID:???
DOMで言えば、各要素に特化した標準の便利メソッドがないのはなんで?
tableのth追加とか
selectのoption追加・操作とか
あとはマウスイベントの位置取得
0438Name_Not_Found
垢版 |
2019/01/28(月) 00:08:48.36ID:???
>>436
各要素に特化したメソッドもだけど、
要素リストにたいしてのメソッドもほしい

querySelectorAllでリストを取得しても
ループで一つづつしか処理できないなら片手落ち
0439Name_Not_Found
垢版 |
2019/01/28(月) 00:50:08.84ID:???
jQuery のソースコードを見ればわかるけど、
大部分が、様々なデバイス・OS に対する、互換性を担保するもの

数百種類に及ぶ、デバイスへの対処!

これを単独企業で作ることは無理だから、
MS など色々な企業が、jQuery財団に資金提供して作ってもらっている

jQueryを使わないと、動かないデバイスがある
0440Name_Not_Found
垢版 |
2019/01/28(月) 00:55:02.73ID:???
企業は絶対に、jQuery を使う

もし使わないと、様々なデバイスで動かないという苦情がくるので、
その対処に費用がかかる

基本的に会社は、そのスマホ・デバイスを持っていないから、
テストも出来ないし、対処できない
0441Name_Not_Found
垢版 |
2019/01/28(月) 01:16:42.25ID:???
Web Speech APIについて質問なんですが
Firefoxで実験してるのですが日本語はMicrosoft Harukaしかありません
クライアント側で初音ミク的な音声を追加することってできますか?
0442Name_Not_Found
垢版 |
2019/01/28(月) 02:33:51.71ID:???
>>422
> 「1単語で実現できるよ?hoge()」
> こう言ってるのと一緒。

テストスべきコードの量って言えばいい?

jQueryの中身はjQueryプロジェクトでしっかりとテストされてる。
お前の言ったそのhogeの中身はテストされとらんだろ?
つまり自分で書かないといけないコードってことだよ

自分で書くコードをできる限り減らして
テスト済みの既存のライブラリに置き換えるのが重要なんだよ
0443Name_Not_Found
垢版 |
2019/01/28(月) 06:47:43.11ID:???
>>440
使わないと苦情が来るのではなく
使わなくともあからさまな不具合に見えないように
する技術さえもないから来るというだけでしょ
そしてjQuery使い続けるからそうしたスキルさえもない人が開発し続ける
0444Name_Not_Found
垢版 |
2019/01/28(月) 10:36:42.50ID:???
画像の内容をjsで制御できる画像フォーマットってありますか?
例えば、元々複数の画像データが埋め込まれているgifみたいな画像データがあって
その表示タイミングや順序をスクリプトで指定できる、みたいな
0445Name_Not_Found
垢版 |
2019/01/28(月) 10:44:13.24ID:???
スライドショーレベルならcssのtranceなんとかで出来たと思うのですが
例えば、人の全身の画像、顔のパーツだけの画像これらが一枚のデータになっていた場合
それを一枚の画像上で顔を入れ替えたり、と扱えるような感じです
canvasでも良いのですが、結果しか保存できないので
0446Name_Not_Found
垢版 |
2019/01/28(月) 10:52:19.17ID:???
全部の画像を並べて一枚にする
そしてcssのpositionとsizeをjsでいじる
ペラペラ漫画みたいな感じ
ただし、画像と画像の切れ目を考慮しないと補完かかってボケるから大きめに作って表示は小さめにする
0448Name_Not_Found
垢版 |
2019/01/28(月) 11:05:39.61ID:???
スライダーみたいに入れ替えるってことならjs必須だった、スマン
0449Name_Not_Found
垢版 |
2019/01/28(月) 12:30:11.21ID:???
>>444
SVGならXMLとして解析できるから唯一そういうことを現実的にできる
0450Name_Not_Found
垢版 |
2019/01/28(月) 12:57:07.74ID:???
何がしたいのか見えない
0451Name_Not_Found
垢版 |
2019/01/28(月) 13:13:40.94ID:???
「結果しか保存できない」がより難解さを増してる気がする
ひょっとしてアニメーションGIFやapngを作りたい?
0452Name_Not_Found
垢版 |
2019/01/28(月) 13:24:05.70ID:???
※クライアントはこんな感じで指示を出してきます
0453Name_Not_Found
垢版 |
2019/01/28(月) 13:35:36.57ID:???
canvasだと静止画でしか保存できないということなら
SVGにパーツ配置すれば動かせるし再利用可能な形で保存もできる
0454Name_Not_Found
垢版 |
2019/01/28(月) 13:46:18.30ID:???
「〇〇したい、△△すればできそうな気がする」って考えていることの△△しか言ってない気がするから〇〇の部分の補足が欲しい

gifの制御と画像のタイリングは全然違うはず
0455Name_Not_Found
垢版 |
2019/01/28(月) 13:58:21.15ID:???
あぁそうだね
・〇〇したい
だけ言ってもらえればいいんだけど
0456Name_Not_Found
垢版 |
2019/01/28(月) 15:05:40.85ID:???
>>454,455
○○したい
は具体的にはありませんが>>449が(もしかしたら)近いような気がしますが調べ中です。

例えば、画像にコールバック関数が組み込まれていて
js側でコールするとその画像の内容自体(or画像以外)が動作をする、みたいな感じです

簡略ですが例えば、
左から赤緑青と塗られている横3px×縦1pxのpng画像があり
img要素で読み込まれており
さらに赤緑青の位置が1秒置きにランダムで移動。
スクリプト側で、hoge(0,0)すると
画像の(0,0)の位置が赤色だったらalertする、青色だったら色を入れ替えする
みたいなことを今はやっています
しかしこれだと当たり前ですが、画像を配布しただけでは何も起こらないのです

で、「そういえば画像にスクリプト付加して云々できる」ような記事を見たことがあるとふと思い出し
そういう画像フォーマットってあるのかな、と思ったのです
記憶違いかもしれませんが
0457Name_Not_Found
垢版 |
2019/01/28(月) 16:10:49.66ID:???
>>447
スプライト、画像スプライト、イメージスプライト。
CSSでやるやつはCSSスプライトとかCSSイメージスプライトとか言われる。
0458Name_Not_Found
垢版 |
2019/01/28(月) 19:43:32.74ID:???
画像にスクリプトってFlashくらいしか思いつかん
0459Name_Not_Found
垢版 |
2019/01/28(月) 19:59:14.13ID:???
>>456
Web上でJSから画像をどうこうしたり、どうこうできるように画像を作ることはできるけど
もし、プログラマブルな画像というものを考えているのならば、それはFlash画像でしかできない
0460Name_Not_Found
垢版 |
2019/01/28(月) 20:04:05.62ID:???
>>458,459
なるほど言われてみれば、やろうとしていることはまさに
Flashって感じだと思いました
ただ、今からflashを学習しようと思うとあれですが
ありがとうございました
0461Name_Not_Found
垢版 |
2019/01/28(月) 20:08:42.88ID:???
MHTMLが画像ビューアで見れる形式としてもっと広まるか
CanvasAPIを使ったFlashライクな画像形式ができないものかね
0462Name_Not_Found
垢版 |
2019/01/28(月) 21:42:15.89ID:???
スクリプトの動く画像って
セキュリティ的に相当煙たがられそう
0463Name_Not_Found
垢版 |
2019/01/28(月) 21:44:07.08ID:???
しかし画像動かすだけでこんなクソ面倒くさいとかhtmlウンコじゃん
0464Name_Not_Found
垢版 |
2019/01/28(月) 22:22:18.02ID:???
htmlたんがどれだけ元々の使われ方から乖離した要望に応えるために頑張ってると……
0465Name_Not_Found
垢版 |
2019/01/28(月) 23:19:54.40ID:???
>>462
だからsvg埋め込みのjsは、
インライン、<embed>タグで読み込み<object>タグで読み込み、<iframe>タグで読み込み
の時は動くが、
<img>タグで読み込み、cssのbackground-imageで読み込み
の時は動かない仕様になってる。
0466Name_Not_Found
垢版 |
2019/01/28(月) 23:29:26.64ID:???
>>463
先にやりたい事を考えないからそんな変な手法を追求することになるんだわ
0467Name_Not_Found
垢版 |
2019/01/28(月) 23:35:22.18ID:???
そもそもウェブでやろうとするのが間違いなんだろ
0469Name_Not_Found
垢版 |
2019/01/29(火) 01:30:39.44ID:???
SVG, Canvas、
ポリフィルのweb-animations-js とか

Haxe, Cocos2d-x, Godot などのゲームエンジンもそう
0470Name_Not_Found
垢版 |
2019/01/29(火) 01:34:06.10ID:???
>>468
いつかそういう時代になるといいな
WebフロントエンドといえばRustみたいな
0471Name_Not_Found
垢版 |
2019/01/29(火) 02:10:19.28ID:???
rust始めるのにwasmで勉強するのってどう思う?
0472Name_Not_Found
垢版 |
2019/01/29(火) 02:41:44.72ID:???
所詮この世界は流行るかどうかだからなぁ
rustは正直厳しいと思うぞ
0473Name_Not_Found
垢版 |
2019/01/29(火) 02:52:45.95ID:???
>>471
wasmバイナリとまでは言わんがせめてwastからやれよ。あんまり甘えんなよ。
0475Name_Not_Found
垢版 |
2019/01/29(火) 13:21:27.26ID:???
自分もrustやろうとしたけど
作りたいものが特になくてやめたわw
新しい言語やるときは明確な目標がないとなかなかね
そういった点でJavaScriptやPythonやC#が流行るんだと思う
0476Name_Not_Found
垢版 |
2019/01/30(水) 04:11:04.76ID:VMjloBqL
fileタグでファイルを開くダイアログが表示されますが、表示されるファイルを正規表現でフィルタかけるにはどうしたらいいでしょうか?
0478Name_Not_Found
垢版 |
2019/01/30(水) 11:23:21.81ID:???
質問です
document.evaluateのパラメータ resultType で指定する結果型が
UNORDERED_NODE_SNAPSHOT_TYPEの場合と ORDERED_NODE_SNAPSHOT_TYPEの場合の2つでは
前者を使う理由は何かあるのでしょうか?
私がパッと考えてすぐ出た理由は前者のほうが処理が速いのかもしれない、というぐらいなのですが。
0479Name_Not_Found
垢版 |
2019/01/30(水) 20:07:13.20ID:???
理由は前者のほうが処理が速いのかもしれない、というぐらいなのです
0480Name_Not_Found
垢版 |
2019/01/31(木) 01:17:08.39ID:Yn1bUNrJ
プログラミング初心者です。
勉強中にわからない点があったので教えてください。
const o = {
a: 1,
b: 2
};
というオブジェクトのkeyとその値を配列で表示するという処理で、
Object.keys(o).forEach(key => {
console.log(`${key}: ${o[key]}`);
}); //
というのが出てきたんですが、${o[key]}という表現で値が表示される理由がよくわからないので軽く説明してくれませんか?
0482Name_Not_Found
垢版 |
2019/01/31(木) 03:56:36.95ID:???
いつのまにかJSにこんなもん実装されてたのか
PHPみたいなや
0483Name_Not_Found
垢版 |
2019/01/31(木) 04:36:25.80ID:???
フォーマット文字列は無いのかえ?
0484Name_Not_Found
垢版 |
2019/01/31(木) 07:07:07.57ID:Yn1bUNrJ
>>481
ありがとうございます。
テンプレートリテラルの形式についてはだいたい理解しているんですが、
自分が挙げた例の${o[key]}の部分の理屈がよくわからないんですよね。
0485Name_Not_Found
垢版 |
2019/01/31(木) 07:11:08.64ID:???
>>484
oがオブジェクトでkeyがキーなんだからo[key]はそのキーに紐付く値
それに関してはテンプレートリテラル関係ない
0488Name_Not_Found
垢版 |
2019/01/31(木) 07:41:00.71ID:Yn1bUNrJ
>>485-487
やっと解決しました。ありがとうございます。
0489Name_Not_Found
垢版 |
2019/01/31(木) 11:55:14.95ID:???
o.key, o[ key ] の2つの表現がある。
o[ key ] の表現では、空白入りの文字列とか、言語のキーワードなども使える

o.a b
o[ "a b" ]

上はダメだけど、下はOK だから、下を使うと安全。
でも、__proto__ だけは使えないかも
0490Name_Not_Found
垢版 |
2019/01/31(木) 12:05:39.86ID:???
>>489
そもそもがObject.keysで回してるんだからo.keyじゃダメでしょ
実際のプロパティ名じゃないんだから
0492Name_Not_Found
垢版 |
2019/01/31(木) 12:42:13.63ID:???
__proto__が使えないかもとか何年前の知識だよ
今は仕様でObject.prototype.__proto__だろ
0493Name_Not_Found
垢版 |
2019/01/31(木) 14:57:39.34ID:???
class使えるようになったらもうprototypeの知識は不要?
0495Name_Not_Found
垢版 |
2019/01/31(木) 19:54:36.83ID:???
__proto__やら__ついてるのはライブラリ以外ではなるべく使うべきでないと思うぞ
0497Name_Not_Found
垢版 |
2019/01/31(木) 20:18:15.52ID:???
> __proto__ を付けなければよい
「__proto__ を作らなければよい」に訂正しとく
(__proto__ を使用しないにも読めたので)
0498Name_Not_Found
垢版 |
2019/01/31(木) 20:52:29.75ID:???
クラスのprivateが#とか@デコレータとか
見た目もう違う言語になりそうだな
0499Name_Not_Found
垢版 |
2019/01/31(木) 21:16:28.46ID:???
privateが#の件はclass構文ゴリ押ししてた勢やっぱセンスないなと思った。
ますますclassを使いたくなくなった。
0500Name_Not_Found
垢版 |
2019/01/31(木) 22:18:37.61ID:???
失望しましたtypescriptやります
0501Name_Not_Found
垢版 |
2019/01/31(木) 22:29:15.53ID:???
>>499
なんか後方互換性とかパフォーマンスのため消去法で#しかなかったっぽい
俺もダサいと思うがしょうがあるまい
0502Name_Not_Found
垢版 |
2019/01/31(木) 23:17:09.59ID:???
単純に、オブジェクトを辞書みたいに使う際、
たまたま、__proto__ と言うキーを使うと、ハマる

だから、Haxe では、キー文字列の先頭に、@ を付ける

a → @a
__proto__ → @__proto__

これで、誤動作しない
0503Name_Not_Found
垢版 |
2019/01/31(木) 23:50:03.21ID:???
>>501
いや、自然でしょ
例えばget x()を定義しててもプライベートメンバを_xとかにする必要なく
this.#xとできたり良いこともたくさんあるでしょ
private.xみたいにアクセスするのも変だし

パフォーマンスの問題がなかったとしても
クラスメソッド中だけthis下のプライベートメンバにアクセスできるようにするのは
JS的に不自然極まりないし
0504Name_Not_Found
垢版 |
2019/02/01(金) 00:21:22.91ID:???
perlや、rubyのインスタンス変数@xみたいな変数名の一部に文法的な意味持たせる設計ほんと嫌い。
あと@にしなかったのはデコレータに既に予約されてたからだと。
なんかこういう行き当たりばったりな機能追加はrubyのオブジェクトリテラルまわりや山ほどあって一貫性がまるで無い関数(プロシージャ含む)の定義法/用法/挙動/変換のカオスを彷彿とさせて嫌な予感しかしない。
所詮class構文ゴリ押し勢だからruby出身の低級プログラマが我田引水で適当に決めてるんだろ。
だからclass構文まわりは嫌いなんだ。
0505Name_Not_Found
垢版 |
2019/02/01(金) 02:23:47.46ID:???
もうちょっと日本語の勉強をした方がいい
0506Name_Not_Found
垢版 |
2019/02/01(金) 02:53:22.35ID:???
iterator取り出すのさえx[Symbol.iterator]と書かせてるんだから
宣言時はprivate xで参照時はthis[Symbol.private]('x')なりthis[Symbol.private].xなりでええやろ。
外部からのアクセス時はエラーで。
面倒なやつは無理して使わなくていいよ。
変数名中の記号の有り無しでやるよりずっとマシ。
0507Name_Not_Found
垢版 |
2019/02/01(金) 05:10:59.19ID:???
それだと使いにくい
encapsulationを促進するのが目的だから短く書けることも重要視されたんだろ
0508Name_Not_Found
垢版 |
2019/02/01(金) 06:53:08.36ID:???
ほんまそう
別にprivate.x == private(this).xと記号を使わないこともできたが
privateなんて長すぎるからな
0509Name_Not_Found
垢版 |
2019/02/01(金) 08:51:52.95ID:???
短く書くために記号とか腐ってるなwww
rubyから出てこないでほしい。
あーキモイキモイ
0510Name_Not_Found
垢版 |
2019/02/01(金) 11:05:49.52ID:???
おじいちゃん
あの長く書くことが正義だったJavaでさえアロー演算子とか導入してるんだよ
0511Name_Not_Found
垢版 |
2019/02/01(金) 12:40:41.97ID:???
変数名にってことだろ。
構文や演算子の記号は誰も文句言ってない。
0512Name_Not_Found
垢版 |
2019/02/01(金) 13:31:08.17ID:???
同様のクソ提案

Extended Numeric Literals
https://github.com/tc39/proposal-extended-numeric-literals
例)
document.querySelector("#foo").style.fontSize = 3~px;
なんだよ~て。perl化待ったなしwww

Object.freeze and Object.seal syntax
https://github.com/keithamus/proposal-object-freeze-seal-syntax/
freeze
const foo = {#
a: {#
b: [# "some string!" #]
#}
#}
seal
sealing of an object
const foo = {|
a: {|
b: [| "some string!" |]
|}
|}
ええ加減にせえよ。
0513Name_Not_Found
垢版 |
2019/02/01(金) 20:30:35.90ID:???
>>511
変数名?何いってんだ?
o.#pと書くということは
([[classWeakMap]].get(o)||{}).p
と言う効果をもたらすものであって
変数名をプロキシしてるわけではない
そしてこれは「.#」演算子と考えても妥当
0514Name_Not_Found
垢版 |
2019/02/01(金) 20:59:35.07ID:???
改めて考えると#案外いいかもと思えてきた
private x;とかだと冗長
0515Name_Not_Found
垢版 |
2019/02/01(金) 20:59:36.37ID:???
>>502
__proto__ 付のオブジェクトを生成してるのが問題
0516Name_Not_Found
垢版 |
2019/02/01(金) 21:08:55.89ID:???
google analyticsのjavascriptって、埋め込まれたページからアクセスするpdfやxlsへの直リンクって統計の対象になる?
埋め込まれたページまでしかできないかと思ってたんだけど、そのページに押されたリンクまで検知できるの?
0517Name_Not_Found
垢版 |
2019/02/02(土) 18:19:07.87ID:???
ES4時代からアイディアがあって
5年以上、物によっては10年かけて皆が話し合って
色んな場所で沢山プレゼンされて
ようやく見通しが見えてきた仕様を
欠片も分かってないくせにここで批判するやつ
お前がええ加減にせえよ。

ただ関心をもったという点は褒めることができる
だから意見があるんならまだ半年以上猶予があるんだから
今からでもES Discussにスレッド立ててこい
何も新規性のない不満垂れてもボッコボコにされるだけだがな
0518Name_Not_Found
垢版 |
2019/02/02(土) 18:50:41.49ID:???
Q. どうして@ではないのですか?
A. デコレータに取られちゃってた(テヘペロwww
0519Name_Not_Found
垢版 |
2019/02/02(土) 21:00:23.50ID:???
ES住民ならデコレータは関係なく
大昔からプライベート廻りでは@と#を使った提案があったが
@の方が今のSymbolになった(仕様の@@がその名残)ので
今回の提案ではよりちょっとmap参照っぽくもあった(valueではなくnameのmapだが)#を使うほうが
これまでの10年間の歴史的な流れからいって【自然】ということが分かる
0521Name_Not_Found
垢版 |
2019/02/02(土) 21:55:16.89ID:???
言語作ってるやつが馬鹿だと思うのは、
記号なんて数が限られてるの最初からわかってるんだから
使えるからと言って後先考えずに使うなってこと

一文字で足りなくなるのわかってるんだから、最初から
記号+1文字にしておけば良かったんだよ
例えば、@じゃなくて@@とかさ
0522Name_Not_Found
垢版 |
2019/02/02(土) 22:27:24.10ID:???
>>520
@が好まれていたのは当初のprivate-(name->state)の流れを受けていた頃の話
つまりprivateを所謂プライベートシンボルを全面に出して実現しようという流れがまだ残ってたときの話で
その後統合されて今現在のprivateはWeakMapのようなもので実現する方向性だけしか残ってないから#の方が自然
そして今の仕様チャンピオンはTC39を去ったKevinのを引き継いでるだけなので
昔のことやES6前後のゴタゴタしていた辺りの詳しい話には細かくない
0523Name_Not_Found
垢版 |
2019/02/02(土) 22:41:16.60ID:???
ES2015ではsoft privateの実現にはsymbolが、hard privateの実現にはWeakMapが使える。
簡単に書きたいからという理由だけのために貴重な記号を消費しないでほしい。rubyじゃあるまいし。
0525Name_Not_Found
垢版 |
2019/02/02(土) 22:51:24.73ID:???
JSを2050年以降まで延命させたいと言うのなら分かるが
そろそろ壮年期だと思えば消費しどころだろ
0526Name_Not_Found
垢版 |
2019/02/02(土) 23:12:44.96ID:???
どんどん仕様を追加していくとC++みたいになる
そして飽きられて次の言語へ・・・
とならないかな
0527Name_Not_Found
垢版 |
2019/02/02(土) 23:39:55.34ID:???
C++の場合もうすでに飽きられてる
Googleとか大手は必ず自分たちでC++をマクロなどで改造して使ってるし
そうで無い人はもうとっくに諦めてる
俺たちは安定と速度を求めて不便なC++を使ってるのだから
便利な機能なんて誰も求めてねーよとなってるだけ
もう誰からも進化を期待されない段階になる前に機能を追加していく必要がある
0528Name_Not_Found
垢版 |
2019/02/02(土) 23:51:44.36ID:???
無節操に一貫性なく機能を追加していったrubyはもはや誰からも期待されてないけどな。
0529Name_Not_Found
垢版 |
2019/02/02(土) 23:55:02.22ID:???
>>526
C++みたいな最強言語は一個あれば良い
それをラッパーして使う
0530Name_Not_Found
垢版 |
2019/02/02(土) 23:55:37.12ID:???
>>528
rubyどこで失敗したんだろうな
一時は使用者数ベスト5ぐらいには入ってなかったか
0531Name_Not_Found
垢版 |
2019/02/03(日) 00:21:44.96ID:???
>>526
C++の問題点はGCを搭載しなかったからで
そのせいでテンプレートの使用が実質必須になったから
0532Name_Not_Found
垢版 |
2019/02/03(日) 00:32:02.15ID:???
C++にガベコレ載せたらC++じゃないじゃん
住み分けだよ
0533Name_Not_Found
垢版 |
2019/02/03(日) 00:39:13.13ID:???
>>530
独善的な選民意識
ドキュメント軽視
ウィンドウズ蔑視

開発者がいくらMacやLinux使ってようが、ユーザーベースで8〜9割はウィンドウズなわけよ。
今のPythonの利用シーンを見てみると、職業プログラマ以外が自分の仕事に活用するようなユースケースが多い。
こういうユースケースに、コミュニティのウィンドウズ蔑視は致命傷になったな。ドキュメント軽視も。そういう人たちは「コードが仕様だ!」とか言われてもハァ?だろうしな。
ま、Railsが沈むまでは生きてるよ。Railsのバッテリーとして。
0534Name_Not_Found
垢版 |
2019/02/03(日) 10:29:10.52ID:???
>>528,530
Rubyの敗因は開発側のリソース不足
公言したことが守れないのでコミュニティから見放された
でもJSのようにチートな企業がサポートしてないのでどうしようもない
まあ細々とやっていくことが必ずしも悪いことでは無いと思うが
0535Name_Not_Found
垢版 |
2019/02/04(月) 09:32:10.11ID:lIoIDhfI
node.jsでXOというJavaScriptのLINT(兼コーディング規約)を使っています。
プロジェクトなどを作っていない掻き捨てのJavaScriptに対してXOを実行したときに
ホームディレクトリにキャッシュ用のディレクトリが作られてしまうのですが
この位置を好きな場所に変更したいです。
https://github.com/xojs/xo/blob/7017abeff57ffa96b9c5de254de5fcb4146d5121/lib/options-manager.js#L33
↑ここのcacheLocationの値を、(npmで取得した)xoのソースコード自身を編集することなく
グローバルに変更する方法などありますでしょうか。

よろしくおねがいします。
0536Name_Not_Found
垢版 |
2019/02/04(月) 15:49:15.73ID:???
@ は、Python のデコレーター

Ruby では、@ はインスタンス変数で、@@ はクラス変数だから、
@@ をインスタンス変数として使うのは、不自然
0537Name_Not_Found
垢版 |
2019/02/04(月) 15:51:29.58ID:???
>>535
VSCode, NOde.js の設定ファイルにでも、そういう項目があるんじゃね?
0538Name_Not_Found
垢版 |
2019/02/04(月) 17:37:41.33ID:???
デコレーターはPythonからというよりはJavaからだろ。
RoopyにいたってはRuviiの行き当たりばったり文法なんか何も参考にならないし誰も考慮してない。
0539Name_Not_Found
垢版 |
2019/02/04(月) 18:41:29.24ID:???
Rubyに親でもころされたんか
0540Name_Not_Found
垢版 |
2019/02/04(月) 19:43:34.07ID:???
parentNodeとparentElementって違いあります?
単に親要素取得したい場合どっち使うべきですかね
0542Name_Not_Found
垢版 |
2019/02/04(月) 19:46:20.72ID:???
あざす
じゃあparentNodeっていうプロパティは何のためにあるのですか
0543Name_Not_Found
垢版 |
2019/02/04(月) 20:06:21.10ID:???
いや、それくらい自分で調べろよ
調べて理解できないのならここで講義できるわけでもないしお前が分かるように伝えるすべがない
0545Name_Not_Found
垢版 |
2019/02/04(月) 20:13:41.43ID:???
Nodeのほうがプリミティブ。
用がなきゃエレメント使っときゃいい。
テキストノードいじらざるを得ないことはあったが…
0546Name_Not_Found
垢版 |
2019/02/04(月) 20:17:57.19ID:???
ありがとう
一度調べてみます
0547Name_Not_Found
垢版 |
2019/02/04(月) 20:45:05.35ID:???
たぶん、Element は、Node から派生した、子クラスか何かだろ

Nodeを使う事など、まずない!
0548Name_Not_Found
垢版 |
2019/02/04(月) 20:54:13.58ID:???
プロトタイプ継承だっつの。
クラスベースバカはrugyに引っ込んでろ!
0549Name_Not_Found
垢版 |
2019/02/04(月) 22:39:13.19ID:???
クラスとプロトタイプは対立する概念ではない
最初からクラスシステムが提供されていてそれに縛られるのがクラスベース言語
プロトタイプベース言語でも構造化のためにやっぱりクラスシステムは必要になる場合も多い
ただそれに縛られていないと言うだけ
0550Name_Not_Found
垢版 |
2019/02/04(月) 22:41:10.48ID:???
クラスベースのクラスしかクラスが無いと思いこんでるやつのほうがよっぽどクラスベースバカというオチか
0551Name_Not_Found
垢版 |
2019/02/04(月) 23:04:52.23ID:???
よっぽど悔しかったんだねrubyキチガイ
0553Name_Not_Found
垢版 |
2019/02/05(火) 12:50:12.23ID:???
javascriptのビット演算は実は速くないと聞いたのですが本当ですか?
内部で浮動小数点数を32ビット整数に変換して、ビット演算して、また戻して・・・という処理が走るらしいのです
今までカッコつけて n & 1 とかやってたのは実はより可読性のある n % 2 でよかったと知り衝撃です
あと、整数化をオシャレに n | 0 とかやってたのも Math.floor(n) のほうがいいらしいですね
0554Name_Not_Found
垢版 |
2019/02/05(火) 12:52:50.54ID:???
>>553
そういう時は自分で確認した方が良い
そもそもjsでビット演算とか読みづらいだけでは?機械学習でも回してるなら別だろうけど
0555Name_Not_Found
垢版 |
2019/02/05(火) 12:55:53.38ID:???
速いかどうかは誰かが答えるとして、
n % 2 より n & 1 のほうがカッコいいなんて全然思わないし、
Math.floor(n) より n | 0 のほうがオシャレだなんてまったく思わない。
0556Name_Not_Found
垢版 |
2019/02/05(火) 12:57:34.31ID:???
>>555
いるじゃないですかートリッキーなコード書ける俺はイカしてるんだぜって人が
まあ僕のことですが…
0557Name_Not_Found
垢版 |
2019/02/05(火) 13:02:06.99ID:???
一行チェスボード
Array(72).fill().map((v, i)=>i%9?'■□'[i%2]:'\n').join``
結果:
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
0558Name_Not_Found
垢版 |
2019/02/05(火) 14:44:38.06ID:???
Array.from({length: 72}, (v, i) => i);
みたく書けばfillとmap一緒にできるよ
0559Name_Not_Found
垢版 |
2019/02/05(火) 14:55:46.78ID:???
>>558
書きゃ分かるがそっちのほうが長くなるよ。
0560Name_Not_Found
垢版 |
2019/02/05(火) 15:00:54.09ID:???
夢のないことを言うようでアレだが
'□■□■□■□■\n■□■□■□■□\n'.repeat(4)
のほうがもっと短いし何より分かりやすい。
0561Name_Not_Found
垢版 |
2019/02/05(火) 15:07:17.79ID:???
>560
分かるけど、こういうのは短く書くことに意味があるんだ
0563Name_Not_Found
垢版 |
2019/02/05(火) 15:16:50.74ID:???
× 短く書くことが大事
○ 少ない単語数で書くことが大事

単語数が同じで可読性も変わらないから短い方が良いけど
0564Name_Not_Found
垢版 |
2019/02/05(火) 15:28:01.18ID:???
>563
これfizzbazzゲームじゃないの
0565Name_Not_Found
垢版 |
2019/02/05(火) 15:39:51.86ID:???
>>561
だから>>557より>>560のが短いんだってw
>>558>>557を書きかえても短くなるどころかさらに長くなるw
長い上に分かりにくいとか最悪じゃんw
0566Name_Not_Found
垢版 |
2019/02/05(火) 15:44:17.74ID:???
>>560
こっちのほうが更に分かりやすい。
`□■□■□■□■
■□■□■□■□
`.repeat(4)
0567Name_Not_Found
垢版 |
2019/02/05(火) 15:49:38.24ID:???
つ 顧客が求めていた物
`
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
□■□■□■□■
■□■□■□■□
`
0569Name_Not_Found
垢版 |
2019/02/05(火) 15:54:45.04ID:???
>>567
これ以上分かりやすくはできないなw
0570Name_Not_Found
垢版 |
2019/02/05(火) 17:00:34.77ID:???
用途が限定的すぎると最終的なプログラム量が増えない?
競プロあたりの話ならともかく
0571Name_Not_Found
垢版 |
2019/02/05(火) 18:01:17.09ID:???
>>570
そりゃ当たり前だ
具体的になるほどコードは増える
極端に言うとテキストなどはプログラムに任せられないからな

>競プロ
が何か分からないけど、
まぁいいや
0572Name_Not_Found
垢版 |
2019/02/05(火) 18:07:52.74ID:???
この文脈で競プロが何か分からないといっちゃう奴にとやかく言われたくないわな
知らないことを威張るのではなく恥と思ってほしいわ
0573Name_Not_Found
垢版 |
2019/02/05(火) 18:32:12.49ID:???
>>571
ありがとん
いや、汎用的という意味なら最初の方が関数にくくり出したりしやすそうだなと思っただけ
競プロは競技プログラミングね
数字を読み込んで大きさの異なる盤を出力するとかよくある部類だし、ちょっと考えてた
まぁ最初の書き込みはワンライナーにしかこだわってないっぽいけど
0574Name_Not_Found
垢版 |
2019/02/05(火) 19:49:52.00ID:???
>>553
JSはGCすら義務ではない そういう最適化はすべてエンジンの努力
だからここから言うのは一般的なことになるが、
何を使おうと使わなかろうと、型変換やチェックが走ってしまえば遅くなる
結局n & 1としたときのnがなんであるかが問題
十分慎重に扱っていれば、nは内部的にSMI(31bit整数)型で保てているはず
その状態を維持できる演算を続ける限りロスはない
例えば右シフトはOKだが左シフトは実数部30bitを超え31bitになる可能性がある
演算中は32bit整数として扱われるので問題ないが、その値を変数に入れると
doubleにするかどうかのチェックが入ってしまう
ただしその変数が一時変数で最終的に最適化で削減されれば影響はない
Math関数は最適化にブーストがかけられていて
Math.floor(smi)は特別な最適化で理想的な状態なら実際に行われる演算はsmi | 0と同じになる
他にもsmi / 2も除算ではなくsmi >> 1として評価される
結局bit演算を使うのはそこで早くなると言うより、それ自体が最適化を壊しにくいという点で価値がある
0575Name_Not_Found
垢版 |
2019/02/06(水) 07:29:20.60ID:???
>>557-562
>562
>中間リストがなくなる

Ruby のmap は、新しい配列を作って返すけど、
map! は、元の配列(self)を破壊的変更して返す

JavaScript には、self を返すバージョンが無いのか?

それと、Ruby をクソって言ってる荒らしが、
色々な板を荒らしまくっているから、そいつにかまわないように!

Ruby の会話を禁止するとか、あちこちのスレタイを勝手に変えている。
jQuery の会話を禁止するとか、スレタイに入れてる奴と同一人物かも?
0576Name_Not_Found
垢版 |
2019/02/06(水) 07:47:26.15ID:???
破壊的変更をドヤってるあたりがRubyistだなあとしか
0577Name_Not_Found
垢版 |
2019/02/06(水) 09:14:24.90ID:???
本当にrupiキチガイは物知らずのバカだなぁ。
新しい配列を返すからこそmapやfilter、reduceをチェインする度に新しい配列が作られるんだというのに。
本当に何にも分かってない。
roopy仲間が「rupuはここがいいんだ」って言ったら訳もわからず崇めてるだけ。
そんなカスが故意にスレ違いして宣伝するクソ言語なんか誰が使うか糞マヌケ。
クソ言語とともに滅びろ!
0578Name_Not_Found
垢版 |
2019/02/06(水) 09:16:14.58ID:???
>>575
ここはクソ言語rubyのスレではありません。荒らしはお前。死ね、苦しんで。
0579Name_Not_Found
垢版 |
2019/02/06(水) 09:40:42.79ID:???
よそ様のスレで脈絡なくrubyの宣伝はじめてスレ民が迷惑がっても一顧だにしないrubyキチガイさんの厚顔無恥さはすごいと思います!
rubyのことなんて知りませんでしたが、おかげで一番嫌いな言語になりました!
ありがとうございます!
0580Name_Not_Found
垢版 |
2019/02/06(水) 09:45:48.27ID:???
>>575
荒らしじゃないよ
rubyがクソは単なる共通認識
0581Name_Not_Found
垢版 |
2019/02/06(水) 12:33:54.25ID:???
>>575
> Ruby のmap は、新しい配列を作って返すけど、

Rubyのmapは新しい配列を作らないよ?
Enumeratorを返すから中間リストがなくなる
0582Name_Not_Found
垢版 |
2019/02/06(水) 12:44:16.87ID:???
クソ言語のクソ仕様の話はよそでやってほしい…
pythonスレみたいにスレタイにもruby禁止って入れようぜ。
0583Name_Not_Found
垢版 |
2019/02/06(水) 12:46:14.58ID:???
>>582
見て笑ったw
どんだけ嫌われてるんだよwww
0584Name_Not_Found
垢版 |
2019/02/06(水) 12:51:28.85ID:???
一人のキチガイがヘイトを集めまくって一つの言語を滅ぼそうとしてるwww
0585Name_Not_Found
垢版 |
2019/02/06(水) 19:21:43.04ID:???
この流れを見るとJSも年を取ったなと感じる
俺も何度このスレや別スレでJSは糞だ糞だ言われて出張して弁護したものか
機能が少ないことが逆に将来の可能性を残してるんだと
色んな言語で成功してからを取り入れる慎重さと賢さがあるんだと

いくらPythonバカが来ようと禁止とかしなかった
今の流れはただの弱い者いじめ 簡単に言うと老害
イテレータ廻りなどRubyから取り入れるべきものはたくさんあるし
逆に今となってはRubyを助けてあげることだってできるはず
いくらスレチとは言えこき下ろして排除すればいいってものじゃない
0586Name_Not_Found
垢版 |
2019/02/06(水) 19:22:44.49ID:???
と老害が申しております
0587Name_Not_Found
垢版 |
2019/02/06(水) 19:25:21.57ID:???
イテレータ廻りで今さらrubyから取り入れるべきものとは?
寝言は寝てから言ってほしいね。
0588Name_Not_Found
垢版 |
2019/02/06(水) 19:29:10.52ID:???
>>587
数年前から寝言で言ってんだが
今はもう仕様化が始まってる段階
0589Name_Not_Found
垢版 |
2019/02/06(水) 19:29:30.80ID:???
>>584
言語って最後はユーザーによってトドメを刺されるんだね
非常に貴重な瞬間に立ち会った気がする
0590Name_Not_Found
垢版 |
2019/02/06(水) 19:31:38.85ID:???
>>586
俺は実際に色んな意味で老害だから老害な発言しても良いんだよ
でもお前らが老害に老害と言われちゃ駄目だろ
皆が老害な発言をするようになってしまったら言語が年老いたってことになる
0591Name_Not_Found
垢版 |
2019/02/06(水) 19:35:58.95ID:???
居直り強盗みてーだなオイw
本当rubyキチガイはたち悪いわ。
0592Name_Not_Found
垢版 |
2019/02/06(水) 19:42:00.92ID:???
>いくらスレチとは言え
そこが大問題なんだが
0593Name_Not_Found
垢版 |
2019/02/07(木) 04:48:13.04ID:???
すみません、質問させてください。
おそらくたまに配信されてくる広告の影響で、勝手にリダイレクトする場合があり、
その原因ファイル(広告)を特定したいのですが、どのようにすれば良いでしょうか。

ブラウザの開発ツールでリダイレクト時に止める設定ができれば良いのかな?とふんわり思っているのですが、
開発ツールの操作に疎く、ヒントだけでも頂けたら嬉しいです。その際はできればFirefoxやEdgeでお願いしたいです。
もし質問先として間違っていたらごめんなさい。
0594Name_Not_Found
垢版 |
2019/02/07(木) 05:24:38.21ID:???
>>592
スレチに対してもちょっとは品のある対応しようぜ
蛮族じゃないんだから
0596Name_Not_Found
垢版 |
2019/02/07(木) 09:01:27.87ID:???
>>593
開発者ツールでunloadイベントでブレイクさせるようにするとか、
自分のページだったら
window.onbeforeunload = function(e) {
e.preventDefault();
return '止めたわ';
};
入れとくとか。
0597Name_Not_Found
垢版 |
2019/02/07(木) 14:10:40.73ID:wXUnJGMV
質問です
ランダムに自然数が入ってて、長さもそれぞれ違う配列が複数あって
この配列をn個(例えば3個)選んで

[0,1,3,5,8,11,15,23,30]
[2,3,4,8,9,16,17,20,21,23,25,28]
[3,6,8,13,16,19,23,27,32]

このn個全てに含まれてる数だけ取り出す

3, 8, 23

ってしたいとき、どうするのがベターでしょうか?
総当たりするしかないかな?と思ってるんですが
0598Name_Not_Found
垢版 |
2019/02/07(木) 14:21:42.72ID:???
phpなら配列系の関数山程あるんだけどね
あまりに面倒なら一度サーバーに投げてphpで処理した方が早いかも
0599Name_Not_Found
垢版 |
2019/02/07(木) 14:32:30.98ID:???
>>598
なるほどー
実際には数字じゃなく、オブジェクトになる予定なんで
そうなったらJSON化ですかねー
0600Name_Not_Found
垢版 |
2019/02/07(木) 14:42:16.46ID:???
>>597
気になったので調べてみた。組み込みには無いね
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Set

function intersection(setA, setB) {
var _intersection = new Set();
for (var elem of setB) {
if (setA.has(elem)) {
_intersection.add(elem);
}
}
return _intersection;
}

//Examples
var setA = new Set([0,1,3,5,8,11,15,23,30]),
setB = new Set([2,3,4,8,9,16,17,20,21,23,25,28]),
setC = new Set([3,6,8,13,16,19,23,27,32]);

intersection(intersection(setA, setC),setB); //3,8,23
0601Name_Not_Found
垢版 |
2019/02/07(木) 14:48:15.27ID:???
pythonだったらよかったのにね
0602Name_Not_Found
垢版 |
2019/02/07(木) 14:58:21.82ID:???
JSONで文字列比較がありなら>>600をそのまま実装してしまえばいいと思うけど

あまりにデータ数が多いならサーバに投げるのもありだけど、それならphpじゃ心許ないしなあ
0603Name_Not_Found
垢版 |
2019/02/07(木) 15:07:26.82ID:???
考えたんですが

n個の配列の1個目のコピーを用意
tmp[0,1,3,5,8,11,15,23,30]

tmpをループで後ろから
2個目.indexOf(30) == -1 なら tmp末尾削除
2個目.indexOf(23) == -1 なら tmp末尾削除
2個目.indexOf(15) == -1 なら tmp末尾削除

ってのを、3個目、4個目、... n個目と繰り返せば
ループ回数はどんどん減ってくことになるから
総ループ数は最短で済む、のかな?

あ、最初に用意するコピーは1個目じゃなく
lengthが一番小さいやつにするといいのか
0604597
垢版 |
2019/02/07(木) 15:08:18.18ID:wXUnJGMV
今気づきましたがメ欄に番号書いてました…
>>597
>>599
>>603
は私です…
0605Name_Not_Found
垢版 |
2019/02/07(木) 15:54:02.84ID:???
>>597
const intersection = (...arrays) => {
const truthArrays = arrays.map(array => array.reduce((acc, n) => (acc[n] = true, acc), []))
const result = []
for (let i = 0; i <= Math.max(...arrays.flat()); i++) {
if (truthArrays.map(truthArray => truthArray[i]).every(v => v)) result.push(i)
}
return result
}

const a = [0,1,3,5,8,11,15,23,30]
const b = [2,3,4,8,9,16,17,20,21,23,25,28]
const c = [3,6,8,13,16,19,23,27,32]

intersection(a, b, c)
//=> [3, 8, 23]
0606Name_Not_Found
垢版 |
2019/02/07(木) 16:08:19.79ID:???
あっ、
ループの度にMath.max(...arrays.flat())が評価されちゃうから↓の行は、
for (let i = 0; i <= Math.max(...arrays.flat()); i++) {
↓の二行に分けたほうがよかったゴメン
const maxNum = Math.max(...arrays.flat())
for (let i = 0; i <= maxNum; i++) {
0607Name_Not_Found
垢版 |
2019/02/07(木) 16:23:35.64ID:???
あっ、オブジェクト?
オブジェクトだったらもっと効率的に出きるかも知れないから例書いといてくれ。
0608Name_Not_Found
垢版 |
2019/02/07(木) 18:20:03.24ID:???
質問です
document内のエレメントに、何か自分用の印とかメモとかを付けたい時、
element.hogehoge="are";
とか
if(element.hogehoge=="are"){〜
みたいに勝手に予約語にないプロパティ?を作って書き込んだり読み出したりしていいんでしょうか?
0609Name_Not_Found
垢版 |
2019/02/07(木) 18:25:36.10ID:???
>>608
それは共同開発者に聞いてくれ
共同開発者がいないなら、本気でどうでもいい。好き放題やっていい
なんだったら独自要素作っても良い
<foo>独自要素です</foo>
SEO的にどう評価されるかは知らないけど
0610Name_Not_Found
垢版 |
2019/02/07(木) 18:27:35.54ID:???
>>609
ありがとうございます
聞きたかったのは言語仕様としてまず可能なのかどうか(全てのブラウザ環境で使えるのか)だったので、OKのようですね。
こういうことは意外にJavascriptの入門書に書いてない気がします。
ありがとうございます。
0611Name_Not_Found
垢版 |
2019/02/07(木) 18:32:17.59ID:???
単なるオブジェクトへのプロパティの設定だから書いてあるだろ。
domから見たらエレメントは特別だがjsから見たら単なるオブジェクトの一種なんだし
0612Name_Not_Found
垢版 |
2019/02/07(木) 18:37:04.35ID:???
>>603
自力で実装するにしても最悪O(n^m)はさすがにキツいかなあ
0613Name_Not_Found
垢版 |
2019/02/07(木) 18:37:39.99ID:???
>>611
すごく論理的に読んだらそうなんでしょうし、今なら私にも分かりますが、
>>608みたいに血の通った使い道の説明があったらもっと早く安心して飲み込めたなぁと思うので。
0614Name_Not_Found
垢版 |
2019/02/07(木) 18:58:04.52ID:???
>>610
何を設定しても良いのは間違いないが、
そういう時ようにdata属性ってのがある
data-fooなどはjQueryからも読みやすくて良い
0616Name_Not_Found
垢版 |
2019/02/08(金) 00:35:32.42ID:???
>>593
確か、はてなブログだったかな?

質の悪い広告を採用している。
システムセキュリティーの、広告か何かだったかな?

自動的に、広告ページへ飛ばされる
0617Name_Not_Found
垢版 |
2019/02/08(金) 00:45:41.89ID:???
DOM に独自のプロパティを、勝手に追加したら、
DOMの仕様に適さなくなるから、DOMじゃなくなる

独自部分は、カスタムデータ属性を使うべき
0618Name_Not_Found
垢版 |
2019/02/08(金) 00:47:36.62ID:???
>>596
>>616
593です。まだ試していませんがとても助かります。ありがとうございます。
0619Name_Not_Found
垢版 |
2019/02/08(金) 00:50:04.25ID:???
lodash にある

複数の配列の積集合(共通する値)を取得する

_.intersection(array...)

_.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);

// → [1, 2]
0620Name_Not_Found
垢版 |
2019/02/08(金) 15:01:57.14ID:???
「Webブラウザで動かすJS」以外、
たとえばNode環境とかTypeScriptとかの話って、このスレの範囲内?
やっぱ板チ?
0622Name_Not_Found
垢版 |
2019/02/08(金) 17:47:57.51ID:???
アリガサンキュー
あくまで例なだけでTSやnodeだけの話じゃないんだけどね
0623597
垢版 |
2019/02/08(金) 18:09:20.34ID:4ZYoc13A
>>619
あざます
0624597
垢版 |
2019/02/08(金) 18:20:03.62ID:4ZYoc13A
>>607
配列の要素になる(予定の)オブジェクトはよくあるクラスのインスタンスです
インスタンス群から、ある複数条件に&マッチするものを抽出するの>>597の目的です

あるひとつの条件にマッチするかどうかはインスタンス生成時に判明するので
条件ごとに、マッチするインスタンス群を配列化しておいて
実際に抽出する際には、選択された条件の配列群から
全てに含まれる要素だけを抜き出そうと考えてました
0625Name_Not_Found
垢版 |
2019/02/08(金) 20:54:04.14ID:???
文字列に応じた処理分岐ってどうするのが一番いいの
パッと思いついたのは3案
案1 素直にif文
if(str === 'hoge') {
hogeFunc();
} else if(str === 'piyo') {
piyoFunc();
} else {
otherFunc();
}
案2 switch文
switch(str) {
case 'hoge': hogeFunc();
break;
case 'piyo': puyoFunc();
break;
default: otherFunc();
}
案3 連想配列
const obj = {
'hoge': hogeFunc,
'piyo': piyoFunc,
};
if(obj.hasOwnProperty(str)){
obj[str]();
} else {
otherFunc();
}

分岐数は大体20〜30で、イベント絡みなので頻繁に呼ばれる可能性が高い
よろしくお願いします
0628Name_Not_Found
垢版 |
2019/02/08(金) 22:37:05.10ID:???
[].slice()を使った配列の複製って
2次元配列以降は値渡しできないんだなぁ…
シンプルに多次元配列を複製する方法教えてください
0629Name_Not_Found
垢版 |
2019/02/08(金) 22:37:56.16ID:???
>>625
> 文字列に応じた処理分岐ってどうするのが一番いいの

まず速度は無視して一番コードが少なく可読性が高い方法で書く
9割以上はココまでで終わり

どうせ頻繁に呼ばれると言っても
1秒間に100回も呼ばれないだろ?
頻繁と言って良いのは10000回レベルからだぜ
0631Name_Not_Found
垢版 |
2019/02/08(金) 23:06:56.39ID:???
>>628
const コピー先 = JSON.parse(JSON.stringify(コピー元))
関数入れたり等してない単なるデータならこれ使えんか?
さすがjavascript結構速いぞ
0632Name_Not_Found
垢版 |
2019/02/08(金) 23:17:21.51ID:???
MessagePort使って非同期にするほうがより良い
0633Name_Not_Found
垢版 |
2019/02/08(金) 23:55:54.41ID:???
Ruby でも、clone, dup など、基本は、shallow copy(浅いコピー)で、
deep copy(深いコピー)は、Marshal.dump

Marshal.dumpは「オブジェクト ←→ 文字列」の変換だから、
文字列からインスタンスを作った際に、全く新しいインスタンスが作られる

JavaScript では、lodashの、cloneDeep がある
0634Name_Not_Found
垢版 |
2019/02/09(土) 00:15:30.42ID:???
スレタイにRuby 禁止って入れるか。
0636Name_Not_Found
垢版 |
2019/02/09(土) 00:39:14.27ID:???
オブジェクトが要素の配列の複製ってやっぱ面倒なんやね
1人でずっとやってきたから俺がわかってないだけなのかと思ってた

複製が予想されるオブジェクトには
自分の複製インスタンスを返すメソッド持たせたりしてるんだけど
これは変なやり方?
0637Name_Not_Found
垢版 |
2019/02/09(土) 11:36:30.68ID:???
別に面倒ではない
ただの構造体なら>>631でいいし
インスタンスのコピーなら当然クラス側にcloneメソッドを付けるのが普通
DOMのように
0638Name_Not_Found
垢版 |
2019/02/09(土) 12:20:40.87ID:???
空ループ1億回するだけならどう言う書き方が最速なのか気になる
0639Name_Not_Found
垢版 |
2019/02/09(土) 12:33:13.61ID:???
ワンライナーで検索すれば色々でてくるよ
0640Name_Not_Found
垢版 |
2019/02/09(土) 12:55:51.58ID:???
内部の状態を変えないなら複製の必要もない
内部の状態を変えたくなったらインスタンスごと作り直せば元のインスタンスの中身は変わらない
そのためにはクラス定義をなるべく小さなものにすること
要はValueObjectよ
0641Name_Not_Found
垢版 |
2019/02/09(土) 13:01:14.29ID:???
tableを100個くらいまとめて作るには

for(n=1;n<=100;n++){
document.write("<table><tr><td>aaa</td></tr></table>");
}
のようにdocument.writeでやるしかないんですか?*
0642Name_Not_Found
垢版 |
2019/02/09(土) 13:02:50.20ID:???
>>641
普通それはphpで行う
それ以前にtable100個必要な理由はよーわからんが
0643Name_Not_Found
垢版 |
2019/02/09(土) 13:06:40.54ID:???
「サーバーサイドで行う」ならわかるがなぜphp限定
0645Name_Not_Found
垢版 |
2019/02/09(土) 13:20:42.97ID:???
テーブル100個はいろいろと無駄
Canvasでやれ
0646Name_Not_Found
垢版 |
2019/02/09(土) 13:50:10.07ID:???
phpとjs使えるだけでプログラマー気取りのweb屋さん
0647Name_Not_Found
垢版 |
2019/02/09(土) 14:00:33.40ID:???
document.write使うなし
今のブラウザだとdocument.writeされるたびに全体が再描画されて極端に速度低下する場合があるので
素直にdocumentFragment作ってからappendChildするなり全部文字列で連結してからinnerHTMLに突っ込め
0649Name_Not_Found
垢版 |
2019/02/09(土) 14:42:27.40ID:???
>>647
文字列結合してから最後に一回だけdocument.writeすればいいだけ
0650Name_Not_Found
垢版 |
2019/02/09(土) 15:25:14.79ID:???
>>638
オプティマイザーにまるっと削除されるんじゃないか、空だと。
0652Name_Not_Found
垢版 |
2019/02/09(土) 17:32:06.28ID:???
難しいこと考えずにjQuery使いなさいよw
0653Name_Not_Found
垢版 |
2019/02/09(土) 20:32:42.72ID:???
一時期、innerHTMLとdocument.writeは使わずにcreateElement使って表示されろって言う奴がいたけど、
jQueryが流行りだしたらほとんど言わなくなったなw
0654Name_Not_Found
垢版 |
2019/02/10(日) 09:41:06.61ID:???
document.writeはだけはホント害悪
Feature Policyで禁止にすべき
0655Name_Not_Found
垢版 |
2019/02/10(日) 21:53:51.10ID:???
document.writeって使う場面あるの?
昔テストの時に使ってたけど、jsfiddle当たりのサイトでてから全く使わなくなった
0657633
垢版 |
2019/02/10(日) 22:15:31.53ID:???
>>636
基本的に、C/C++ 以外の言語は、参照を使っているから、
代入が参照の代入だけで、新しいインスタンスを作ってはいない。
(ただし、primitive は参照を持っていない)

そのため、deep copy(深いコピー)が無いから、
Ruby のMarshal.dump のような「オブジェクト ←→ 文字列」の変換・シリアライズの機構を使っているだけ

文字列から、新しいインスタンスを作れば、
既存インスタンスの参照を持っていないから、安全

Haxe では、多言語間のシリアライズもできるけど、
抽象クラスを使っていると出来ないとか、色々な制約がある
0658Name_Not_Found
垢版 |
2019/02/10(日) 22:15:43.86ID:???
JavaScriptやり始めて20年くらい経つけど、
alertで処理を止めて確認する癖が抜けなくてconsole.logを使うのがいまだになれない
0659Name_Not_Found
垢版 |
2019/02/10(日) 22:21:47.11ID:???
>>658
めっちゃ効率悪いぞ、早く覚えたほうが良い
開発ツールとか使ってる?
0661Name_Not_Found
垢版 |
2019/02/10(日) 22:22:44.31ID:???
console.〜ってlog以外も使う?
0663633
垢版 |
2019/02/10(日) 22:37:29.93ID:???
>>641
参考までに、

Ruby, Nokogiri, selenium-webdriver では、
Nokogiri::HTML::DocumentFragment.parse で、文字列から、DOM を組み立てる

最後に、JavaScript のinnerHTML で、そのDOM をページに反映する
0664Name_Not_Found
垢版 |
2019/02/10(日) 22:39:34.10ID:???
やっぱスレタイに入れるべきだろ…
0665Name_Not_Found
垢版 |
2019/02/10(日) 22:40:09.33ID:???
こうして、一つの言語が終わりを迎えるのであった
0666Name_Not_Found
垢版 |
2019/02/10(日) 22:49:31.31ID:???
VSCode には、Quokka.js という拡張機能がある。
ただし、既存ファイルでは使えない

console.log を使わなくても、変数が表示される

let numbers = [ 1, 2, 3 ]

let doubled = numbers.map( n => n * 2 )

doubled
//=> [ 2, 4, 6 ]
0667Name_Not_Found
垢版 |
2019/02/10(日) 22:56:33.43ID:???
いやjs/tsはvscodeが統合デバッガ用意してくれてるんで。
デバッギングプロトコルでchromeに接続してchromeのdevtools使うこともできるしndbもある。
Quokkaとかいう商用ソフトの機能制限宣伝版の片棒担いじゃうとこが読点君だなと思う。
0668Name_Not_Found
垢版 |
2019/02/10(日) 23:11:30.17ID:???
webworkerを使って呼び出したスクリプトのデバッグは
いまだにdevtoolしか使いこなせない……
0671Name_Not_Found
垢版 |
2019/02/11(月) 03:35:24.86ID:???
正確には「Ruby厨は出禁」じゃね
0672Name_Not_Found
垢版 |
2019/02/11(月) 08:49:14.74ID:???
いや、禁止しなくていいから
0673Name_Not_Found
垢版 |
2019/02/11(月) 09:47:07.76ID:4CjPW9o9
ID出して投票しようぜ
俺は賛成
pythonと同じ【Ruby禁止】 をつければいいと思う

ちなみにpythonスレ
くだすれPython(超初心者用) その41【Ruby禁止】
0674Name_Not_Found
垢版 |
2019/02/11(月) 10:03:16.44ID:???
いかにもpython信者がやりそうなことだ
0675Name_Not_Found
垢版 |
2019/02/11(月) 10:33:11.42ID:???
いやスレタイに無くてもスレチだから
0677Name_Not_Found
垢版 |
2019/02/11(月) 12:55:21.71ID:???
賛成。スレタイになくてもスレチなのはその通りなんだがあのキチガイには通じない。
通じないのはつけても同じかもだがあいつが犯罪者なのがたった6文字でより明確になる。
せめてそんくらいは溜飲下げさせてもらってもいいだろ。
0678Name_Not_Found
垢版 |
2019/02/11(月) 16:58:05.37ID:???
スルーしとけばいいだろ
0679Name_Not_Found
垢版 |
2019/02/11(月) 18:39:25.01ID:LWG+GWk2
タグでマークした文字列をタグごと削除する正規表現は
どうなりますか?
0680Name_Not_Found
垢版 |
2019/02/11(月) 18:52:07.35ID:???
使いどころがわからないけど正規表現でやる縛りでもあるの?
セレクトして削除すればいいだけだと思うんだが…
0681Name_Not_Found
垢版 |
2019/02/11(月) 18:53:50.95ID:???
セレクトってどうやるんですか?
0682Name_Not_Found
垢版 |
2019/02/11(月) 18:57:47.76ID:TyNVHsn6
>>673
反対
0683Name_Not_Found
垢版 |
2019/02/11(月) 18:58:32.95ID:WLsKSMdQ
>>673
同じく反対
0684Name_Not_Found
垢版 |
2019/02/11(月) 18:58:53.76ID:kOF/Y5c7
>>673
俺も反対
0685Name_Not_Found
垢版 |
2019/02/11(月) 19:00:02.48ID:CuJ+7Lbk
反対。ここまででID出してる人で
賛成は1人、反対は4人か
0688Name_Not_Found
垢版 |
2019/02/11(月) 19:47:43.93ID:???
>>687
仕様もクソもタグはタグなんですが…
0689Name_Not_Found
垢版 |
2019/02/11(月) 19:54:37.41ID:???
そうだよな!ハッシュタグのことだよな普通。
0690Name_Not_Found
垢版 |
2019/02/11(月) 20:01:36.95ID:???
・文字列が入ってるタグならなんでもいい
・「タグごと」消したい
ってことらしいから、bodyにはほぼ確実に文字列が入っている。つまり、
document.body.innerHTML = '';
でいいな。俺ってかしこい
0691Name_Not_Found
垢版 |
2019/02/11(月) 20:01:47.81ID:???
oncontextmenuのハンドラに、innerHTMLで要素の内容を書き換える操作を登録すると
ブラウザの右クリックコンテキストメニューが出てこなくなるのですが仕様でしょうか?
chromeです
というより
0692Name_Not_Found
垢版 |
2019/02/11(月) 20:02:53.49ID:???
途中で送信してしまいました
>というより
そもそもoncontextmenuに登録するとブラウザの右クリックメニューは出てこないと思っていたのですが
違うのでしょうか
0693Name_Not_Found
垢版 |
2019/02/11(月) 20:03:57.85ID:???
もうそれやめたほうがいい仕様じゃなかったっけ?
0694Name_Not_Found
垢版 |
2019/02/11(月) 20:19:31.67ID:???
>>690
いや>>679見ろよ。bodyに文字列入ってるならそのbodyタグも消さなきゃダメだろ。
それじゃbodyタグ残ってるからダメ。
document.body.outerHTML = '';
こう。
0695Name_Not_Found
垢版 |
2019/02/11(月) 20:34:23.10ID:???
右クリックメニューを触るのはもう非推奨だったような気がする
検索しても出てこない
0696Name_Not_Found
垢版 |
2019/02/11(月) 20:45:07.08ID:???
>>692
contextmenuイベントハンドラに渡されるイベントオブジェクトでpreventDefault()するか
return false;で戻った場合にコンテキストメニューが表示されなくなる
0697Name_Not_Found
垢版 |
2019/02/11(月) 21:37:43.12ID:???
Mapのキーにオブジェクトを使うのって、あまりしない方がいいですか?
できるのはわかってるんですけど、デバッグの際に中身見ても想定通りのキーかどうかがわかりづらいので、アンチパターンだったりするのかなと
識別用に文字列とか用意した方がいい?
0698Name_Not_Found
垢版 |
2019/02/11(月) 21:41:51.51ID:???
だったらMap使う必要ないじゃんw
0699Name_Not_Found
垢版 |
2019/02/11(月) 21:54:16.03ID:???
スレタイに、Ruby禁止・jQuery/Lodash禁止とか、入れてる奴は荒らし!

荒らしが、スレ立てしてるだけ!
無視すべし!

あちこちで、荒らしが荒らしてるだけ!
0700Name_Not_Found
垢版 |
2019/02/11(月) 22:00:52.67ID:???
>>699
お前がキチガイruby荒らしだろうが死ね!
0702Name_Not_Found
垢版 |
2019/02/11(月) 22:06:55.12ID:???
文字列などのprimitive は、値しかないから変化しないので、キーに適する

一方、インスタンスは参照・インスタンスID だから、
そのインスタンスが削除されたら、キーが消えて、データを取り出せなくなる
0703Name_Not_Found
垢版 |
2019/02/11(月) 22:09:08.04ID:???
>>699
全部お前のせいだろ。JSにもRubyにも迷惑かけんな。氏ね
0704Name_Not_Found
垢版 |
2019/02/11(月) 22:10:27.36ID:???
>>701
メール欄を空にするとIDが表示されるよ
0705Name_Not_Found
垢版 |
2019/02/11(月) 22:18:30.54ID:+9vGuAqz
こうかな?
0706Name_Not_Found
垢版 |
2019/02/11(月) 22:19:22.37ID:+9vGuAqz
あ、できた。じゃあ改めまして、反対
0707Name_Not_Found
垢版 |
2019/02/11(月) 23:24:03.47ID:qOol5gap
じゃ賛成
0708Name_Not_Found
垢版 |
2019/02/11(月) 23:33:12.93ID:???
例えばJavaと間違われるから見た人が間違わないようにJava禁止と入れるとかいうのなら分かるが
かなり関連性の低い言語の名前を入れるってスレタイ汚しにしかならんから絶対やめろ
Rubyの話題出してる奴が入れたから来ないわけでもないし、そんなことで議論する暇があったら
>>1のテンプレを時代に合わせて改良しようとしろ
ガキクサ
0709Name_Not_Found
垢版 |
2019/02/11(月) 23:38:26.80ID:9S1cKNJC
>>702
こんのクソボケrubyキチガイまーた適当ブッこきやがって死ね。
オブジェクトをmap替わりに使う場合は適するもクソもキーには文字列かシンボルしか使えねーんだよタコ。
任意のオブジェクトをキーにできるMap欲しいねってことでMap/WeakMap採用されたんだろうがカス。
キーに登録したオブジェクトが消えたらキーも消えて取り出せなくなるのはMapじゃなくてWeakMapの挙動だハゲ。
そのWeakMapの挙動もメモリリーク防げるよう望まれて規定された性質だ糖質。

嘘ばっかり喚き散らしてほんとこいつ嫌い死ね。
というわけで賛成!
0710Name_Not_Found
垢版 |
2019/02/12(火) 00:45:41.91ID:4ykDHYMr
でh賛成
0711Name_Not_Found
垢版 |
2019/02/12(火) 06:57:35.01ID:MxHdGGkL
反対
0712Name_Not_Found
垢版 |
2019/02/12(火) 07:24:06.19ID:???
何かアンケやってるけどスレタイじゃなくてテンプレでしょ?
そこ違うと結果も全然違うと思うんだけど
0713Name_Not_Found
垢版 |
2019/02/12(火) 08:16:28.07ID:CiVuf1El
賛成
0714Name_Not_Found
垢版 |
2019/02/12(火) 08:34:47.82ID:gDTswq6u
いつも辟易してるので賛成
0715Name_Not_Found
垢版 |
2019/02/12(火) 11:34:09.14ID:zctw014f
Ruby禁止とかつけた所で、じゃあPythonならいいのか?ってことになるので
意味がない。荒らしはどうせつけた所で書き込むので
スレタイが長くなるだけで何の効果もない。よって反対
0716Name_Not_Found
垢版 |
2019/02/12(火) 11:39:28.30ID:???
ruby信者が圧倒的にキチガイで辟易しているからこんな事を話ているわけで
0717Name_Not_Found
垢版 |
2019/02/12(火) 11:47:37.48ID:???
それならNGワードにでも登録すりゃ良い
スレタイに入れた所で書き込みを制限することはできないんだから
0718Name_Not_Found
垢版 |
2019/02/12(火) 12:35:50.55ID:???
>>717
それな

いちいち騒いでるやつの方がうざいわ
0719Name_Not_Found
垢版 |
2019/02/12(火) 12:40:56.28ID:???
低レベルなruby信者がrubyで回答しているのが一番の問題
0720Name_Not_Found
垢版 |
2019/02/12(火) 12:48:57.31ID:???
承認欲求ってやつなんだろうな
賛成いっぱいもらいたい
賛成いっぱいもらったから俺が言ったことは認められたんだ
みたいな
0721Name_Not_Found
垢版 |
2019/02/12(火) 13:10:45.76ID:???
スレ違いにいちいち反応するバカばっか
0722Name_Not_Found
垢版 |
2019/02/12(火) 14:45:14.25ID:xVLF7M/n
理解できないことに反応するバカばっか
0723Name_Not_Found
垢版 |
2019/02/12(火) 14:46:56.01ID:???
>>696
なるほど、閲覧していたサイトもreturn falseをしていました
ただ同じコードを再現しようとしたとき、なぜかinnerHTMLを加えるとブラウザ側のコンテキストメニューが消えてしまいましたね
console.log(1);
return false;
//これだとブラウザ側のコンテキストメニューが出る
console.log(1);
elm.innerHTML='';
return false;
//これだと出ない(return falseの有無でも同じ)

自分はおそらく使う機会が無いのでだから何なんだという話なのですが・・
0724Name_Not_Found
垢版 |
2019/02/12(火) 23:31:46.71ID:???
例えば、model press のサイトでは、
画像上で、右クリックメニューを表示させたくない

表示されると、画像をダウンロードされてしまうから

だから、return false で検索すると、その場所が見つかる
0725Name_Not_Found
垢版 |
2019/02/13(水) 00:29:27.88ID:???
>>724
>表示されると、画像をダウンロードされてしまうから

客や代理店とかもたまに言うけど哲学的表現だよなあ

ダウンローして表示した画像を右クリック出来るとダウンロードされてしまう…
0726Name_Not_Found
垢版 |
2019/02/13(水) 00:34:06.16ID:???
firefoxなんだが
SHIFT押しながらだと普通に右クリックで
メニューが出てきたな
0727724
垢版 |
2019/02/13(水) 00:51:22.08ID:???
例えば、model press のサイトでは、
乃木坂46のNo.1 美人、佐々木琴子の記事が、最も参照される!

この画像をダウンロードされると、定期的に見に来てくれなくなるから、広告のクリックが減ってしまう

また、表示される広告も、個人や時期によって、コロコロ変わる

例えば、佐々木琴子の着ているパーカーを検索してから、ページを見ると、
PUMA のロシアのジャケットが表示されるようになる

それで、そのサイトから買えば、広告収入が入る
0728Name_Not_Found
垢版 |
2019/02/13(水) 01:58:02.78ID:???
>>726
知らなかった
もう右クリックOKのアドオンいらんわ
ありがとう
0729Name_Not_Found
垢版 |
2019/02/13(水) 11:49:50.64ID:TIT4YwtD
なんかを集計し、キーを日本語にしたいとき
オブジェクトをいわゆる連想配列っぽく使うのが普通のやり方ってことでいいんですかね

たとえば
const arr = ["孫 悟空", "孫 悟飯", "孫 悟天", "猪 八戒", "沙 悟浄"];
というリストを元に
//obj = {
//"孫" : "悟空 悟飯 悟天",
//"猪" : "八戒",
//"沙" : "悟浄"
//};
のような結果が欲しい場合、

const obj = {};
arr.forEach((elem)=> {
const seimei = elem.split(' ');
const sei = seimei[0];
const mei = seimei[1];

if( obj[sei] !== undefined ) {
obj[sei] += " " + mei;
}else{
obj[sei] = mei;
}
});

とするってことでいいんでしょうか
ifの部分(そのキーの中身がまだない場合)がやや大げさに感じるのですが、これはしょうがないんですかね
0730Name_Not_Found
垢版 |
2019/02/13(水) 13:14:46.05ID:???
>>729
まあそうだわな
それよりスペース区切り文字列で格納するってちょっと斬新と思った
0731Name_Not_Found
垢版 |
2019/02/13(水) 13:21:49.33ID:???
確かに カンマやタブは珍しくないけど
0732Name_Not_Found
垢版 |
2019/02/13(水) 13:26:25.11ID:???
配列にする以外の発想がなかった俺の
頭の硬さたるや…
0733Name_Not_Found
垢版 |
2019/02/13(水) 13:33:15.39ID:???
>>729
const obj = arr.reduce((acc, name) => {
const [sei, mei] = name.split``;
acc[sei] = acc[sei] ? acc[sei] + ' ' + mei : mei;
return acc;
}, {});
0734Name_Not_Found
垢版 |
2019/02/13(水) 13:34:22.53ID:???
>>733
間違えた
>>729
const obj = arr.reduce((acc, name) => {
const [sei, mei] = name.split` `;
acc[sei] = acc[sei] ? acc[sei] + ' ' + mei : mei;
return acc;
}, {});
0735Name_Not_Found
垢版 |
2019/02/13(水) 14:25:50.54ID:???
>>734
まあそんな感じじゃない?
あまり空白でつなげるってないけど、俺なら
const obj = {}
for (const [sei, mai] of arr.map(name => name.split(' '))) {
if(obj[sei]) {
obj[sei] += ' ' + mei;
} else {
obj[sei] = mei;
}
}
あたりにしそう
0736Name_Not_Found
垢版 |
2019/02/13(水) 15:09:48.19ID:???
無駄に配列に入れてjoinしようぜ!
0738Name_Not_Found
垢版 |
2019/02/13(水) 16:26:54.65ID:???
>>736
これならどう?
const obj = Object.entries(arr
.map(name => name.split` `)
.reduce((acc, [sei, mei]) => (acc[sei] = [...(acc[sei] || []), mei], acc), {}))
.reduce((acc, [sei, meis]) => (acc[sei] = meis.join` `, acc), {});

>>734ならループ1回、
>>735ならループ2回で済んでいるところ、
なんとこれは計4回も無駄にループしてる。
まいったか
0739Name_Not_Found
垢版 |
2019/02/13(水) 16:48:20.13ID:???
>>738
jsである以上無駄ループはある程度仕方ないと思うけど、reduce内で副作用があるのは個人的に好きくないんだ
副作用はfor文で明示したい
0740Name_Not_Found
垢版 |
2019/02/13(水) 17:20:55.55ID:???
>>739
副作用取ったぞ!
const obj = Object.entries(arr
.map(name => name.split` `)
.reduce((acc, [sei, mei]) => ({...acc, [sei]: [...(acc[sei] || []), mei]}), {}))
.reduce((acc, [sei, meis]) => ({...acc, [sei]: meis.join` `}), {});
0741Name_Not_Found
垢版 |
2019/02/13(水) 17:48:30.03ID:???
>>740
ちょっと笑った
やっぱりjsで関数型ちっくにやるもんじゃないな
0743Name_Not_Found
垢版 |
2019/02/13(水) 18:16:03.66ID:???
ループ1回で済む>>734から副作用取ればいいじゃん。
const obj = arr.reduce((acc, name) => {
const [sei, mei] = name.split` `;
return {...acc, [sei]: acc[sei] ? acc[sei] + ' ' + mei : mei};
}, {});
0744Name_Not_Found
垢版 |
2019/02/13(水) 18:37:32.15ID:???
>>743
ループ回数分オブジェクトが再構築されるのがえぐい
0745Name_Not_Found
垢版 |
2019/02/13(水) 18:52:46.75ID:???
じゃあ副作用使え。
現在のコンピュータのアーキテクチャでは副作用使った方が効率はいい。
そうしないのは効率以外のメリットがあるからだが今回reduce内のアキュムレータなんぞはわりとどうでもいい。
0746Name_Not_Found
垢版 |
2019/02/13(水) 19:11:33.23ID:???
arrを破壊しちゃダメなケースもあるでしょ
イテラブルをループ内でミューテートはノーグッド(ルー風)
0747Name_Not_Found
垢版 |
2019/02/13(水) 19:17:12.47ID:???
おっちゃん

name.split` `;

これが馴染めん…
0748Name_Not_Found
垢版 |
2019/02/13(水) 19:26:46.38ID:fSf4Noft
コールバック関数をうまく使えないので、お助け下さい
現在地の緯度経度を取得するため、
navigator.geolocation.getCurrentPosition()
https://developer.mozilla.org/ja/docs/Web/API/Geolocation/getCurrentPosition
を使おうと思いましたが、successから返す方法がわかりませんでした

具体的には、以下のようなマップシステムを作りたいと考えています
・「北海道」のボタンを押すと、地図の中心を北海道にする(他にも各地があります)
・現在地を押すと、現在地を中心にする
どのように書けば良いでしょうか
https://jsfiddle.net/y0qb63fs/6/
0749Name_Not_Found
垢版 |
2019/02/13(水) 19:28:43.60ID:???
>>747
第一引数に文字列を取り、第二引数以降がないか、または省略できる関数hogeに対し、hoge('fuga')をhoge`fuga`と書いて同等の結果を得ることができる。
これはES2015のtaged templatesの仕様と、['piyo'].toString()が'piyo'となるjsの仕様を組み合わせて利用したイディオム。
0750Name_Not_Found
垢版 |
2019/02/13(水) 19:36:35.77ID:???
>>749
おっちゃんそれは勉強した

>第二引数以降がないか、または省略できる

これが解せん
`` で書く場合と(arg, arg)で書く場合が混ざるのがすごく気持ち悪い…

気持ち悪いのはおっちゃん昨日飲み過ぎたからだけど(´;ω;`)
0751Name_Not_Found
垢版 |
2019/02/13(水) 19:44:45.78ID:???
>>750
まあ別に何か付加価値のある書き方じゃないからな。
俺はsplit、join、querySelector[All]のみに使うことにしてる。
0753Name_Not_Found
垢版 |
2019/02/13(水) 20:01:29.04ID:???
>>741
> やっぱりjsで関数型ちっくにやるもんじゃないな

関数型言語でやったらもっとシンプルに書けるというの?
同じでしょ?
0754Name_Not_Found
垢版 |
2019/02/13(水) 20:39:39.08ID:???
>>748
コールバックが呼ばれた時にはコールバックの外の処理は終了済み
コールバック内に後続する処理を全部書く手もあるけど
今時は見た目と実行順が一致するのでPromiseでラップしてasync/awaitする
https://jsfiddle.net/ny2px8ma/
0755Name_Not_Found
垢版 |
2019/02/13(水) 21:05:21.29ID:fSf4Noft
>>754
うわあああああ!!
>コールバック内に後続する処理を全部書く手もあるけど
これを避けたかったのも汲んで頂き、感激です;;
ありがとうございました!!!
0756Name_Not_Found
垢版 |
2019/02/13(水) 21:22:33.36ID:???
>>754
jQueryってasync/awaitとも連携できるんだな
0757Name_Not_Found
垢版 |
2019/02/13(水) 21:45:55.77ID:???
独自仕様のpromiseというかdefferedを持ってたけどver3で標準仕様のPromises/A+に合わせた。
標準のpromiseに沿ってるんだから当然awaitは効く。そうなるように作られてるんだからな。
0758Name_Not_Found
垢版 |
2019/02/13(水) 21:55:04.77ID:???
>>756,757
連携できるけどその例では連携してないでしょ
それに連携できるのはjQueryが標準に沿ってるからではなくて
標準がライブラリのためにPromiseではなくThenableを期待するようになってるから
0759Name_Not_Found
垢版 |
2019/02/13(水) 21:57:40.25ID:fSf4Noft
結局、このパターンってどうすりゃいいんだ?
待機時間以内なら返り値、それ以上ならエラーみたいに返り値で返してくれればいいのに
0760Name_Not_Found
垢版 |
2019/02/13(水) 22:01:36.03ID:???
>>757>>758
でも独自仕様でしょ
ライブラリに合わせるのはやっぱりおかしい
0761Name_Not_Found
垢版 |
2019/02/13(水) 22:05:48.64ID:???
>>758
なるほど。しかしthenableてすげー単語だなw
メリケンの国語教師(英語教師)は日本みたいに正しい英語ガーとか喚いてないんだろうか…
0762Name_Not_Found
垢版 |
2019/02/13(水) 22:26:17.25ID:???
>>761
欧米人も文法適当
fishの複数形がfishって意味不明だろ、普通にfishesにしろよってのは普通に言われている
そもそもなんでfishの複数形がfishなのかの出展がどこにもない

日本語にも山程そういう点はあるけどな
「新しい」の読み方が「あたらしい」など
※本来は「あらたしい」だけど何故かどこかでなまって「あたらしい」になった
0763Name_Not_Found
垢版 |
2019/02/13(水) 22:26:38.91ID:???
普通に言い過ぎた、すまん
0764Name_Not_Found
垢版 |
2019/02/13(水) 22:42:54.07ID:???
>>761
ableは何にでもつくぞ
peopleにだってつくんだから
言葉って文法ではなく雰囲気だよ
0765Name_Not_Found
垢版 |
2019/02/13(水) 23:23:30.22ID:???
>>758
連携っていうのは、これの話
$('button').on('click', async function(){
普通にjQueryの引数にasyncって使えるんだなってこと
0767Name_Not_Found
垢版 |
2019/02/13(水) 23:30:34.37ID:???
>>765
うん、だからそれは連携でもなんでもないよねって言ってる
呼び出す側からしてみれば返り値を気にしない場合それがasyncな関数であろうが無かろうがこれっぽっちも関係ないのだから
0768Name_Not_Found
垢版 |
2019/02/13(水) 23:34:59.11ID:???
>>766
人間らしい→人格のある
って感じじゃね
優しさなら人の心がわかる優しさって感じ
0769Name_Not_Found
垢版 |
2019/02/13(水) 23:35:49.85ID:???
instagrammable
インスタばえ
0770Name_Not_Found
垢版 |
2019/02/13(水) 23:39:03.86ID:???
>>764
ハイエースしてクジラックスしたいとか言うもんなぁ
0771Name_Not_Found
垢版 |
2019/02/13(水) 23:40:46.53ID:???
>>>768
思ったより英語って柔軟性あるんだな
まだニュアンスはちょっとばかし分からんけど、勉強したくなったw
ありがとう!
0776Name_Not_Found
垢版 |
2019/02/13(水) 23:53:36.97ID:???
エイブラハムリンカーナブル
0777Name_Not_Found
垢版 |
2019/02/14(木) 00:14:52.96ID:tvvMvugT
ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは??
https://logtube.jp/variety/28439
【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!?
https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/
HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは?
https://youtuberhyouron.com/hikakinnensyu/
ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証!
https://mitarashi-highland.com/blog/fun/hikakin
なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
世界で最も稼ぐユーチューバー、2連覇の首位は年収17億円
https://forbesjapan.com/articles/detail/14474
ヒカルの収入が日収80万、月収2400万、年収3億と判明www
https://matomenewsxx.com/hikaru-income-8181.html
はじめしゃちょーの年収は6億?2017年は30億突破か?
https://2xmlabs.com/archives/1873
0781Name_Not_Found
垢版 |
2019/02/14(木) 01:24:04.85ID:???
>>767
要するに連携って言葉に食わなかっただけ?
そんだけなら、ぐちぐち言う必要ないでしょ?

jQueryとasyncは組み合わせて使えるって言えば満足?
0782Name_Not_Found
垢版 |
2019/02/14(木) 02:14:48.47ID:???
momentとasyncは組み合わせて使える
mathjsとasyncは組み合わせて使える
pdf.jsはasyncと組み合わせて使える
jszipはasyncと組み合わせて使える
それから…
0783Name_Not_Found
垢版 |
2019/02/14(木) 06:19:35.17ID:???
>>781
jQueryとasyncは組み合わせて使えるっていうのも同じ
>>782が示したように頓珍漢な発言
私何も分かってませんよと言いふらしてるようなものだから
恥ずかしいから控えてくれ
0784Name_Not_Found
垢版 |
2019/02/14(木) 06:51:20.07ID:AzzbEAu9
まあまあ
jQueryの詳しい話は、jQueryスレでやろう
0785Name_Not_Found
垢版 |
2019/02/14(木) 12:22:17.10ID:???
>>782
やっぱり便利だよね。
それと同じようにjQueryもasyncと組み合わせて使うと便利なんだよ
たくさんの便利の中の一つ
0786Name_Not_Found
垢版 |
2019/02/14(木) 12:47:50.00ID:???
すごいジョーダンがナイキ履いてジャンプしてる→俺もナイキ履いてジャンプしてみた→俺すごい
0787Name_Not_Found
垢版 |
2019/02/14(木) 14:44:12.50ID:???
どこぞの人がReact使っていた→俺も使ってみた→俺すごい
0788Name_Not_Found
垢版 |
2019/02/14(木) 16:37:08.42ID:???
jQueryのシェア、まだ上がり続けてるんだってな
0789Name_Not_Found
垢版 |
2019/02/14(木) 18:39:05.03ID:???
質問スレだから質問
なぜJQueryはこんなに論争を巻き起こすのですか?
0790Name_Not_Found
垢版 |
2019/02/14(木) 18:48:07.84ID:???
特定分野に置いてjQueryよりも優れている技術がある
それをすべての場合においてjQueryよりも優れていると勘違いしている人がいる
そういう人がjQueryはオワコンとか言い出したのが発端

特定分野に置いてjQueryよりも優れているのは事実だが
その特定分野が狭いという現実がある
jQueryよりも優れていると信じて疑わないので
いつも論争を巻き起こす
0791Name_Not_Found
垢版 |
2019/02/14(木) 18:48:31.55ID:???
>>789
宗教戦争
好みで言い合っているから永久に論争は終わらない
本当に議論スべきは、どういう機能・規模のサイトを作る時に、
何が必要か、どれを使うと便利かで話し合うべきだがここは質問スレなのでよそでやればいいと思う
0792Name_Not_Found
垢版 |
2019/02/14(木) 18:49:28.14ID:???
特定分野に置いてjQueryよりも優れているのは事実だが
その特定分野が狭いという現実がある

そのためどれだけ時間がたってもjQueryのシェアは増える一方
誰も脱jQueryをしてくれない。
0793Name_Not_Found
垢版 |
2019/02/14(木) 18:53:14.38ID:???
新しいサイトではjQueryを使わないって言ってる人がいるけど
実際には本当に新しいサイトなんてまずないからね。

新しいサイトを作る場合でも、大抵は前に作ったサイトをコピーして
そのサイト用に修正する。それが一番早く作れる方法だから。
0794Name_Not_Found
垢版 |
2019/02/14(木) 18:53:40.48ID:???
特定分野に置いてjQueryよりも優れている技術がある
それなのにすべての場合においてjQueryが優れていると勘違いしている人がいる
そういう人が脈絡なくjQueryが最強とスレ内容に関係なく至るところで暴れだしたのが発端

特定分野に置いてjQueryも優れているのは事実だが
その特定分野が狭いという現実がある
jQueryが最強と信じて疑わないので
いつも論争を巻き起こす
0795Name_Not_Found
垢版 |
2019/02/14(木) 18:55:58.68ID:???
>>794
人が書いた文章を意味を反対にしてパクるなよ
そんなことするからメチャクチャな内容になってるし
0796Name_Not_Found
垢版 |
2019/02/14(木) 18:56:51.76ID:???
>>789
別にjQeryが論争を巻き起こしてるわけではないです
全てをjQeryで片付けるマンとjQery絶対許さないマンのただのじゃれあい
宗教戦争なんて大層なものじゃない
0797Name_Not_Found
垢版 |
2019/02/14(木) 19:04:41.72ID:???
最近はすっかり下火になったと思います。

jQueryはオワコン説
0798Name_Not_Found
垢版 |
2019/02/14(木) 19:15:44.87ID:???
新規でWebアプリ開発はもはやjqueryはあり得んわ
0799Name_Not_Found
垢版 |
2019/02/14(木) 19:26:27.83ID:???
jQueryなんぞとっくにマスターしててヒマだから新しい概念のフレームワークなど楽しく勉強してるというのにjQueryバカは「jQuery以外不要!勉強するな!俺が勉強してないのにムキーッ」
とスレチでつっかかってくるので遊んであげてるだけ。ムダだと思うのは自由だからお前が勉強しなきゃいいだけだろってw
なーに人の勉強内容にケチつけてんのかね。もうjQueryに学ぶことなんてないよw
0800Name_Not_Found
垢版 |
2019/02/14(木) 19:42:06.58ID:???
>>798
そりゃウェブアプリに限ればそうだろうよw
殆どがウェブサイトだからな
0801Name_Not_Found
垢版 |
2019/02/14(木) 19:42:45.40ID:???
>>799
そんな話してないぞ?

jQueryはオワコンじゃなくて
両方使いましょうって話をしてる
0802Name_Not_Found
垢版 |
2019/02/14(木) 19:45:37.79ID:???
DOMを管理するライブラリ/フレームワークは基本的に共存できない。
angular react vueなどのvDOM勢からしたらそこまでしてわざわざ軒先貸してあげるメリットがまるで無い。
0803Name_Not_Found
垢版 |
2019/02/14(木) 19:48:31.74ID:???
ようするにブラウザ標準のDOM APIとフレームワークは相性が悪いわけ
DOM APIを直接(またはjQueryなどのライブラリを使って)操作することを
禁止しているから
0804Name_Not_Found
垢版 |
2019/02/14(木) 19:52:48.24ID:???
そこでweb componentsですよ!
0805Name_Not_Found
垢版 |
2019/02/14(木) 20:11:02.90ID:???
web componentsが完成すれば、コンポーネント(≒HTMLタグ)を
プログラマが作ってウェブデザイナはそのHTMLタグを使う時代になる

コンポーネントは既存のHTMLタグの機能を拡張して動きをつけたものだが
汎用的なものであるためデザインは含まない(デフォルトがある程度)
デザインはCSSでやるという今と同じ流れ

コンポーネント自体はDOM APIを使って作るだろう。

じゃあjQueryは不要になるのか?というと、コンポーネント同士の連携で使われる

CSSでコンポーネントにデザインを、jQueryでコンポーネント同士の連携を。
そこにフレームワークは登場しない
0806Name_Not_Found
垢版 |
2019/02/14(木) 20:17:18.03ID:???
つける動きがもうコンポーネント作る時点で作ってあるんだから出番ねーよw
さすがに要素の移動程度ネイティブapiでやるわwww
0807Name_Not_Found
垢版 |
2019/02/14(木) 20:19:08.86ID:???
要素の移動ってなんだ?そんな事一言も言ってないが
0808Name_Not_Found
垢版 |
2019/02/14(木) 20:19:48.89ID:???
ごめん。じゃあ何一つ用ないわ。これでいいなw
0809Name_Not_Found
垢版 |
2019/02/14(木) 20:22:45.05ID:???
コンポーネント同士の連携が残ってるだろ
0810Name_Not_Found
垢版 |
2019/02/14(木) 20:23:00.35ID:???
rubyといいjQueryといい本尊が落ちぶれた信者は大変だな。
まぁ迷惑だから出ていけ。
0813Name_Not_Found
垢版 |
2019/02/15(金) 04:21:33.82ID:0lmiqgyP
parcel+react+flow←どんなイメージ?
0814Name_Not_Found
垢版 |
2019/02/15(金) 12:53:16.21ID:???
CSSで切り欠き部分まで一杯にコンテンツを表示しているときに
対象の要素の隠れた部分、もしくは切り欠き部分のマスクを取得、計算するにはどうしたら良いでしょうか?
0815Name_Not_Found
垢版 |
2019/02/15(金) 13:52:08.54ID:qVuKiR/W
要素のonclick属性と、click()のバインドは全く別物なのでしょうか?
上書きされることはないのでしょうか
https://jsfiddle.net/0a231k9s/
0816Name_Not_Found
垢版 |
2019/02/15(金) 14:59:50.09ID:???
onclick属性
addEventListener('click', e)
jQueryのclick(e)やon('click', e)
これら3つは別物と考えてok

jQueryは内部でaddEventListener使ってるけどイベントハンドラは独自管理
0817Name_Not_Found
垢版 |
2019/02/15(金) 15:04:23.10ID:qVuKiR/W
>>816
ありがとうございます!
0819Name_Not_Found
垢版 |
2019/02/16(土) 12:43:19.57ID:sXlAHJYP
無名関数の代わりにアロー関数を使う事はありますか?
互換性とthisのバインドの違いが怖くてビビって使えない
0821Name_Not_Found
垢版 |
2019/02/16(土) 13:41:46.91ID:sXlAHJYP
>>820
ありがとうございます
使えるように勉強します
0822Name_Not_Found
垢版 |
2019/02/16(土) 16:07:30.41ID:???
むしろthisが中と外で一致するので使いまくる
0824Name_Not_Found
垢版 |
2019/02/16(土) 18:44:09.81ID:???
すいません初心者の質問です
JSでは、C言語みたいに、1つの式しか書けない所で、「i++,j」みたいに書くことで
「i++という処理だけをして、その結果を捨てて、そこに入る値としてはjを使う」
という文法ってあるんでしょうか?
ちなみにこの文法のことをC言語で正式に何と呼ぶのか分からないので
Javascriptにこれがあるかどうかもうまく調べられないという状況です
0827Name_Not_Found
垢版 |
2019/02/16(土) 19:44:46.47ID:???
カンマ演算子を好んで使う職業プログラマなんておらんだろ
関数型云々とか関係ない
0828Name_Not_Found
垢版 |
2019/02/16(土) 19:46:30.38ID:???
コンマ演算子
https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%9E%E6%BC%94%E7%AE%97%E5%AD%90

プログラミング言語 C および C++ におけるコンマ演算子(コンマえんざんし)は、
左被演算子を評価しその値を捨て、その後右被演算子を評価する演算子である。
順次演算子(じゅんじえんざんし)もしくは順次評価演算子 (sequential-evaluation operator) と
呼称されることもある[1][2][3]。JIS X3010ではコンマ演算子と表記されている。
0830Name_Not_Found
垢版 |
2019/02/16(土) 19:54:11.76ID:???
プロのグラマーってちょっとエロい
0831Name_Not_Found
垢版 |
2019/02/16(土) 19:54:13.09ID:???
プロのグラマーってちょっとエロい
0832Name_Not_Found
垢版 |
2019/02/16(土) 20:17:23.51ID:???
>>826
積極的に使うわけではないが、一つの文にしたい時には使う
0833Name_Not_Found
垢版 |
2019/02/16(土) 20:23:49.65ID:???
アロー関数の略式で使うことあるし、関数型云々は関係ないな
0834Name_Not_Found
垢版 |
2019/02/16(土) 20:43:54.26ID:???
副作用嫌う関数型主義者がA,BでAには副作用しか期待できないカンマ演算子を許すはずがない
0835Name_Not_Found
垢版 |
2019/02/16(土) 21:28:25.73ID:???
カンマ演算子を使う事が副作用のトリガーではない
0836Name_Not_Found
垢版 |
2019/02/16(土) 21:47:11.28ID:???
皆さんありがとうございます。
カンマ演算子と言うんですね。そしてjsにもあると。
大変勉強になりました。
0837Name_Not_Found
垢版 |
2019/02/16(土) 22:14:21.54ID:???
>>835
> カンマ演算子を使う事が副作用のトリガーではない

正しい。
が、A,BでAの部分で副作用を使わない場合はAの部分は全くなにもしないということ。それは単にBと書くことと同じである。
A,Bと書くということは、普通はAの部分で何か処理をさせる。
その場合その処理とは副作用以外あり得ない。
別に一般の言語では普通のことだが関数型信者は許せないのである。
0838Name_Not_Found
垢版 |
2019/02/16(土) 22:18:42.25ID:???
>>837
> その場合その処理とは副作用以外あり得ない。
なぜ?
0839Name_Not_Found
垢版 |
2019/02/16(土) 22:26:53.33ID:???
>>837
> が、A,BでAの部分で副作用を使わない場合はAの部分は全くなにもしないということ。それは単にBと書くことと同じである。

「副作用を伴わない=何もしない」って本気でそう思ってるのか...
返り値に影響する処理なら何もしてないわけではないだろうに
0840Name_Not_Found
垢版 |
2019/02/16(土) 22:39:04.01ID:???
A,BでAが帰り値に影響を与えるということは、すなわちAの部分は副作用を持つ。よく考えてみるんだな。
例:
var a;
var b = (a = 1, a + 2);

悪いとは言ってない。普通だ。
これを悪いと考えるのが関数型信者なのだ。
0841Name_Not_Found
垢版 |
2019/02/16(土) 22:50:31.02ID:???
副作用を伴わない関数↓
const nosf = n => n * 2;
const unko = (nosf(3), 10);
nosf(3)の唯一の成果は捨てられる。
=意味がない
=const unko = 10;と書くのと一緒
=何もしないのと一緒

副作用を伴う関数↓
const sf = n => {console.log(n);};
const unko = (sf(3), 10);
単にconst unko = 10;と書くのとは違い、3がコンソールに出力される。
=意味がある。そして副作用でもある。

A, Bと書くとき、Aに期待できるのは副作用のみである。

だからなんだ?なんでもない。ただそれが関数型信者は許せないのである。
0842Name_Not_Found
垢版 |
2019/02/16(土) 22:59:31.45ID:???
CPUに計算はさせてんじゃん。捨てられる無駄な計算をw
0843Name_Not_Found
垢版 |
2019/02/16(土) 23:00:53.56ID:???
>>840
やはり、ロジックがおかしい
再考を推奨する
[1,2,3].map(v => (v += 2, v * v)); // [9, 16, 25]

>>841
変数名からして汚いコードだな...
0844Name_Not_Found
垢版 |
2019/02/16(土) 23:07:20.22ID:???
>>843
オーケーオーケー、つまりあなたは
v += 2
の部分が副作用じゃないと言いたいんだな?
そっかぁそうだったのかぁ…
やっぱりwikipediaは信用できないなぁw

https://ja.m.wikipedia.org/wiki/副作用_(プログラム)
プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。
0845Name_Not_Found
垢版 |
2019/02/16(土) 23:12:41.93ID:???
副作用が何かも知らないやつが突っかかってんのか
知らないなら黙ってりゃいいのに
0847Name_Not_Found
垢版 |
2019/02/16(土) 23:21:48.35ID:???
>>844
君の出したところによると、参照透過性の満たすべき条件は、

1. 同じ条件を与えれば必ず同じ結果が得られる
2. 他のいかなる機能の結果にも影響を与えない

なわけだが、

[1,2,3].map(v => (v += 2, v * v));

は副作用があって、

[1,2,3].map(v => { const x = v + 2; return x * x; });

は副作用がない、といいたいのだな?
どちらも、1,2の条件を満たしており、他のいかなるスコープの変数にも影響を与えないとしても、前者は副作用があるのだな?
0848Name_Not_Found
垢版 |
2019/02/16(土) 23:25:03.72ID:???
>>847
A, Bと書くとき、Aに期待できるのは副作用のみである。

何か文句ありますか?以上。
0849Name_Not_Found
垢版 |
2019/02/16(土) 23:27:43.70ID:???
>>848
副作用がないコードは既に説明した、といっておこう
0850Name_Not_Found
垢版 |
2019/02/16(土) 23:32:15.92ID:???
>>848
はい。文句あります。

a=foo(),b=bar(a),c=baz(b)
0851Name_Not_Found
垢版 |
2019/02/16(土) 23:36:15.55ID:???
どこが文句?副作用大好きなんだねとしか...
0852Name_Not_Found
垢版 |
2019/02/16(土) 23:37:15.15ID:???
>>844
偉そうな物言いは「破壊的代入」で説明されている部分を理解してからにしてくれませんかね
0853Name_Not_Found
垢版 |
2019/02/16(土) 23:43:20.30ID:???
>>851
副作用というのは、関数(>>850でいうfoo, bar, baz)の
戻り値以外に影響を与えることなので、>>850には副作用はありません

純粋関数型言語Heskellの例
https://qiita.com/7shi/items/145f1234f8ec2af923ef
> a = 1
> b = 2
> c = a + b
>
> main = do
> print c

カンマ演算子を使うと
a=1, b=2, c=a+b
となる。ここに副作用はない
0854Name_Not_Found
垢版 |
2019/02/16(土) 23:44:13.78ID:???
ちなみに>>850を副作用なしで書くとこうなる。
const c = baz(bar(foo()));

tc39で議論されてるパイプラインオペレータが入ると将来こうも書ける。
const c = foo() |> bar |> baz;

まあfoo, bar, bazの中で副作用使ってるかどうかまでは関知しないが。
0855Name_Not_Found
垢版 |
2019/02/16(土) 23:45:57.18ID:???
> ちなみに>>850を副作用なしで書くとこうなる。
> const c = baz(bar(foo()));

ぷぷぷw

あれあれ?もしかして変数に代入したら
それは副作用だって思ってんの?
0856Name_Not_Found
垢版 |
2019/02/16(土) 23:46:26.59ID:???
「変数代入=副作用有」はネタじゃなくて本気だったんだな…
0857Name_Not_Found
垢版 |
2019/02/16(土) 23:47:33.92ID:???
ミュータブルと副作用の違いもわかってないっぽいし、律儀につき合うこともないと思うが…みんな真面目だな
0858Name_Not_Found
垢版 |
2019/02/16(土) 23:51:44.85ID:???
以下の3つはどれも全く同じ処理をしており副作用はありません。
これぐらいみんなわかりますよ?

function func() {
 return baz(bar(foo()));
}

function func() {
 const a = foo();
 const b = bar(a);
 const c = baz(b);
 return c;
}

function func() {
 const a = foo(), b = bar(a), c = baz(b);
 return c;
}
0859Name_Not_Found
垢版 |
2019/02/16(土) 23:53:03.84ID:???
ミュータブル以前の問題で「代表的な例は変数への値の代入」の説明を見て、反射的に脳内回路が出来上がっただけじゃないかね
説明の一部分だけ読んで早合点するやつは、最近珍しくない
0860Name_Not_Found
垢版 |
2019/02/16(土) 23:55:16.16ID:j33hsCXu
>>857
いや真面目なんじゃなくて
遊んでるだけだと思うw
0861Name_Not_Found
垢版 |
2019/02/16(土) 23:56:03.71ID:???
>>853の挙げているHaskellのコード
> a = 1
> b = 2
> c = a + b
>
> main = do
> print c
をあえてJavaScriptで同等に書くとこうなる。
const a = 1;
const b = 2;
const c = a + b;
console.log(c);

カンマ演算子を使った
a=1, b=2, c=a+b
の場合は、
a=1
b=2
c=a+b
の3expressionすべて副作用を持つ。
これは、a, b, cの各変数をvarで宣言済みか、letで宣言済みか、あるいは宣言なしのグローバルかに関わらず、である。
0862Name_Not_Found
垢版 |
2019/02/16(土) 23:56:41.52ID:???
>>859
そんな高度(?)なこと考えてないよ。
単に A, B で Aの部分で代入ができることに気づいてないマヌケってだけ

C言語のカンマ演算子の代表的な使い方であるfor文の初期化式でも代入してるのになぁ
for(int a=1, b=2, i=0, i < 10; i++)
0863Name_Not_Found
垢版 |
2019/02/16(土) 23:57:27.20ID:???
>>861
> の3expressionすべて副作用を持つ。

じゃあ、副作用の内容を言ってください
0865Name_Not_Found
垢版 |
2019/02/16(土) 23:58:35.96ID:???
だから代入は副作用だって。
JSは副作用書けるしよく使うというだけの話だろ
0866Name_Not_Found
垢版 |
2019/02/16(土) 23:59:17.76ID:???
> だから代入は副作用だって

それだと純粋関数型言語であるHeskellにある代入(正確には束縛)
をどう説明すんの?
0867Name_Not_Found
垢版 |
2019/02/17(日) 00:00:20.87ID:???
>>866
自分で書いてんじゃん。
Haskellに代入はない。束縛のみ。
0868Name_Not_Found
垢版 |
2019/02/17(日) 00:01:32.78ID:???
const a=1, b=2, c=3 って書いたら
ちゃんとbもcもconstになるな。

ってことは
> const a = foo(), b = bar(a), c = baz(b);
は再代入できないから完全に副作用なしだ
0870Name_Not_Found
垢版 |
2019/02/17(日) 00:02:01.52ID:???
>>867
今は束縛かどうかじゃなくて、副作用があるかどうかです。

で、副作用あんの?
0872Name_Not_Found
垢版 |
2019/02/17(日) 00:02:44.40ID:???
JavaScrptのconstへの代入は
値を変更できないから束縛相当になるよ

つまりこれは完全に副作用がないということ
> const a = foo(), b = bar(a), c = baz(b);
0874Name_Not_Found
垢版 |
2019/02/17(日) 00:03:23.31ID:???
カンマ演算子使うことと、副作用にはな〜んも関係ないってこったな
0875Name_Not_Found
垢版 |
2019/02/17(日) 00:04:14.07ID:TDJ/uZqY
日本語wikiだと
> 代表的な例は変数への値の代入である。
ってだけなのでちと分かりづらい

英語だと
> said to have a side effect if it modifies some state variable value(s) outside its local environment
とか
> Example side effects include modifying a non-local variable, modifying a static local variable, modifying a mutable argument passed by reference, performing I/O or calling other side-effect functions.
とかあって分かりやすいね
0876Name_Not_Found
垢版 |
2019/02/17(日) 00:04:27.03ID:???
結論としてはこれ

> 単に A, B で Aの部分で代入ができることに気づいてないマヌケってだけ
0878Name_Not_Found
垢版 |
2019/02/17(日) 00:05:20.43ID:???
constへの代入なら副作用はない

> const a = foo(), b = bar(a), c = baz(b);
0879Name_Not_Found
垢版 |
2019/02/17(日) 00:05:20.95ID:???
>>862
> for(int a=1, b=2, i=0, i < 10; i++)
C言語は知らないが、JavaScriptでは int を let に直したとして、カンマ演算子ではないぞ
0882Name_Not_Found
垢版 |
2019/02/17(日) 00:07:22.10ID:???
変数宣言時が特別扱いなんでしょ?
0884Name_Not_Found
垢版 |
2019/02/17(日) 00:12:44.56ID:???
じゃ[1,2,3].map(v => (v += 2, v * v));
も、[1,2,3].map(v => (const w = v + 2, w * w));って書けばいいな!
あ、あれ?(TдT)
0887Name_Not_Found
垢版 |
2019/02/17(日) 00:18:15.34ID:???
変数も代入も言語ごとに原理が異なるわけで、一律に「代入=副作用有」と考えるのが間違いの元
0888Name_Not_Found
垢版 |
2019/02/17(日) 00:25:09.05ID:???
>>885
for(Expression; Expression; Expression)Statement

12.16 Comma Operator ( , )
Syntax
Expression:
 AssignmentExpression
 Expression, AssignmentExpression

forのExpressionにはカンマ演算子が使えることを確認しました。
やはりカンマ演算子ですね
0889Name_Not_Found
垢版 |
2019/02/17(日) 00:25:20.81ID:???
function plus(a){
return b => a + b;
}

function square(n) {
return n * n;
}

function compose(...fs) {
return x => fs.reduce((y, f) => f(y), x);
}

[1, 2, 3].map(compose(plus, square));

うん、これで解決だな!
0890Name_Not_Found
垢版 |
2019/02/17(日) 00:26:13.68ID:???
[1,2,3].map(v => (v += 2, v * v));
最初のイテレーションで仮引数vに1が代入されたのち、v += 2することが副作用かどうかと、
それが副作用でも関数外に漏らしてないから問題ないのとは別の話では?
0891Name_Not_Found
垢版 |
2019/02/17(日) 00:29:32.27ID:???
だーかーら、マヌケってだけだろー

(>>848より)
> A, Bと書くとき、Aに期待できるのは副作用のみである。

↑に対して
単に A, B で Aの部分で代入ができることに気づいてないマヌケってだけ
0894Name_Not_Found
垢版 |
2019/02/17(日) 00:31:56.14ID:???
>>888
> for(var VariableDeclarationList;Expressionopt;Expressionopt)Statement

ここは読んだか?
Expression の中に VariableStatement があったか?
VariableStatement の中に Comma Operator があったか?
0895Name_Not_Found
垢版 |
2019/02/17(日) 00:32:41.29ID:???
結局[1,2,3].map(v => (v += 2, v * v));のv += 2は副作用なの副作用じゃないの?あくしろ
0896Name_Not_Found
垢版 |
2019/02/17(日) 00:32:53.83ID:???
>>891
「代入=副作用」の認識だから、代入出来る事に気が付いても副作用で使えないと思ってるんだろ
0897Name_Not_Found
垢版 |
2019/02/17(日) 00:33:52.74ID:???
>>889
最後のplusじゃなくてplus(2)の間違い。すまんこ
0898Name_Not_Found
垢版 |
2019/02/17(日) 00:34:14.04ID:???
やっぱり変数宣言は特別なんじゃん
さっき勉強してから書けとか言ったやつ出てこいよ
0899Name_Not_Found
垢版 |
2019/02/17(日) 00:35:24.38ID:???
>>888
そもそも、その Expression だと
for (i = 0, j = 9; i <= 9; i++, j--) になるでしょ?
"var" という文字はどこから出てきたの?
0900Name_Not_Found
垢版 |
2019/02/17(日) 00:36:46.17ID:???
で結局[1,2,3].map(v => (v += 2, v * v));のv += 2は副作用なの?副作用じゃないの!!??
0902Name_Not_Found
垢版 |
2019/02/17(日) 00:38:45.87ID:???
>>894
> VariableStatement の中に Comma Operator があったか?

ないから、VariableStatement ではないということ
0903Name_Not_Found
垢版 |
2019/02/17(日) 00:41:22.56ID:???
>>900
代入は副作用ではない
再代入は副作用である

再代入を避けて代入だけにすれば
副作用はない
0904Name_Not_Found
垢版 |
2019/02/17(日) 00:42:09.09ID:???
>>901
悪いけど以下の(ア)に入るのは1か2か答えてくれる?1か2の一文字書くだけだから出来るよね?
[1,2,3].map(v => (v += 2, v * v));
のv += 2は(ア)である
1. 副作用である
2. 副作用ではない
0905Name_Not_Found
垢版 |
2019/02/17(日) 00:42:25.07ID:???
>>902
その一文に対しては「VariableStatement のカンマはカンマ演算子ではない」が正しい
君の一文を証明する事実は「Expression の中に VariableStatement がない」
従って、>>888の論理は成立しない
0906Name_Not_Found
垢版 |
2019/02/17(日) 00:42:55.45ID:???
やっぱり変数宣言は特別なんじゃん
さっき勉強してから書けとか言ったやつ出てこいよ
0907Name_Not_Found
垢版 |
2019/02/17(日) 00:44:40.52ID:???
>>904
Wikipediaの2つの成立条件を考えれば、2. は迷惑だろ
0908907
垢版 |
2019/02/17(日) 00:45:33.97ID:???
× 2. は迷惑だろ
〇 2. であることは明白だろ
0909Name_Not_Found
垢版 |
2019/02/17(日) 00:49:31.08ID:???
>>907>>908なるほどありがとう!
ではJavaScript質問スレ民の総意として、
[1,2,3].map(v => (v += 2, v * v));
のv += 2は副作用ではない。
と決定しました!
めでたい。早速Haskellスレに貼ってくりゅ!
0910Name_Not_Found
垢版 |
2019/02/17(日) 00:50:06.25ID:???
>>904
だから"再"代入だから副作用だっていってるだろ
それに対して、代入すべて副作用だって言ってるバカが居るから
一回しか行わない代入(つまりconstが使える場合)は
副作用じゃないって話をしてるんだが

その説明をしないと、お前がバカになりそうだからな
(代入は副作用っていったーって騒ぎまくりそうだからw)
0911Name_Not_Found
垢版 |
2019/02/17(日) 00:51:57.37ID:???
Numberで(値渡しで)考えるからおかしくなる
const xs = [[1], [2], [3]];
console.log(xs);
const ys = xs.map(v => (v[v.length] = 2, v.concat(v)));
console.log(xs);

これでわかるだろ
0915Name_Not_Found
垢版 |
2019/02/17(日) 00:56:14.01ID:???
>>911
v[v.length] =2よりv[0] +=2にするべきだったな、ごめん
0916Name_Not_Found
垢版 |
2019/02/17(日) 00:56:44.24ID:???
>>910
では、再代入が副作用の性質を持っている事を証明する実証コードを書いてくれ
0917Name_Not_Found
垢版 |
2019/02/17(日) 01:08:08.14ID:???
逆。副作用とは何を意味するか?の答えの一つが"再"代入
0918Name_Not_Found
垢版 |
2019/02/17(日) 01:09:03.51ID:???
定義なんだから実証コードなんてありゃしない
0919Name_Not_Found
垢版 |
2019/02/17(日) 01:09:15.39ID:???
>>917
うん。再代入しても副作用の性質が現われてないよね。
0920Name_Not_Found
垢版 |
2019/02/17(日) 01:10:45.31ID:???
>>911
それは「参照の値渡し」のことだな
オブジェクトのプロパティ操作が問題で再代入は関係ない
0921Name_Not_Found
垢版 |
2019/02/17(日) 01:14:20.92ID:???
>>919
関数の中では副作用の性質が現れてる。
関数を抜けると消えるってだけ
0922Name_Not_Found
垢版 |
2019/02/17(日) 01:16:50.17ID:???
>>921
で、それはどんな仕組み?
ガベージコレクションのことをいってるの?
0923Name_Not_Found
垢版 |
2019/02/17(日) 01:17:03.59ID:???
この質問者置いてけぼりでズレた議論かますのいかにもここの住人ぽいな
0925Name_Not_Found
垢版 |
2019/02/17(日) 01:19:37.00ID:???
「2. 他のいかなる機能の結果にも影響を与えない」の意味を理解しようともしないで、「代入=副作用」で思考停止しているだけ
0926Name_Not_Found
垢版 |
2019/02/17(日) 01:20:24.94ID:???
>>924
ローカル変数は内部変数なので、「2. 他のいかなる機能の結果にも影響を与えない」
0927Name_Not_Found
垢版 |
2019/02/17(日) 01:22:01.06ID:???
>>926
だから関数の外部には影響がないが、
内部(関数の中)では影響が出てるって>>921で書いたろ
お前俺のレスに周回遅れしてるぞ
0928Name_Not_Found
垢版 |
2019/02/17(日) 01:23:21.39ID:???
>>927
内部的動作なら副作用はない、って何度もいってる
0929Name_Not_Found
垢版 |
2019/02/17(日) 01:24:39.82ID:???
>>928
だから内部では影響出てるって言ってる
省略するんな
0930Name_Not_Found
垢版 |
2019/02/17(日) 01:25:15.18ID:???
>>929
だから、その動作は副作用ではないって何度もいってる
定義を妄想すんな
0931Name_Not_Found
垢版 |
2019/02/17(日) 01:26:39.35ID:???
> だから、その動作は副作用ではないって何度もいってる

その根拠は?何処かで誰かがそう言ってるの?
0933Name_Not_Found
垢版 |
2019/02/17(日) 01:28:28.54ID:???
[1,2,3].map(v => (v += 2, v * v));
最初のイテレーションで仮引数vに1が代入されたのち、v += 2することが副作用かどうかと、
それが副作用でも関数外に漏らしてないから問題ないのとは別の話では?

ちなみに>>907>>908のお陰で
[1,2,3].map(v => (v += 2, v * v));
のv += 2は副作用ではない。
と決定しました! 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0934Name_Not_Found
垢版 |
2019/02/17(日) 01:30:06.86ID:???
>>932
> プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、
> それ以降で得られる結果に影響を与えることをいう。代表的な例は変数への値の代入である。

って書いてますね。これが答えですね。
0935Name_Not_Found
垢版 |
2019/02/17(日) 01:31:06.98ID:???
誰かさんって>>847のことだな。
しれっと>>844が持ち出したことにしてるけど>>844そんなとこ触れてないw
0936Name_Not_Found
垢版 |
2019/02/17(日) 01:32:27.27ID:???
>>934
さすがwikipediaウソばっかり!信用できないな!
0937Name_Not_Found
垢版 |
2019/02/17(日) 01:36:17.95ID:???
>>934
だから、それは後ろの方に書いてある破壊的代入のことじゃないのか?
しかも、その一文だと再代入どころか代入全てアNGと受け取れるが、再代入だけNGとしたのはどうしてなんだ?
参照代入なら分かるが、JavaScriptで他に影響がある再代入なんてないだろ?
0938Name_Not_Found
垢版 |
2019/02/17(日) 01:38:00.97ID:???
Wikipediaの件は>>875が補完してくれているのに
0939Name_Not_Found
垢版 |
2019/02/17(日) 01:39:09.43ID:???
他板まで荒らしに行くとかやべーな
一昔前は毛の壁に目を付けられてたし、jsにはそういうのを惹きつける何かがあるんだろうな
0940Name_Not_Found
垢版 |
2019/02/17(日) 01:43:07.31ID:???
>>937
あのな? 「今回の例では問題ない」は副作用じゃないことの理由にはならないんだよ

> [1,2,3].map(v => (v += 2, v * v));
これじゃなくて
v += 2 だろ?

v += 2 に副作用があるかどうかだろ?
あるんだよ。
0941847
垢版 |
2019/02/17(日) 01:45:48.23ID:???
>>935
俺はURLを貼った>>844が発端(844がWikipediaを信頼したということ)だと思っているが、誰が持ち出したかなんてどうでも良くね?
ソース提供者の名ぐらいいくらでも譲る
0943Name_Not_Found
垢版 |
2019/02/17(日) 01:48:59.73ID:???
>>875が正解だと思うけどねえ
英文アレルギーの人はこれだから困る
0944Name_Not_Found
垢版 |
2019/02/17(日) 01:56:55.57ID:???
まとめ
カンマ演算子につき、
A, Bと書くとき、Aに期待できるのは副作用のみである。
カンマ演算子が取れるのは式(Expression)のみである。
変数宣言(VariableStatement)は宣言であって式ではない。
すなわち、
const a = 1, b = 2
は変数宣言であり、
またこのカンマはカンマ演算子ではない。
[1,2,3].map(v => (v += 2, v * v));
のv += 2は仮引数vを書き換える副作用である。
カンマ演算子は式(Expression)しか取れないので、副作用なく
[1,2,3].map(v => (const w = v + 2, w * w))
などと書くことはできない。
なぜならconst w = v + 2は変数宣言(Statement)であって式(Expression)ではないからである。
カンマ演算子を使わず
[1,2,3].map(v => {
const w = v + 2;
return w * w;
})
と書いたときはどこにも副作用がない。カンマ演算子もどこにもない。
0945Name_Not_Found
垢版 |
2019/02/17(日) 01:59:02.59ID:???
まとめ

> カンマ演算子につき、
> A, Bと書くとき、Aに期待できるのは副作用のみである。
a = 1, b = a のような書き方ができるので間違い

単に A, B で Aの部分で代入ができることに気づいてないマヌケってだけ
0948Name_Not_Found
垢版 |
2019/02/17(日) 02:01:59.23ID:???
なら束縛すればいいのでは?
0949Name_Not_Found
垢版 |
2019/02/17(日) 02:02:52.92ID:???
>>945
そのカンマが(変数宣言ではなく)カンマ演算子である場合、a = 1もb = aも必ず代入であり副作用。
0950Name_Not_Found
垢版 |
2019/02/17(日) 02:03:52.20ID:???
>>948
だよな!こうすればいいんだよな!
[1,2,3].map(v => (const w = v + 2, w * w))
あ、あれ?(TдT)
0951Name_Not_Found
垢版 |
2019/02/17(日) 02:03:54.59ID:???
すげーな、スレ埋まるぞ
次スレには持ち込むなよ
0954Name_Not_Found
垢版 |
2019/02/17(日) 02:12:27.18ID:???
>>950
あなたが土屋太鳳に挿れられないように、そこには式(イケメン)しか入れられません。カンマ演算子は式しか取らないから。
宣言(お前)は挿れられません。
0956Name_Not_Found
垢版 |
2019/02/17(日) 02:18:07.28ID:???
>>834の妄想がここまでひどいとは思わなかった
0957Name_Not_Found
垢版 |
2019/02/17(日) 02:25:53.59ID:???
>>953
どれどれ?
> One common demonstration of side effect behavior is that of the assignment operator in C++.
> For example, assignment returns the right operand and has the side effect of assigning that value to a variable.

なるほど。


すぅーっ…


代入は副作用ーーーッ!!

source:
https://en.wikipedia.org/wiki/Side_effect_(computer_science)
Thanks to >>953
0958Name_Not_Found
垢版 |
2019/02/17(日) 02:26:02.20ID:???
まとめは>>953で十分だな
自分の知識の再確認だったが、日本語Wikipediaよりも確かに分かりやすかった
0959Name_Not_Found
垢版 |
2019/02/17(日) 02:27:09.97ID:???
>>957
代入が副作用なわけあるか。英語版Wikipediaも間違っている。
0960Name_Not_Found
垢版 |
2019/02/17(日) 02:28:36.22ID:???
>>957
C++の代入が副作用と言ってるだけでJavaScript代入は副作用なんかじゃないから。やっぱwikipedia信用ならない。
0961Name_Not_Found
垢版 |
2019/02/17(日) 02:30:01.22ID:???
>>957
また、脳内パーサが狂って、脊髄反射で代入全てが副作用と思い込んだな
学習しない奴だ
0962Name_Not_Found
垢版 |
2019/02/17(日) 02:32:26.72ID:???
>>959
いや、よく読めよ
>>875がポイントとなる一文を抽出してくれているだろ
Example side effects include modifying a non-local variable, modifying a static local variable, modifying a mutable argument passed by reference, performing I/O or calling other side-effect functions.[1]
0963Name_Not_Found
垢版 |
2019/02/17(日) 02:38:58.79ID:???
>>961
[1,2,3].map(v => (v += 2, v * v));
のv += 2はどっちかな?

答え:
v += 2は、
・式全体としてv + 2の評価結果を返す主作用と、
・その値をvに代入するという副作用を持つ。

式v += 2、式v * vとカンマ演算子からなる式(v += 2, v * v)は、v += 2の主作用は捨て、副作用により更新されたvの値を用いv * vの評価結果を返す。
0965953
垢版 |
2019/02/17(日) 02:45:13.15ID:???
>>957
お礼は>>875にいってくれ
俺は英語版Wikipediaを探しただけだ
いずれにしても、”in C++” が目に入らずに迷走しているようだが
0966Name_Not_Found
垢版 |
2019/02/17(日) 02:48:25.94ID:???
>>957の訳
> One common demonstration of side effect behavior is that of the assignment operator in C++.
副作用の振る舞いの一般的なデモとしては、C++の代入演算子があります。
> For example, assignment returns the right operand and has the side effect of assigning that value to a variable.
例えば代入は右オペランドを返し、かつそれと同じ値を変数に代入するという副作用を持ちます。
0967Name_Not_Found
垢版 |
2019/02/17(日) 02:50:10.97ID:???
>>966
わざわざC++って言ってるってことで気付かないか?

JavaScriptでは副作用じゃねーんだよ!!!

バーカ!w
0968Name_Not_Found
垢版 |
2019/02/17(日) 02:50:32.01ID:???
>>834の読解能力の低さがまた露呈してしまったな
0969Name_Not_Found
垢版 |
2019/02/17(日) 02:52:36.23ID:???
>>960も指摘してくれているんだけどね
この人、都合の悪いところは読み飛ばして、都合の良い部分だけ読むから、日本語でも通じないんだよね
0970Name_Not_Found
垢版 |
2019/02/17(日) 02:53:28.60ID:???
>>968
だなw
[1,2,3].map(v => (v += 2, v * v));
でv += 2の副作用なんて使ってないというのに。
C++じゃあるまいし。
0973Name_Not_Found
垢版 |
2019/02/17(日) 07:00:58.79ID:???
以上ここまで
今まで極狭義で都合のいい使い方しかしてなかったやつが
本来の意味を知って焦ってるの図でした
情報学科行けば習うことなのにね
0974Name_Not_Found
垢版 |
2019/02/17(日) 07:07:47.52ID:???
JSの場合valueOfなんかがあるから関数単位で副作用なしを保証するのは難しいんじゃないか?
0977Name_Not_Found
垢版 |
2019/02/17(日) 23:34:28.99ID:???
スレに、Ruby 禁止とか、jQuery, Lodash 禁止などを入れて、
スレ立てしてる奴は、荒らし!

そいつは他言語を理解できないから、禁止して荒らしくる

普通のプログラマーは、5言語ぐらい使えるのが普通。
荒らしは、働いてないニートだろ
0978Name_Not_Found
垢版 |
2019/02/17(日) 23:37:23.61ID:???
>>977
レス乞食はいい加減やめよう
みっともないぞ
0979Name_Not_Found
垢版 |
2019/02/17(日) 23:39:37.87ID:???
>>977
他言語を理解できないのはお前だろruby キチガイ死ね。
0980Name_Not_Found
垢版 |
2019/02/18(月) 00:43:27.95ID:???
>>977
だったらrubyスレは多言語歓迎だと宣言してよ
5言語の話題が乱れ飛ぶぐらい問題ないんでしょ
0981Name_Not_Found
垢版 |
2019/02/18(月) 05:59:47.29ID:???
んまぁモダンな俺はvue、nodeの話がしたいんだがねぇ
一応ここのレベルに合わせてるけどw
0982Name_Not_Found
垢版 |
2019/02/18(月) 09:09:50.83ID:???
それぞれスレあるんだが?w
検索もできないとは大した高レベルだことw
それとも質問スレで初心者相手にイキるのが生き甲斐のおじいちゃんかなw
0983Name_Not_Found
垢版 |
2019/02/18(月) 09:17:57.17ID:???
>>981
日本語読めない韓国人だろ
さっさと国へ帰れよ
0984Name_Not_Found
垢版 |
2019/02/18(月) 09:19:21.69ID:???
>>982
>>983
バカコーダーがイキっててワロタ
生JavaScriptを一生書いてろよレガシージジイ
0985Name_Not_Found
垢版 |
2019/02/18(月) 10:06:35.98ID:???
おじいちゃん「ジジイ!」

口の汚いおじいちゃんだことw
0986Name_Not_Found
垢版 |
2019/02/18(月) 12:44:38.26ID:???
>>984
専用スレで語れ、は正論だと思うがな
0987Name_Not_Found
垢版 |
2019/02/18(月) 12:49:18.25ID:???
質問スレは特定のライブラリやフレームワークの布教スレじゃないのに
まるで前提条件であるかの様に回答する奴が居るから困ってるんだけど
0988Name_Not_Found
垢版 |
2019/02/18(月) 13:03:20.86ID:???
>>987
無視が一番だが、質問者が反応してしまうから、そこに齟齬があると反応せざるを得ない奴だな
0994Name_Not_Found
垢版 |
2019/03/25(月) 18:46:05.58ID:???
最近jsをやり始めたんだが、メモ帳でhtml,cssが動くのに驚いていたらjavascriptもできて感動してる。
0995Name_Not_Found
垢版 |
2019/03/25(月) 18:47:08.73ID:???
ideいらないじゃん?
これってメモ帳がすごいのかjavascriptがすごいのかもうわからない。
0997Name_Not_Found
垢版 |
2019/03/25(月) 20:58:53.47ID:???
テキストエディタの存在を知らない世代
0998Name_Not_Found
垢版 |
2019/03/25(月) 22:55:50.05ID:???
>>996
IDEがプログラムを実行してると勘違いしてる
0999Name_Not_Found
垢版 |
2019/03/25(月) 23:21:10.53ID:???
さっぱりわからん
メモ帳でhtmlやcssが動くとかjavascriptができるってどういう意味だ?
ソースを編集できるっていう意味か?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 78日 3時間 18分 24秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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