JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
※前スレ
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured ワッチョイとは
BBS_SLIP
http://info.2ch.net/index.php/BBS_SLIP
スレ立て主が設定する事で、レスした人のIPアドレスからIDを変換して名前欄の横に表示が出ます。
荒らし対策という名目で広がったのですが、一言でいえば強制固定ハンドルネームのようなものです。
中段あたりに解説がありますが、浪人という名前の有料専用ブラウザを導入すれば、ワッチョイ表示なしで書き込む事も出来るようになります。
●注意点
ワッチョイ(SLIP)の変換は全板共通です。
IPアドレスから特定の法則で文字列に変換しているだけなので、IPアドレスが変わらない限り全部同じになります。
ですので、漫画板のワッチョイスレで○○かわえー、なんてレスした後、他のお硬い板のワッチョイスレで大議論になったり
なんかしてて議論相手にあなたのワッチョイのIDググられれば普通に他の板の書き込みがヒットします、
全く関係ないスレで別のスレの恥ずかしいレスを相手に突っ込まれたりする可能性があったりします。
これらを自覚してレスをしていないと、あるスレで下の名前をレスして、別の板のスレで苗字をレスして、
と...実は自分から身バレをしていたという可能性も無い訳ではありません。何万人もレスしてますからね、誰かがそういうポカをする事だってあり得ます。
変換自体は一週間でまた変わるので一生同じIDという訳ではないですが、注意しなければならないのはIPアドレスそれ自体が表示されているSLIPスレ。
IPアドレスは固定アドレスにしない限り変動すると思いがちですが、今は変動アドレスでも
殆ど固定と変わらない事が多いのです。下手をすればプロバイダ解約するまで同じIPアドレス。
IPアドレス表示されるスレに一度でもレスすれば、ワッチョイ=IPアドレスの関係がバレてしまうので
他のワッチョイスレでもIP表示で書き込んでる事と実質同じになってしまいます。
2週に渡ってIPアドレス表示のスレに書き込めば、ワッチョイIDは変わってますがIPは同じなので週を
跨いでも同じ人というのがバレますね。同じIPの過去のワッチョイIDをググればいくらでも過去に遡れる事になります。 掲示板を見れば閲覧者のIPアドレスは管理者にわかるので日常的に第三者に渡っている情報ですが、
2chのレスでIPが残る(Googleの検索に引っ掛かる)となると少し意味が違ってきます。
IPアドレスからは接続地域と回線種類くらいしかわかりません。それぞれが情報を持っていても
外に開示している情報ではないので個々の情報では価値が薄いのですが、2chにレスがあれば情報を共有できます。一つ一つは薄い情報でも繋げれば意味が出てきます。
また、IPアドレスと本名住所を元々知っている相手にはどうでしょうか?
まず普通に家族が家のIPをググったら2chのレスを見られますね。
あなたの2chの書き込みが全てわかる訳です。趣味嗜好、悩み等を書き込んでいれば筒抜け。
あなたの知り合いがふざけてこのIPの奴○○って奴だよ、と書き込む事だってあるかもしれません。
例えば本名IP掴んでる通販業者が2chググってレス見て病気で悩んでいたのが知れたらその情報を心霊治療の業者に流されたりする可能性だってあります。
まぁそういう可能性も無いとは言えないのでIP表示のスレだけは気をつけて下さい。
先にその危険性を知っていればレスの内容も気をつけるでしょうけど、現状はその危険性をそもそも全く知らずに呑気に匿名だと思ってレスしている人が大半なのです。
テンプレここまで
-----------------------------------------------
■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。
-----ここまでテンプレ-----
テンプレは >>1,5,6,8,9,11,12 および本レス テンプレは ID:82yaJsi70 投下分です。
見れば分かりますが荒らしが常駐しておりますのでご注意下さい。
Web上の画像からMD5ハッシュを作りたい。
PHPでは
$file = ';
echo md5_file($file);
結果:ccfc83e6c92e7571f266215458776bbf
こんな感じで作れるのだが、javaScriptでの作り方がわからない 文字列中にバックスラッシュをエスケープせずに記述したくてString.rawを使ったのですが、
\ + 数字が含まれていると8進数に解釈しようとするのか Octal literal in strict mode という
エラーになります。
module.exports = {
path: String.raw`C:\Data\123`,
};
8進数に解釈しようとするのを回避する方法ってないんですかね?
なるほど、ありがとうございます。解決できのは早くてES2018ですか。
TypeScriptでさっさと取り込んでくれないかなぁ。
const F = function fun() {
this.age = 1;
};
F.prototype.getage = function getage() {
'use strict';
console.log(this.age);
};
const f = new F();
f.getage(); // 1
const F = () => {
this.age = 1;
};
F.prototype.getage = function getage() {
'use strict';
console.log(this.age);
};
const f = new F();
f.getage();
これはTypeError: Cannot set property 'getage' of undefined
const F = () => {
this.age = 1;
};
F.prototype.getage = () => {
'use strict';
console.log(this.age);
};
const f = new F();
f.getage();
これもTypeError: Cannot set property 'getage' of undefined
const F = function F() {
this.age = 1;
};
F.prototype.getage = () => {
'use strict';
console.log(this.age);
};
const f = new F();
f.getage(); // undefined
インスタンス化したときじゃなくアロー使った時点でthisが束縛されてるから
generator-chrome-extension-kickstart を使ってchrome-extension作っているんです。
これ自体はすごく便利なんですが修正するたびにコンパイルが入ってリロードするため、
chromeが「この拡張機能は、自身により頻繁に再読み込みされています。」と、
開発中のプラグインを無効化してしまいます。
これが面倒なので警告を無効化する方法を教えていただけないでしょうか?
>>32
理解しました
function()を無理にアロー演算子に書き換える必要はなさそうですね
先輩ありがとうございます >>35
アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い 関数型の流れを組んでるからとか、どうしたらそんな頭の悪いこと思いつくんだ?
そもそもオブジェクト指向と相性悪いと言うこともないし。
ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
オブジェクト指向はプロトタイプベースでも、別のクラスベースもどきでもいくらでもできる。
関数型っていうのは、ロジックを記述するもの。
オブジェクト指向っていうのは、そのロジックを持った構造を作るもの
住み分けがしっかりしてるから、オブジェクト指向+関数型で
プログラミングするのが今のトレンド
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
それは違う。逆にクラスベースのJavaScriptと相性がいい。
例えばこんな感じな
class Foo {
func() {
lib.sort(function() { thisはなんになる? })
lib.sort(() => { thisは当然Fooのインスタンス })
}
}
今まではthisが何になるかは、lib.sort() の仕様によって決まるから、
他の言語のように
「クラスの中のコードでthisといったらインスタンス自身に決まってるだろJK」
と言うことができなかった。
アロー関数を使って(言い換えるとfunctionキーワードなしで)JavaScriptをかけば
クラスの中でthisを使えば、どこで使ってもそのクラスのインスタンスとなり、
他の言語と同じように考えることができる。 >>40
そこは本質的なところじゃない自分でかってに補完しろ >>39
屁理屈だな
メソッドにできないということが表の相性とすればそれは裏の相性だよ >>42
それは↓に言うべきことだね
>>37
> ただ単に既存のthisを利用したクラスベースもどきクラスシステムと相性悪いというだけで、
相性悪いが裏の相性(?)ということなら、>>39が書いたとおり相性が良いってことだろう。
それにそういうどうでもいいことしか言えないってことは、
>>39の内容には何も意見できないってみなすしかないねw ブラウザさえあれば入門出来るから、いろんな人はいるだろね。
>>43
だからさあ、本当に言わないと分かんない?
コンテキストが違うでしょ?
そこまでずっとアロー関数を通常の関数のようにメソッドとして使えないという話をしてて、
その流れでの相性の話題なのよ
そしてそこでは君の言ったことは、(もっと広い視野で見て)「オブジェクト指向とは相性悪くない」
に含まれるのよ
君は数レスどころか1レスもまともに読めてない
あまりに視野が狭すぎだよ >>47
頭悪いぞお前、コンテキストは>>36のアウアウな発言
>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い
functionはOOスタイルプログラミングでクソって書いてあるのに
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
Until arrow functions, every new function defined its own this value (a new object in the case of a constructor,
undefined in strict mode function calls, the context object if the function is called as an "object method", etc.).
This proved to be annoying with an object-oriented style of programming. >>48
だからそれに君と同じように批判してるのが>>37だっていう話をしてるんだが
オブジェクト指向とは相性悪くないってはっきり言ってるでしょ
頭大丈夫か? オブジェクトを理解できていないのがドヤ顔でなんか言ってるわw
constとfreezeがデフォルトになる時代を待ってます
2020くらいまでにおねしゃす
>>47
お前が言ってるのは、オブジェクト指向との相性じゃなくて、
古いやり方、prototypeを使ってメソッドを追加する時限定の話じゃん。
オブジェクト指向の話でいうならば、お前が狭いんだよ。 >>52
だから最初からその狭い範囲限定で話をしてるでしょ
で、広い範囲では違うよと書いてるでしょ
レスをちゃんと読めって言ってるのよ……
まだ分かんない? >>53
>アローは関数型プログラミングの流れを汲んでるから今回みたくオブジェクト指向で使おうとすると相性悪い
これは狭い範囲に限定した発言じゃ無いと思うが
そんな必死になってこのアウアウを擁護する理由は? >>53
だからこうですよね?
限定した狭い意味
「アローはprotptypeを使ってメソッドを作成するときには使えない」
大幅に範囲拡大した場合
「アローはオブジェクト指向で使おうとすると相性が悪い」
※注意 オブジェクト指向でアロー関数が相性がいい理由は上で説明済みです メソッドを作成するときに直接使えないよりも
メソッド中で別の関数を定義するときに便利な時があるという方が
よっぽど視野が狭いんだよなぁ
オブジェクト指向と相性が良い!とか笑える
視野が狭い 笑い
>>56
> This proved to be annoying with an object-oriented style of programming.
こう言ってアロー関数の動作を変更した奴に言え javascriptの勉強する時ってフロントエンドやるよりnodeから始めた方が良いの?
今時はフロントエンドでもnpm使うから明確な区切りはないかと。
いきなりtypescriptオススメ。
補完効くからめっちゃ捗る。
typescriptの補完はjavascriptの補完として使うことも出来ますか?
ternjsでライブラリなどの補完がしたいんですが対応してないみたいで
javascriptでaddEventListenerによりイベント登録したときって実際どこに登録されてるの?
例えばpにclickを登録してconsole.dirしてみてもどこにも何か登録されたような状況が見当たりません・・・
参照する手段がないだけでP要素自身に紐付けられてる
EventEmitterだと登録済みのリスナー関数を取得できたりする
イベントリスナ関数に適当な引数セットして関数内で引数をdirしてみたら
なんとなくイベントオブジェクト?的なものを見られましたわ
>>63
ありがうございました >>65
なにこれすごい便利
ありがとうございます! <form name="form_gp">
<input type="text" name="form_name">
</form>
document.forms["form_gp"].elements["form_name"]という書き方で
フォームが存在しているかどうかを調べることはできますか?
IDをつけてgetelementbyIDとかいうのを使わないとダメですか?
できたらそうやればいいんですか?
プログラム板のこのスレよりも、
web制作管理板の、JavaScriptのスレに書き込んだ方がいい
あっちの方が、人が多い
>>67
<form name="form_gp"> が増えないのなら、そのコードは期待通りに動作するが、増えることも考慮すると、for文で繰り返し処理する方が安全
idなら <form id="form_gp"> が増やせない(一応、増えても期待通りに動作する)
というわけで役割が違うので、比較対象にならない
とはいえ、id, class があれば、nameを積極的に使う理由がないのも確か
古いAPIなので、今では(初心者を除いて)ほとんど見ない書き方だな
古いAPIだからいけないわけでもないし、「新しいAPIだから」とか「トレンドだから」等の非合理的な理由で決めるべきものでもないが >>70
不使用を推奨されているのはその辺が分かりにくい(一貫性がない)からでしょ。
例えばそのURL内(すぐ下のNote内)
> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
オイオイ!
JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。
>>67
ただ、その手の「○○はどっちを選ぶべきですか?」という質問については、
とりあえずどこか君から見てカッコイイサイトを探して、(2-3箇所ね)
その人達がどうしているかF12で見て、真似するのが一番いいと思うよ。
明らかにこっちの方がいいという場合はみんなそっちを使ってる。
どっちでもいい場合はばらけるけど、その場合はどっちでもいいので問題ない。
ここで聞いても「俺はこう思う」しか出てこない。デタラメを主張する奴もいるし。
67なんてきちんと訂正もして正しい回答を目指しているのでかなりまとも。
でも今の君には正直、「誰が正しいのか」を判断する目もないでしょ。
君のレベルなら多分、回答者がID制のところの方がいいと思うよ。
まあそもそも、フォームを探すこと自体が奇妙ではあるんだがね。
フォームがあったり無かったりってことがまず無い。
そういう場合は通常はdisplay:noneを使った方が効率がいいから、まともなサイトならそうしてる。
(今君が書いているコードが丸々不要になるだろ)
といっても俺はWeb屋ではないからここら辺の話は他の奴を信頼した方がいいとは思うが。 >>72
> JavaScriptから始めた人間としては、なんだこの糞仕様死ね、としか思えない。
>>67が使用しているコードでは RadioNodeList は使っていないように読めるので、それは別の話。
「他人のコードに倣っておけばOK」は参考にしたサイトがダメだと意味がないし、本当の意味で理解したとは言えないので個人的にはお勧めはしない。
客観的な評価としては、仕様書と回答内容を比較して正誤を判断するのが確実かね…。
少なくとも、模範となる信頼性の高いサイトが一つ二つないと初心者は間違いなく、はまる。 経験上、「どっちがいいですか」系の質問は「判断する目がない」もそうだが、「自分から学ぶ意志がない」がほとんどだな
自分から学ぶ意志がない質問は次のどちらかになる
- 質問文に自分の考えが皆無で回答者に判断を完全に委ねている質問
- 自分の考えがあっても、まともな基礎勉強してないことが丸分かりで、質問内容が広範、基礎から全部教えないと理解できないと思われる質問
後者は学ぶ意志はあるが、独学が苦手で熟練者に手取り足取り教えて貰う方が早いと思っているタイプ
まともな回答は豚に真珠なので、痛い目を見るまで間違い続けるのを見守るのも優しさかと思う
>>73
いや多分あの書き方だと、「一度捕まれたら名前は消えない」という仕様は、
RadioNodeList以外にも適用されてるぞ。
もっとも、同じ名前のフォームを使う場合がradioButton以外にはほぼないので、
自動脳内補完したのだとも思えるが。そもそも名前も変えないしね。
> 模範となる信頼性の高いサイトが一つ二つないと
まあ俺らはこれを提示すべきかもな。
つってもgoogleやYahooとか、いわゆる大手どころ
(Webサイトにも金を掛けて居るであろう所)
を見ればそんなに大外れはないとは思うが。
> 本当の意味で理解したとは言えないので個人的にはお勧めはしない
ちなみに俺は習うより慣れろ派。
初心者の時点ではどっちがいいなんて分からないよ。
そこで踏みとどまってしまってコードを書かないから上達しない。
だからどっちでもいいからとにかく書け、迷うなら適当に他人を参考にしろ、だね。
理想的には理解して書いた方がいいけど、それが出来る奴はあんな質問しないよ。
「どっちがいいですか」ではなく、「どこがどう違うんですか」になる。
>>74
初心者に要領を得た質問をしろというのはそもそも無理だ。
ただ一般論としては、同じようなAPIがあるのなら、とりあえず新しい方使っとけ、かな。
大体は古いのに問題があったから更新されてるもわけでね。
偶に「新しいことこそが正義」みたいな馬鹿も沸くけど、
それはここではある程度どうしようもない。 >>75
> 初心者に要領を得た質問をしろというのはそもそも無理だ。
「質問の初心者」と「JavaScriptの初心者」は等価ではないと俺は思う
そもそも、俺は要領を得た質問を求めているわけではない
(勿論、最終的にはそうなるのが理想だが)
俺が指摘しているのは「学ぶ姿勢」で受動的な学習しかしない人は伸びないのだよ
分からないなりに調べて、分からないなりに調べた結果を書いて、それで要領を得ない質問になったとしても、調べた経験は無駄にならない
回答者は質問者の知識レベルを踏まえた回答が出来るというメリットもある
それは回答を貰って「自分には難しすぎる」と匙を投げるか、出来る限り理解しようと努力するか、の違いでもある
自分から何も調べず、回答者に完璧な回答を求めて、回答を貰って満足するタイプは自分で調べる事をしないから、いつまでたっても他人に質問して問題解決を図ろうとする
そういう人は独り立ち出来ず、いつまでも「初心者」のままだ
実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ >>75
> ただ一般論としては、同じようなAPIがあるのなら、とりあえず新しい方使っとけ、かな。
対象ブラウザによっては新旧APIを併用するか、旧APIを使用する事もある
PromiseとかFetchとか、IE11で実装されてないことを踏まえれば、「とりあえず、新しいAPIを使っとけ」という判断にはならない事もあるだろう >>76
質問をするスキルか。確かに今の時代だとそれが必要なのかもしれないね。
初心者にも分かるように言うと、とにかく全部ダンプしろって事だな。
何をやろうとしていて、どこで引っかかっていて、何を迷っているか。
長文が〜っていう奴はゴミだから無視でいい。
というかやってりゃ分かるはずだけど、
MDNでも仕様書でもここの「長文」どころじゃない。
三行越えたら長文だ〜みたいな奴はプログラマに向いてない。
>>77
そういやJavaScriptはこれがあるんだった。
初心者にも分かる結論としては、
「新しめのAPIの方がいいが、新しすぎるのは駄目」ってところか。 いくら新しいAPIの知識はあっても
現状の実装をいかに把握するかだけ
これだけ
>>80
こちらも動作を確認したがそちらと同じ。
英語の仕様書も確認したが確かにそう書いてある。
しかし動作はそうなってないね。
> 一度要素が特定の名前を使用して参照されると、
> たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、
> その名前は、この方法でその要素を参照する方法として利用され続ける。
これはつまり、ブラウザ内部に名前引き用のキャッシュを持っていて、
ヒットした場合はそれを使い、ミスなら新規登録、
ノードが取り除かれる時にエントリから消し、
DOMノードの属性変更ではエントリを確認してないと言っている。
(更新はしないので一旦登録されたら名前が残ったままになる)
高速化では定番の方法だし、実際に名前を変える必要があることは無いので、
内々で使う場合の仕様としてはこれもありだろう。
ただし外面仕様として出す場合はこれは無理だ。知識的に粗結合化出来てない。
(このAPIを使う場合に例外ケースを把握してないと使えない)
だからこの仕様を外面仕様としている場合は間違いなく糞だ。
ただし、実際の動作はそうなってない。
どっちが正しいのかは俺には分からん。
仕様として美しいのは間違いなく今のブラウザの動作だ。
だから推測するなら、
元々マクロ用だった為の奇妙な(ただし知っていると便利な)DOM周りの旧仕様を
一般的なプログラミング向けの仕様(直感的、統一的、一貫性重視)に
変更している最中といったところか。
俺が仕様について裁定する権限があるのなら、
上記引用部分を削除して終わりだね。(ブラウザの動作に合わせる) そういうのはDOM Lv0といって昔のデファクトを文章にしただけのものだから
ベンダー間でこうしていきましょうねと合意が取れてるものとは違うぞ
Webは生き物だから正しいも正しくないもない
神様も居ない
まあしかし、仕様書と実装の同期は取っておくべきだろ。
それが>>80の意図だろ多分。
こちらで試した限りではFireFoxでも同じだった。
80が仕様について何かやっている人なら頑張れとしか。 >>81
伝わってないようだが、「その3行の意味が理解できないから説明してくれ」や「その仕様が糞である理由を説明してくれ」ではない。
RadioNodeList 以外にも「たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける」が適用されると判断した「仕様の文章」を引用して「あなたの解釈」を説明してくれ。 >>84
いやそれは文章そのものだろ。
和文も英文も、あの書き方ならRadioNodeList以外も含むとしか取れないが。
てかお前、日本語も英文も読めない人? HTML Standard や DOM Standard には「後方互換性の為に標準化した旧来の仕様」が多数存在する。
(>>82のいう DOM Level 0がそれだが、子の表記はMDNでしか見たことがないな)
XHTML2.0での失敗、IE6がいつまでも現役時代だった失敗を経て、HTML5 では既存のブラウザで動く事を重視して標準化しているからだ。
それが彼(>81)の言う「糞な仕様」だが、そうする事で旧来の古いブラウザの独自拡張で書いたコードも全てのブラウザで動くことが保証される。
「美しい仕様」よりも「動く仕様」を重視しているので、>>81とは目指すべき方向が違う。 >>85
そこまで否定される筋合いはないんだが、なぜそう挑発的なんだ?
> 指定したIDまたはname(歴史的な理由でイメージボタンを除く)をもつフォームでフォームコントロール(または複数存在する場合、フォームコントロールのRadioNodeList)を返す。または、いずれも存在しない場合、与えられたIDとともにimg要素を返す。
> 一度要素が特定の名前を使用して参照されると、たとえ要素の実際のIDまたはnameを変更しても、要素がツリーに残る限り、その名前は、この方法でその要素を参照する方法として利用され続ける。
> 複数のマッチするアイテムが存在する場合、それらの要素すべてを含むRadioNodeListオブジェクトが返される。
この文章は form[name] に書かれたもの。
文章内で「form.elements や document.forms にも適用される」とはない。
返り値の Interface も RadioNodeList と HTMLCollection で全く違う。
どう解釈したら「form.elements や document.forms にも適用される」となるのか日本語を読めない俺に説明してくれ。 >>87
> 日本語を読めない俺に説明してくれ。
それは無理。
ここで国語の授業をするのは原理的に無理なんだよ。
俺が日本語でいくら説明しても、君はそれを俺が意図した通りに読めないことを意味する。
君がいくら反論してきても、それは俺には君が意図したとおりには伝わらないことを意味する。
だから片方の言語が不自由な時点で、「文章での」議論は空転する。
だからこそ韓国人はここではものすごく嫌われているわけでね。
俺には和文も英文もそうとしか取れないし、
仮にそれが俺の間違いなら、俺がそれを君に俺の文章で説明することは不可能なんだよ。
だから原理的に無理。 >>88
そうか。日本語を日本語で説明できないとは謎理論だが、あなたの中ではそうなんだな。
>>87では「日本語が読めない」と書いたが、それは言葉の綾で俺は日本語を読めると思っている。
「>>88の中では RadioNodeList 以外にも適用されると解釈したんだな」ぐらいに思っておくことにする。
俺はあなたの根拠なき主張を信じないがね。 韓国人が紛れ込んでいるからだろ。
2chにおける典型的なスレ崩壊パターンだよ。
だから彼等は嫌われる。
実を言うと80の時点で意味不明だった。
そもそも俺が噛み付かれる理由がないし、
文章自体も直接的に俺に向けた物とも思えなかった。(話が噛み合っていない)
ただ俺はこういう馬鹿も見飽きてるし、コードが上がっているので試しに見てみたら、
ああなるほど彼はこれが言いたかったのか?と思って81を書いた。
それが伝わっていないというのなら、俺にはどうしようもない。あれで精一杯だ。
ちなみに俺はゆとりに対しても同様に怒っているが、
ゆとりに関しては日本人だから俺らにも教育責任はあるとも思う。
ただ韓国人については死ねとしか思わないね。
ID:nVVEnA7X0 が感情的になって無駄に煽るから、こうなる
どちらかが間違っている事ご分かっていて、「日本語も英文も読めない人?」といわれたら、カチンとくるのは当然
>>80はそれでも我慢した方だと思う 支離滅裂すぎる
全然関係ないこのスレに人種差別持ち込むなよ
>>92
逆ギレ止めーや。
つか最近そういう奴も増えたけどね。
基本的価値観として、まともな日本人なら、「間違っている奴が悪い」なんだよ。
既に書いたが、和文も英文も俺にはそうとしか読めないし、
それで間違っているというのなら、俺がそれを説明する能力なんて原理的にないのさ。
だからその説明を俺に求めるのも論理的に矛盾してる。
お前らは馬鹿すぎてこのことが理解出来ないようだが。 >>93
そうやって正統な批判を全部人種差別にすり替えるのが韓国人の汚い手口だよ。
だから今後とも嫌韓は収まらない。
そもそもここで韓国人呼ばわりされることがおかしいだろ。
顔も見えない、性別も分からない、見えるのは書き込みだけなのに。
それでも嫌われるのはそういうことをやり続けてるからだよ。
今回の例で言えば、
仕様書「RadioNodeListを含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)
俺が間違っているというのなら、お前らが代わりに説明してやればいいだけ。
それも出来ないのなら、お前らは批判の為の批判をしているだけ。
それは韓国人やヤクザの手口だよ。だから彼等は嫌われる。
そういうゴミを嫌う権利は誰にでもある。ここら辺をパヨクは間違っている。
もちろん、俺を嫌う権利はお前らにもある。
だから俺はWeb板のスレには行かない。俺が嫌いならあっちで頑張れ。
あっちはあっちで機能しているし。
こうやって複数のスレで競争しないと、
今のJavaScriptのスレの面子では状態を改善出来ないんだ。
だから俺が強硬に並立を主張したわけでね。 ああすまん、ミスってた。
無駄に喧嘩になっても仕方ないので一応投稿し直す。
仕様書「RadioNodeList以外も含みます」
俺「『含みます』って書いてあると思うけど」
韓国人「いやそうは書いてない。書いているという証拠を示せ」
俺(どうしろと)
とにかく、俺には含みますと書いてあるとしか見えない。
それが俺の間違いだというのなら、君らがそれを指摘してくれればいい。
俺にはこれ以上どうすることも出来ないのさ。
空気を読まずに蒸し返してみる
ある事の証明は存在をひとつ示せばいい
ない事の証明は全てを網羅しなければならない
この2つの証明はは等価ではなく後者の方が圧倒的に困難である
よって、ないことを証明しろ、それが出来ないならあるのだという論法は典型的な詭弁の手法として用いられる
ある事が分かっているならば当該箇所を示せばその時点で論破()できるのに、それをせずに相手に悪魔の証明を求めるのは、あるという証拠の1つすら示せないからに他ならない
つか、何度も言っているが、
俺が間違っているというのなら、お前らが説明してやれよ。
マジでお前らヤクザのやり方を地で行ってるぞ。
仕様書の該当部分は既に明示されているし、
そこにはそう書いてある(と俺には読める)
これ以上俺が出来ることはないんだよ。
お前らって、内容を読まずに批判する為の批判を繰り返すよね。
そして相手が悪いという事に無理矢理持っていこうとする。
これはゆとりに多いパターンだけど。
イデオロギーと主張と日本語が読めないと言うのは互いに疎だろうから、ちょっとこうなると話が終わらなくなるな。
>>95
正当か正当でないかは主観だから言い換えるとして「正当かもしれない批判を全部人種差別にすり替える」を技を
>>95という批難のレスが自己言及を起こしてるから、根拠を足すか別の表現で説明して。
批判のための批判ではなくて、論理的に正しい批判が読みたいな、俺は。 ヤクザ、ゆとり、韓国人、これらはすべて論理的な議論において無用なレッテル貼りでありこれまた詭弁の典型例である
発言者が馬鹿だと論旨の正否に関わらず批判を受けるという好例だわ
>>80は真っ当なものだし、正しいと俺は思う
根拠(URL)も十分に出てるし、補足することは何もない
対して彼の返答は「そうとしか読めない」しかなく、具体的なところは何もない
信じてもらえなくて当然だと思う >>96
少なくとも彼は>>80や>>87で自分の正当性を説明出来ているけどね
君はなぜか完全スルーの構えでそこに触れてないが
仕様は変わらないのだから、仕様の解釈を説明するしかないのに、それが出来ないのは君に説明能力がないとしか思えない
あと、君の発言は段々、暴論になってきているから気を付けた方がいい
人格否定や差別的発言は明らかに君が間違ってる(君の論にてらせば、君が悪い)
いっちゃ悪いが、自分の発言が認められなくてだだをこねている子供のようだ というかこの手の「ゆとりスクラム」、最近割と良く遭遇するようになったが、何がしたいんだ?
俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、
説明能力があるゆとり君が代わって説明すればいいだけ。
俺が文章を読めてないというのなら、俺にそれを文章で説明しろというのは無理な話。
俺を信じれないというのなら、ああそうですかでしかない。そもそもそういう話ではないし。
ゆとりって基本的に他人に文句は言うけど、自分で改善しようとは全くしないよね。
今の現実世界はそれまでの大人達が少しずつ改善を重ねてきた結果だというのに。
俺は2chしかほぼ見てないから
> 実際、某Q&Aサイトでも名前を何度も変えては同じような質問を繰り返して、
> 詳しい回答を貰うと「初心者なので分からないです」と返信する人がいるよ (>>76)
には遭遇したことがないけど、(というより遭遇しても気づくほど見てない)
この手の「無理矢理○○って事にしたい」ってのは最近すごく遭遇するんだが。 わかったから他所でやってや
ゆとりでもそうでなくてもどうでもいいが、スレタイぐらいは読めるやろ
>>106
破綻しとる。
自説を説明する能力がある人間でも、代わって「おまえの理論」の説明はできまい。
説明能力が無いなら説明を求めるのがおかしいって無茶苦茶じゃん。
説明能力がある奴に、説明を求めるのは無意味だろ。
だって説明能力があるならば、求めるより前に説明してるはずじゃん。
説明能力か無いからこそ、説明しろと要求されていると思えよ。
論理的にやろう。ゆとりも、非ゆとりもな。 > 俺に説明能力がないというのなら、俺に説明を求めること自体がおかしいし、
書いてあんだろ?
「俺に説明能力がない」だ
説明が足りないじゃない。
説明する能力がないのだ。
感情を表現する能力がないやつに
感情を表現しろと言っても無理だろ?
計算する能力がないやつに計算しろと言っても無理だろ?
説明する能力がないやつに説明しろって言っても無理だろ?
要するに「無能」が正しいと認めているわけだから、
「無能」に聞いても、能力がないやつには答えられないということ
>>112
違う違う。
無能だからこそ、説明を求められるんだ、と。
能力が無いならば、最初から説明しようとすらするはずが無いんだよ。
全くできない事をしようとする事はあり得ないんだし。
空が飛べないのに空を飛んで見せるのが、全くできない事をするって言うことだよ。
相手の言葉をうまく摘んで「無い」の定義を適当に用意してはいかん。ただの逃避だよ。
それこそ自分が揶揄してるやつ。
吐いた唾は飲もう。 自らの正当性を主張する人が自己完結していないわけがなので、ID:nVVEnA7X0も俺も自己完結している点では同じ
見解の相違で衝突した場合、お互いに根拠を出しながら意見を出すのが普通
相手の論理を崩すには「相手が出した根拠が間違っている証拠」をだしたり、「根拠の解釈が間違っている論理的矛盾」をだしたり、と論理的に話をする
ところが、ID:nVVEnA7X0 は「いや多分あの書き方だと(>>75)」「そうとしか取れない(>>88)」と恣意的な感想を述べるばかりで根拠も論理展開も何もなければ、相手の論理的矛盾に言及するわけでもない
根拠や意見を掲示するのは>>80だけ
説明出来ないというが、「そうとしか取れない」理由を具体化すれば説明可能なはず
具体的な何をすれば良いかは>>84で補足要求してくれているのに無反応
この状況で説明能力がないといわれるのは仕方がないし、何も反論出来ないのなら説明能力がないと認めているも同義だと思うがね 人間なんてみんな無能だよ
協力し合わないとなにも為せないんだよ
そのことを忘れちゃだめ
とりあえずスレ違いだからツイッターあたりでバトってもらっていいかな?
window.fetchでshift-jisのデータをダウンロードしてresponse.text()で文字列にすると文字化けしてしまうのですがどのようにすれば文字化けしないようにできますか?
>>121
外部サーバーなので出来ないです(´;ω;`) メッセージングの手段とかないの?
まあ例えばC#アプリとやり取りするときとか、最も汎用的な方法はローカルWebSocketだよ
2chも、shift-jisだから、JSで扱えない
でも、YQL(Yahoo Query Language)を通して取得したら、UTF-8になってる。
文字コードを推測して、変換しているのかね?
この板よりも、web制作管理板で質問した方がよいかも。
そっちの方が、人が多いから
> 2chも、shift-jisだから、JSで扱えない
そんなわけねーだろw
文字コードを変換すればいいだけ
もしくは適切にパラメータ与えれば
ブラウザが勝手にやってくれる
iframe に読み込ませれば、ブラウザが自動変換するから、文字化けしないけど、
自分で、JSで、2chのHTMLを取得しようとすると、shift-jis のままじゃないの?
つまり、ブラウザを通せば、変換されるけど
Fetch APIにはContent-Typeを上書きする機構はないのかな
>>122
外部サーバならクロスドメインを許可してる事になるという事?
それなら、そのサーバ管理者に相談してみては? >>130
リクエスト時のヘッダーにコンテンツタイプを指定するってことですよね?やったんですが出来ませんでした。 fetchにはオーバーライドマイムヘッダーはないというとこですか?
文字コードを変換することは出来ませんか?
実行環境はelectronのrenderer processです
出来ればnode.js特有のモジュールを使わない方法がいいですが...
setTimeoutとseIntervalって使い分けってどうやるんやるんですか?
なんか参考にするコード教えてください
そのまんま、一定間隔で実行を繰り返したいか一回だけ呼びたいかの違い
>>134
一定周期動作をさせるなら、処理完了後からIntervalを取るか、処理開始時からIntervalを取るか
例外でタイマーを止めるか、一定周期で例外を出力し続けても止めないか 「settimeout setinterval 違い」で検索!
HTMLのテキストボックスへ日本語を入力中に、
強制的に確定(Enterを押した場合と同じこと)
もしくは入力をキャンセルさせる(ESCを2回押したような処理)ことは可能ですか?
それができるなら、利用者の性癖を盗みとる事ができそうだな
カンマ演算子を積極的に使っているコードを知らないか?
この際、他言語でも構わない。
三項演算子を使って宣言的(という言い方が正しいかは微妙だが)に記述すると、
var somevalue = (caseA)? valueA : (caseB)? valueB : valueC;
という形になってくるのだけど、
この際単純な式だけでは無理な時があって、カンマ演算子を使いたくなってくる。
とはいえCの世界ではほぼ完全に禁止に近くて、推奨とか積極使用とかは聞いたことがない。
おそらく何らかの問題をはらんでいるからだと思う。
元々Cは手続き的だし、限界までチューニングするので、相性も悪い。
そこで、わりと好き勝手やっているJavaScriptの世界なら誰かしら使っているかもしれんし、
ソースも見えて助かるので、どこか積極使用しているところとか知らないか?
推測だが、他の「宣言型」と言われる言語も
本当に宣言的に記述するのなら大量使用しているはず。
ソースが公開されていて、何をやっているか分かり、
相手の技量も分かる状況なら他言語でも構わないのでよろしく。
さらっと調べてはみたんだが、
そもそも使ってない言語の検索では要領を得ず、いいのが出てこない。
Scala使っているやつ居たよな?そっちではどうとか、あればよろしく。
>>142
google closure compilerが割と積極的に,使ってくるよ。
問題と言えば、代入だったら実際に代入される値から遠いとか、そもそも分けて書けよとか、アトミックである保証がある場合とない場合があるとか、色々ある。 つかClosureCompiler遣い居たのか。
それってコンパイル後のコードって読まないでしょ?
(なんで君が読んでいるのかは知らんが。
さすがにミニファイは読めないから信じるしかなくて、
通常ClosureCompilerもそれに近い扱いだと(勝手に)思っているが)
おそらく問題は「可読性」だけなんだと思っている。
だからコンパイラやトランスパイラが使うのは全く問題なくて、
逆に言えば、使うメリットがあるからコンパイラが使っているとも言える。
可読性の問題はおそらく「色々な書き方が出来ること」「読む方が不慣れなこと」に尽きる。
だから「コンマ演算子が多用されている『世界』」があれば、
彼等はなんとかしているのだとも思っている。だからそれを確認したい。
googleのコーディングルールでは、
C++もJavaScriptもカンマ演算子を明確には禁止にしていない。多分グレーゾーンだ。
> アトミックである保証がある場合とない場合があるとか
カンマ演算子でアトミックに出来るか?
というかいわゆるマルチスレッド環境で言う「アトミック」はJavaScriptにはないはずだが、
それ以前にシングルスレッドだからアトミックとか要らんわけだが。
カンマ演算子みたいな副作用前提のものを宣言型プログラミングで積極的に使うなんてことあるかぁ?
ただ一文になってるってだけじゃん
普通は関数化して処理部分は関数内に隠蔽するでしょ
いやその関数を2回呼びたくない時にどうするかだよ。
副作用無しの関数なら、先に呼んでしまって一時変数化するというのが通常の解法。
でも最初の分枝、142の例で言うとcaseAに当たった場合にこれは不要なら、
関数呼ぶだけ無駄でしょ。
関数に副作用がある場合は一時変数化も出来なくて、
if文でしこしこ書くことになる。
とはいえ関数型の場合は副作用無しにして何度でも呼んでしまえ、が正義なのかもね。
なお俺が使おうとしている状況は、、、と詳細に説明しようとしたが、
JavaScriptの場合は型無しなので、 || と && 上手く使ったら
カンマ演算子無しで書けそうな気もしてきたorz
??
関数を2回呼ぶとか一時変数にしないといけないってのがよくわからん
必要ないと思うけど…まぁ本人が自己解決できそうならいいか
どの言語でもそうだけど、
コロンで区切れば、独立した文だから、安全
カンマでは、独立した文にならないから、
副作用・評価順序などを勘違いしやすく、バグが多くなる。
だから、カンマは使わない方がよい
短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
使わない方がよいと言われる
とりあえず、文と式の区別がつくようになってから出直しなさい
プログラマーたるもの言語仕様に依存せず、型を強く意識し型に対してプログラミングしましょう
>>147
あ、いや、やっぱ多分無理だ。こんな感じ。
(カンマ演算子は使ったこと無いから文法が怪しいが、多分これであってると思う)
var result = (sel==='ALL')? query_set(name, 'ALL') :
(var tgts = get_tgts(name), (tgts)? query_set(name, tgts) : obj[name]);
sel==='ALL'の時にはquery_setを呼び出す。
それ以外の時にはget_tgtsでリストを確認し、該当した場合はquery_setを呼び出す。
該当無しの場合は単にobjを名前で引く。
query_setは何度呼んでもいいが、
初めて呼ぶ場合には obj[name] に色々初期化した物を作成して登録する。
登録されている物はobj[name]で確認出来るし、
2回目以降(既にobj[name]が存在した場合)にはobj[name]が返される。
だから上記は、
sel==='ALL'の時は常にobj[name]を引き、無ければ登録してそれを返す、
それ以外の場合は、新規登録リストget_tgtsにあれば新規登録してそれを返す、
なければ既に登録されていればそれを返す、となる。
ここで get_tgtsは何度呼んでもいいから上記は
var result = (sel==='ALL')? query_set(name, 'ALL') :
(get_tgts(name))? query_set(name, get_tgts(name)) : obj[name];
とすることも可能だが、 get_tgts(name)は重くなる可能性があるので
必要な時にのみ一度引くようにしたい。
逆に obj[name]は1回引いて終わりだし、こちらも何度引いてもいいので、
var result = (sel==='ALL')? query_set(name, 'ALL') :
(obj[name])? obj[name] : (var tgts = get_tgts(name), (tgts)? query_set(name, tgts) : null);
とも出来る。 これだと、fが1回呼ばれるのか、2回か、どちらか分からない
1 < f() && f() < 10
こう書けば、1回しか呼ばれない
a = f();
1 < a && a < 10
Pythonでは、こう書けるから、1回しか呼ばれない
1 < f() < 10
fがオブジェクト・関数などの場合、どういう副作用があるか分からない。
何かのリソースにアクセスして、その電荷を変えてしまうかもしれない
volatile というけど、読み取っただけでも、電荷が逆転するデバイスがあるから、
2回読み取ったら、正常に動かないとか
諦めてif文でしこしこ書いてもいいのだが、tgtsなんて結局ここでしか使ってないし、
欲しいのはresultだけだから var result = の書き方で出来た方が見やすい。
ただ、関数型ならここをそのまま切り出して、
function somefunc(name){
ここはif文でしこしこ
return result;
}
で上位からは
var result = somefunc(name);
で隠蔽してよしとするのかな?
多分ここが噛み合ってないのだと思う。
>>144
いや、カンマ演算子全体に対して言ったんだよ。
読む側が不慣れとかじゃなくて、どれくらいのメリットあるの?
メリットがあってもデメリットを下回れば、そりゃ無駄なんだし。 >>154
ちょっと輻輳気味だが、
>>151内、
1. get_tgts(name)はユーザー作成リストを参照するので際限なく重くなる可能性があり、
可能であれば出来るだけ引きたくない。
2. ちなみに今はこの手の「重くなるかもしれないユーザー作成リスト」についてはキャッシュを作成し、
それを引いているから実は重くないのだが、キャッシュの管理が面倒なのも事実。
3. だから「重いけど我慢出来る範囲」ならキャッシュ無しで組むのもありか?とも思ったり。
その時に出来るだけ無駄のない動作をする為の記述が必要であり、それが今回。
つっても同様のケースは以前からあり、
カンマ演算子を三項演算子内で使用することについては、考えてはいたんだが。
実際、result を得る為だけに使う tgts とかは result = 式内に閉じこめた方が見やすいでしょ。
そして記述通りに動くのならそれが最速の記述ではあるし。
見やすくて速いんだからやらない理由はない。
ただしカンマ演算子については積極的に使っているのを見たことがないから、
多分何かしらかなり問題があって、、、だろうからそれを先に確認したくてね。 >>151
こんな感じでどうでしょ
var result = sell ==='ALL'
? query_set(name,'ALL')
: ((tgts,name,obj) => tgts ? query_set(name,tgts) : obj )(get_tgts(name), name, obj[name]); >>148
> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる
いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む。
そして俺はもちろんJavaScriptもそうしているし、
逆にwhile文とかは短絡評価無しだと組みにくいでしょ。
典型的パターンは以下。
var i = start;
while (i<arr.length && arr[i].prop!=xxx) i++;
関数型?で無理矢理組めば、
var i = arr.slice(start).findIndex(function(v){return v.prop==xxx;})+start;
なのか?しかし無駄が多いし余計に見にくいだろ。 >>156
それが
> 普通は関数化して処理部分は関数内に隠蔽するでしょ (>>145)
なのか?
その書き方ではカンマ演算子を使わなくて済んでいる。
引数を一時変数に使うことにより回避している。
これは事実だが、余計に見にくくないか?(多分if文使って書いた方がマシ)
また、それって一般的か?俺はあんまり見ないが。
(もっとも、俺は配信されているもの、
つまりコンパイル後のコードしか見てないから、ES3準拠?とかの可能性はあり、
コンパイル以前のコードについては知らないんだが) 「配列arrの中の、start番目以降の要素の中で、prop==xxxに当てはまる最初の要素のインデックス」を
求めるならこんな感じにそのまま書けばいいのよ
var i = arr.findIndex((v, idx) idx>=start && v.prop==xxx);
>>159
ああそれはその通りだね。
(俺はあの書き方はそもそもしないから慣れてない)
ただ俺はそれだとstart以前も走査するのが気に入らないから、
やっぱりwhileで回すけど。 >>157
var i = arr.slice(start).findIndex(function(v){return v.prop==xxx;})+start;
最近の書き方だとこうだろ?
var i = arr.slice(start).findIndex(v => v.prop == xxx)+start;
んで、lodash使えばこうなる。
var i = _.findIndex(arr, {prop: xxx}, start); >>157 >>160
> なのか?しかし無駄が多いし余計に見にくいだろ。
> (俺はあの書き方はそもそもしないから慣れてない)
コードの話をしようぜ?
俺は見にくいというのは、コードの話じゃなくて
お前の話になってる。
お前が見にくいっていうのなら、単にお前が未熟ってだけ。
コードの話をしている時に、人の話をしてはいけない >>159
こうだな
var i = arr.findIndex((v, idx) => idx >= start && v.prop == xxx);
var i = start; while (i<arr.length && arr[i].prop != xxx) i++;
var i = _.findIndex(arr, {prop: xxx}, start);
一行につなげて比較してみよう カンマ演算子の使いどころは、一つのStatementしか記述を許されてない箇所にある
(while文の条件式、アロー関数の省略記法、三項演算子など)
省略記法が大好きな人ほど好む傾向があるかも知れない
>>158
いやまぁもちろんこんな無名関数をそのまま書いたりしないけどね
上と抽象度違っちゃってるし、いつもはちゃんと名付けするよ(面倒だから手抜きしましたごめんなさい)
「一般的か?」って言われたら、JavaScriptでは一般的ではないでしょう
だいたいみんなif文使うし、宣言型なんて見ない見ない
ただまぁこうやって引数にしちゃえばキャッシュ出来るよという参考までに
あとは自分で選べばいいさ >>161
sliceした方がいいかどうかは場合によるのだけど、
一般的にはsliceせずに回す>>159だと思うぞ。
それはおいといて、そもそも findIndexに開始地点を指示出来ないのが謎なんだが。
だからlodashが必要になるわけで。
とはいえlodashは普及しないよ。
確かに短く書けるけど直感的ではないし、わざわざ学ぶほどの価値もない。
とにかくその件については俺はwhileの一択だ。
速いし分かりやすいし。
君がそう思わないのも君の自由。
ただいずれにしても、おれはカンマ演算子について聞きたいのであって、
157以降は俺の興味以外だから降りるよ。 >>165
> JavaScriptでは一般的ではないでしょう
ちなみにこれを他言語では一般的にやってるのか?それは何言語?
別に糾弾しようってわけではなくて、ちょっと見てみたい。
ちなみに抽象度については俺も思ったが、それ以前に、
1つのことをやる物を2つに分解して配置したくないので、
俺は「名前付き関数」にして呼ぶって事もしない。if文で書く。
ただしこれはCでは関数内関数が使えないからそういう文化なのであって、
関数内関数が使える言語なら別文化もありだとは思う。 >>157
もちろん、それでいいと思うよ
そこら辺考えだすとそうするしかない
折衷案としてはこんな感じでwhileの部分を関数化する感じかな
var searchPropIdx = function(arr, tgt, start){
var j=0, len=arr.length;
while (j<len && arr[j].prop!=tgt) j++;
return j;
};
var i = searchPropIdx(arr,xxx,start);
これでも何してるかは関数名が教えてくれるから宣言的といえるのではないでしょうか >>166
> 分かりやすいし
だからコードの話をしている時に
自分の話をするなって >>168
自分で関数作るぐらいならlodashの方がいいな。
いきなりsearchPropIdxとか書かれても
コード読まないと何をしているのかわからない。
lodashのような有名ライブラリであれば
有名なライブラリを知っているならば使い方わかるし
たとえ知らなくても、誰かが解説してくれてれる >>170
lodashが使える環境ならもちろん使う
ただまぁ標準ライブラリではないから今回のケースでは考えませんでした >>168
まあ、俺も必要な場合はそのように関数化してくくり出すけどね。
メリットは抽象度が上げられて依存関係を切れる(隠蔽出来る)ことだが、
ここら辺は要するにオブジェクト指向のメリットであり、
そもそもオブジェクト指向は巨大なコードを何とかする手法だから、
ここでlodashを布教している奴が理解することはないというのは、
これまでさんざん見てきたとおり。
俺はlodashが使える環境でも使わないね。whileで書く。
ただここら辺は各人が好きなようにすればいいだけの話だね。 >>172
自分のやり方を押し付けるな
俺はコードの話をしてるだけ >>167
「値は引数を関数に適用させて作るもの」ってのはラムダ計算の基本的な考え方だから、大抵の関数型言語ならそうじゃない?
そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
引数が同じなら計算結果は最初のものを常に使い回すしね
別に好きに書けばいいんだよ
ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで >>174
> ただ最初に宣言的って言ってたのが何か勘違いしてそうで引っかかっただけで
これについてはそちらの指摘通り、俺は勘違いしていると思う。
俺は関数型言語を使ってはいないからね。
これは、俺の用語に誤用がある可能性を考慮しつつ話をしてもらうしかない。
> そもそも例えばHaskellなんかは今回でいうget_tagを同一スコープ内で何回実行したところで、
> 引数が同じなら計算結果は最初のものを常に使い回すしね
Haskellってインミュータブルだったっけ?忘れたけど、
確かにインミュータブルだったらこれで終わりだね。
つべこべ言わずに何回も書いても関係ない事になる。
しかもHaskellの場合は遅延評価だから事前に書いても大してオーバーヘッドもない。
まあこの辺が便利なのかもね。
> 大抵の関数型言語ならそうじゃない?
そうか。了解した。 すまん、
× インミュータブル
○ 再代入禁止
だね。
>>157
>> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
>> 使わない方がよいと言われる
> いやそれはCの世界では嘘だ。あっちは短絡評価ありきで組む
後ろの式に、副作用がある場合、バグ含みになるから、危険。
それで、Pythonでは、以下のように書けるようになってる
1 < f() < 10
MISRA-C 2004 のコーディング規則を参照 <tr>
<td><%= name %></td>
<td><%= gender %></td>
<td><%= job %></td>
</tr>
lodash.js (underscore.js)には、template があるから、
jQueryですべての要素を作らなくても、HTMLファイルに値を埋め込むだけでよい
>>177
つかMISRAを持ち出すのなら番号まで指定してくれ。
あれは膨大な数があるんだから。
つっても、見てもそうだとしか書いてないとは思うが。
> 1 < f() < 10
Pythonがそう書けるのはいいとは思うが、そもそもCプログラマで
> 1 < f() && f() < 10
をやる奴はいないんだよ。これは常識だから。
次に、関数型が「参照透過(キリッ」とかやっているのも
Cだと最初からほぼ参照透過なんだよ。
クロージャはないし、グローバルもほぼ使わないんだから。
(通常はポインタを与えないと非参照透過にならない。
ポインタについては明示的に見えるから、
クロージャのある言語のように「参照透過」を気にする必要がない)
だからそこら辺の文化は明らかに違う。
実際、whileループなんて短絡評価ありきでないと組めないし、
俺が出した例なんてマジで頻出だぞ。
で、それを「俺は配列の長さなんて管理したくない。
該当するインデックスが欲しいだけだ」と言うのなら、
コード例も既に出したように、それが明示的には見えないコードにすればいいだけだろ。
ただ俺はあれで効率が上がるとは思えないがね。
根本的に違うのは、
while (i<arr.length && arr[i].prop != xxx) i++;
はCに於いてはarrに対して副作用を持ち得ないんだよ。(通常はvolatileでないから)
ところがJavaScriptではゲッタやプロキシがあるし常用されるから、これだけでは言い切れない。
だからそもそも「副作用」に対する感覚が全然違うんだよ。 MISRA-C 2004 ルール12.4
論理演算子 && または || の右側のオペランドには、副作用があってはならない。
volatile もダメ
>>181
それは
× 短絡評価が駄目
○ 短絡評価内で副作用が駄目
だよ。重ねていうが、以下認識は間違いだ。
> 短絡評価も、後ろの式が実行されるかどうか、分かりにくいので、
> 使わない方がよいと言われる (>>148)
結局の所、12.4も「短絡評価されるから」という大前提でしょ。
Cの世界はそうだよ。
短絡評価自体が駄目なんてのは、聞いたことがない。 というか今更気づいたが、カンマ演算子ってほとんどの言語ではないんだな。
むしろある方が異端のようだ。
ある:C/C++, JavaScript, Perl
ない:Java(ただしfor文内のみ可), C#, Ruby, てか多分他全部
JavaScriptの場合は匿名関数をその場で定義して使っても構わないから、
文が書けないからカンマ演算子という時は大抵この方法でも回避出来る。
といっても余計に見にくくなるが。
例: (function(){ /*何かの動作*/ })()
普通にif-elseifで書けばいいのに、カンマ演算子にこだわりすぎて暴走しとるな
構文なんだから人間様解るように記述すればいいだけ
ただのオナニー
関数型風に書けよw
カンマ演算子なんて関数型風でも
一旦変数に入れるだけの話だろ
そもそも関数型風のメリットは論理と計算の分離であって、どっちがいいとかじゃないし
三項演算子を使ってcaseAの場合aが返ってくるなら、そうでない場合は同等の型のbが返ってくるのが基本
三項演算子をネストさせるってことはそもそも論理と計算が分離されてない
それを気にしないなら別に好きにすればいいんだよ
見やすい見にくいみたいな主観に任せればいい
関数型風にすればconstを使えるようになる。
変数に入れた値が変わらないから、コードを把握しやすくなるし
バグも減るのがメリット
全部プロトタイプベースで書けばいいと言うのと同じくらい無意味な綺麗事
つうかconstは長いし普通の人にとっては読みにくい
意地っ張りの価値観の押しつけをする気が無いのなら
手元では好きに書いていいが挙げるときは置換くらいしてくれ
それが最低限のマナー
> つうかconstは長いし普通の人にとっては読みにくい
英語読めない人?
新しいものが一般的でないのなんて当たり前なんだよなぁ
いかにそこから普及させれるかだ
先人の叡智を無駄にしてはいけない
> つうかconstは長いし普通の人にとっては読みにくい
constが長かったらdocument.body.innerHTMLとかもはや解読不能だろ
むしろconstは多用したほうが保守性は上がるでしょ。今時var宣言使っちゃだめよ
constでキレイにインデントできたら最高なんだけどなぁ
仮にconstが消えてもletになるだけで
varにはならん
全部constにするんなら、宣言要らない関数型altJS使えばいいじゃん
ES6なら末尾呼び出し最適化が働くのでforは再帰で書ける
なのてletは不用 constだけで良い インデントも揃う
>>198
いやいや、フルconstの自由があるならAltJSくらい余裕でしょ
つうかconstの実際価値があるっていうのじゃなくて
単にconst、constって書いて自己満足、安心「感」を得たいだけになってるでしょ ヤフー知恵袋のjavascriptマスターがドヤ顔で公開してるカレンダーのコード読むと、
グローバル変数だらけで非常に見辛いし、グローバル汚染されたコードだった
悪い例として参考になったな。
たまに、参考になる質問と回答が、知恵袋とか2chにあるが、
玉石混交だな、
どれのことかね? JavaScriptマイスターの俺が
修正してあげよう
>>204
あぁ、うんゴミだね。これは修正の価値すらないや。
関数の定義だけ聞いて自分で実装したほうが早そうだ × 関数の定義だけ聞いて
○ カレンダーの仕様だけ聞いて
>>204
> グローバル変数だらけで、グローバル汚染されているし、
> クロージャ使って、モジュールにしろよって思ってしまいます。
まあこれも問題なんだけど、それ以上に構成が酷い。というか平べったすぎ。
こいつそもそもサブルーチンすら使ってなくね?
> 非常に読みづらし、解読するのが骨が折れると思われます。
ちなみにこれは違う。平べったいコードは読むのは面倒だが難しくはない。
ただしまともに読む気にならないが。見た瞬間ゴミだと分かるレベルだし。
俺も>>206に同意だな。
そしてみんなそうらしいぞ。まあそりゃそうだが。
http://miwa850125.php.xdomain.jp/notice/content/00012.html
ただ、素人が組んだ500行前後のコードってこうなりがちではあるんだがね。
(というか多分300-500行程度で組めるはず) 今時githubで管理してない時点でお察しだな。zipでダウンロードしてーとかしんどすぎる。
ちなみに、このカレンダーの作者は
javascript歴17年の自称30〜39歳の女性です。
知恵袋で
「javascrit初心者相手にfor文もわからんのかww」
っておらついてます。
多分、プログラム書いて「動いたwww スゲー 自分は天才やんwww」
とかのレベルで止まってしまったと思われる。
勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった
>>209
ついでに言っておくと、
初心者は「コードが読めないのは汚いからだ」と主張しがちだが、実際はそうじゃない。
初心者が技術的に至らないからというケースがほとんどだ。
とはいえ、実際に駄目なコードは散見されるし、初心者がこれらを区別するのは無理だ。
だからこういう場所で聞いてみるのは一つのやり方だとは思う。
そしておそらくこれが目的だろうからこういう回答になる。
実際に高度に組織化されたコードは、初心者には全く読めないと思う。
逆に、こういった平べったいコード、上から順に一通り動いて終わりですね、
みたいなコードの方が初心者にも読める。
そして「上達するのは『書く』時ではなくて『減らす』時だ」という主張をする奴もいて、
実際「書く」よりも「減らす」方が頭を使うのも事実なので、
君がこのコードに相応しい初心者で上達を望んでいる場合、
このコードを減らして同じ動作を得ること、つまりリファクタリングを薦める。
それをやれば、このコードのどこが駄目なのか具体的に分かるし、いい練習になる。
(はっきり言って全部駄目なんだけどさ)
グローバルが〜ってのは実は大した問題じゃない。
(function(){
})()
でくくってやればすぐ解決するだけの話でしょ。
初心者はそういう文法的なところにばかりこだわるから上達しない。
最も重要なのは構造/構成なんだよ。 なお、
> 「javascrit初心者相手にfor文もわからんのかww」
> っておらついてます。
これについては初心者の方が悪い。
for文なんてどの言語でも基本中の基本だし、
そこら辺は最低限押さえてから質問しないと駄目だ。
初心者だからって何でも許されると思っているのはただの傲慢だ。死ねでいい。
> 勉強しないと、いつまでも初心者レベルから抜け出せいってことだせない教訓になった
これも違う。
というか多分、ソフトウェア産業は未だに「上達への王道」を開発出来ていない。
つまり、今現在の方法で「勉強」すれば上達するわけではないということ。
ここら辺は学校教育の物理や数学で
人類が数千年掛けて築き上げた叡智をわずか数年でインストールしてしまうのとは次元が違う。
ソフトウェアは高々100年程度の歴史しかないし、教育方法もよく分かってないんだよ。
だから繰り返すが、今現在溢れている本を仮に全部読んでみても、達人にはなれないよ。
関数型とか言っているのも、実はまだどうすべきか分かってない証拠でもあるしね。
数学や物理は、学校でやってるのが完全に王道だと確定してる。あれとは違うんだよ。
そして、いくら「勉強」しても、駄目な奴は駄目なまま。
ただそれをどうやって改善すればいいのか分かってないんだ。
だからセンター試験みたいな物を作ることが出来ない。
そしてその人が「勉強してない」って事にも(直接的には)ならない。
(実際は勉強してない確率が90%以上だし、
実際書くなり本読むなりすれば『大半の人は』自然と上達するのも事実だけどね)
> ソフトウェア産業
プログラミングはナチュラルに趣味グラマーがハブられることが多くて
いっぱいかなしい
それは思い込み、実際は逆だよ
趣味でやってる人達は自由、好きにやればいいだけの優位者
職業としてやってる人達の方にハンデがあるんだから尊重してもらわないと困る
>>212
前それ別スレで話題になっていたが、
個人的には「天然」の方が「養殖」よりも上質だと思っているよ。
ただ毎日毎日コードを眺めているのと、せいぜい月に2〜3日では場数が違うわけでさ。
とはいえ場数をこなせば上達するわけでもないというのは事実なのだが、
個人的には奇妙だとも思っている。
普通は場数をこなせば次第に上達するものではあるからね。
いずれにしても、「勉強しよう」と思うのは良いことだけど、
いわゆる「お勉強」で単純に上達するというものでもないんだ。まだ今は。
さてもう一度見直して気づいた。コードを書き慣れていない奴の特徴は、
・無駄な改行が多い
・空行が多い
これは多分共通だし、初心者でも見て分かるはず。
つかね、10,000行とかのソースだとただでさえスクロールしまくりなので、
1画面に出来るだけ沢山詰め込みたいという欲求が発生し、
空行とか無駄改行は全くやらなくなってくるんだよ。ウザイから。
これは割と共通の癖だと思う。
Pythonerが括弧を嫌うのも閉じ括弧だけの行がウザイからだし。
詰めて書いても今時色分けされるから見間違えることもないし。
(ただもちろん中には例外もいて、どんだけスクロールしても問題ないらしい奴もいる)
見た目、せいぜい50行程度しかまともに書けない奴が、
頑張って2,000行書きました、えっへん!みたいなコードだね。
ただ、これって誰しもが通る道だから、これ自体が悪いとは思わないけど。
なおコード自体は昔の定義の「コピペプログラマ」がこんな感じ。
実は結構いたりすると思うよ。 なんつうかね、
長文に全く慣れてない奴ってこんな風に、いちいち改行したりするでしょ。
それって長文に慣れてるとものすごくウザイでしょ。
余計に読みにくいし。(多分斜め読み出来なくなるから)
だけどコードに慣れてない奴って、やけに改行や空行入れたがるんだよ。
それは、改行をウザイと思うほどコードを読んだことがないってこと。
つまり、初心者だって事だね。
「初心者プログラマーにありがちなこと」ってスレタイでプログラマースレに立てるべき内容になってきてるぞ
すぐ「プログラマー」の話にズレていくのは職業プログラマーの悪い癖
まあその通りだが、あのコードから技術的にってのは無いからね。
ただ、一般的にあの規模のコードだと、割と平べったくなりがちなのも事実。
これ自体は不思議ではないんだよ。
ちょうど一つのクラスとして切り出すか?というサイズだから。
で、おそらくお互いが相手をヘボだと見なし、
無駄に争っていたのだろうというのも想像に難くない。
先に言ったように、あのコードをさらに大規模化する場合、
functionで囲ってクラスに変える。
そうするとグローバル→インスタンス変数になるわけで、これ自体は問題ない。
だから「グローバルが〜」ってのも初心者にありがちな間違った指摘で、
あの規模のコードならあれで良いんだよ。
結局、文法的なことしか見えない程度のくせに
コードの善し悪しなんて議論するからアレな事になる。
あのコードは不思議なコードではないんだ。
良いコードでもないし、上手いコードでもないけど。
でも誰しもが通る道だよ。
「技術的ってか、この辺はセンスの問題だな」ってさ、仕事しててもよく言われる
装置のログの解析とかもそうだけど
なんで1時間とかそこらでログの解析できんだ?
なんで、そんなにコーティング早いんだ?
センスって言われると、習得しずらいんだよな。
まるで職人技だよな
センス関係ない
「とりあえず動くコード」で満足するか、より良い品質にこだわるかの考え方の違いだ
>>218
> 仕事しててもよく言われる
つまりセンスが無い方の人なんですね乙
ただまあ「センス」って言っているのは教えようがないからだよ。
それは俺はまだ教育技術が未発達だからだと思っている。
数学とかのセンスって、
「ところでこれをどうやって思いつくんだ?」
であって、明らかに東大とかよりもはるか上のレベルでしょ。
今のプログラミングが要求している「センス」って、もっと断然低いところでしかない。
それでIDEやインテリセンスで効率が上がる(キリッとか間抜けなこといっているわけでさ。
「なるほど確かにこの構造にすれば恐ろしく簡単に実装出来るが、
ところでどうやってこれを思いついたんだ?」では全然無いよね。
フェルマーの最終定理(x^n+y^n=z^n)とか、問題の意味は分かるがどうしろと?だろ。
あれを「センス」と言うべきなんだよ本来は。
> なんで1時間とかそこらでログの解析できんだ?
当たりを付けているからだよ。
映画やアニメでハッカーがでてきたら「ほらビンゴだ!」ってよくやってるだろ。
> なんで、そんなにコーティング早いんだ?
コーディングに速さは必要ない。
最終的にデバッグ終了までの時間が勝負で、実際デバッグの方が遙かに時間かかるでしょ。
ただまあ、あのコードはいずれにしても不思議なコードではないから、
見た瞬間、ああ、このレベルですね、ってのは順当に分かるようになるはずだし、
そこまでの上達にはセンスは必要ないはずだから、
君が今やるべき事は、とにかく何でもいいから書くことだよ。 >>219
これはあるね。よく言われる「職人気質」って奴だよ。
プログラミングは自己完結して己の美学を目指せる奴しか上達しない。
これは一般には「職人気質」と言われる。
おそらく職人も同様にこの性格じゃないと上達しないため、
結果的に生き残っている職人はこのタイプが多くなるのだと思う。
だからそうじゃない奴は、向いてないから止めた方がいい。
あのコードは、まさに
> 「とりあえず動くコード」で満足する
タイプが書くコードなんだよ。だから悪いと言うほど悪いコードでもない。
なんつーか、手堅く動くだろうが、動くだけのコードですねってとこ。
しかしカレンダーなんて今更仕様変更はないし、保守性なんてどうでもいい。
自分で書き直すのもかったるいし、俺的には渡されたら使うかは迷うところだね。 >>222
babelを使えば古いブラウザでも動くのではないか? いや無駄に対応バージョン上げたくないんだ。
やっぱそうなんだよな?
今回はkeys()で1箇所書き直せばいいだけだからそうするよ。サンクス。
Chromeのバージョンを気にする、しかも10も前とか普通じゃないな
オレがいままで作ったjavascriptのアプリケーション
・画像うuplodar (2012年から公開してる今年で5年目)
→javascript,html5,mysql,phpで作成
・単語帳(非公開、TOECI勉強用に使った自分専用の単語帳)
→複数のtxtに書いたjsonデータの文字列を読みんで表にして表示する
今のとこ、とりあえず動くレベル→自分で読みづらいとこと修正と改善
を延々とやってる。
ってか、仕事と英語の勉強が忙しいから、javascript勉強してる暇があまりない
購入して積ん読になってる、日経ソフトウェアのjavascript特集を読みたいがいまいち暇がない
むしろchromeの古いバージョン使う方法ってあるの?ネットが使えない環境とか?
ReduxはReact専用じゃないというけど、React以外で使いやすいのはどのフレームワークかな?
>>227
サブの動作確認用スマホとか古いままだけどなぁ >>228
別になんでも使えるんじゃないか。
storeをsubscribeするだけなんだし。 その「subscribeするだけ」の具体的なやりかたを知らないんで、そういうライブラリや資料が
そろっていたりして使いやすいものがあるか探してる。
Reactならreact-redux入れてその通りにやればよかったんだけど。
>>230は何のフレームワークを使ってどんなふうにやったことがあるの? phinaとかpixiとかenchantとか色々あるけど結局ゲーム製作用ライブラリとしてはどれがいいの?
それらはゲームにも使えるというだけの汎用描画フレームワークだから
本当に描画部分から音周りまで完璧に揃っているフレームワークは
例えばノベル専用みたいな汎用性の無いものしかない。
ガチで作りたいならやっぱりUnity等のゲームエンジンからの書き出ししかない。
>>231
redux はコード量が少ないから直接見ることをすすめる。
subscribeはまんまそのままのメソッド生えてる。 >>231
ごめんreactからしか使ったことはないけどchrome-extension作るのに使ってて、react以外からdispatch投げたり、イベント処理する必要があるからよく使う。
なんつーかただのjsonの塊だよね結局。typescriptから使ってるから問題ないけど、素のjsから使うとなるとあの巨大なjsonの塊をよくいじれるよなーと思う。 要素数が1か1以上かわからない(0ではない)配列をsortするとき、特に要素数を
数えて条件分岐しなくてもそのままsort関数適用させてもいいですかね?
何かパフォーマンス的に問題出たりしますか?
>>237
要素数が0であっても配列であれば何の問題もない
パフォーマンスは問題が出てから解決すればいい
大きな影響ないことなのに、ブラウザごとに挙動が違う問題を
いちいち考えるのは時間の無駄 そのレベルで効率化ガーは本当に間抜けな話だとおもうよ
何も変わらんさ考えるだけ時間の無駄でただのオナニー行為
最近流行のHTML5でのパーティクル表現なんて毎秒数百オブジェクト新たに生成して一定時間生存させ消していく
その管理の配列がどんどんインデックス追加でオブジェクトがあるかないかのif判定を毎秒数万、数十万とかやってるプログラムとかよく見る
馬鹿げた設計だとおもってもそれで普通に動いてるから笑える
今はそんな時代だよ
皆さんありがとうございます
上司が割と効率にうるさいので怒られるのが嫌で気になった次第です
問題ないみたいなのでこのままいきます
>>242
効率化というより、ソースのわかりやすさ、管理のしやすさを考えればいいよ
判定文を入れることで皆がわかりやすくなるなら入れれば良いし
今度どう使われるかはっきりわからないモジュールならエラー処理をしっかりいれるとか これで効率云々言われるなら、保守の効率引き合いに出して揉めたほうが良いと思う。
つかその上司もここで怒る事はないだろ。
新人なりに思いついたから聞いてみただけだろ。
てか上司に聞けよ。
そこまで気にすることはないけど、理由がここまで言われてるのとは違う
実装見れば分かるけどsort関数は要素数などによってアルゴリズムが使い分けられてて、汎用的なソート関数としてはこれ以上ないくらい最適化されている。
エンジン側の主張は、それ以上を求めるなら専門的なアルゴリズムのものを自作しろとのこと。
ちげーだろ。つか>>246はもうちょっと状況を把握しろ。
よく上司に「無駄なことをするな」と言われる新人がいて、
そいつがふと「要素数1のArrayに対してsortは無駄じゃね?」と考えた。
だからここで聞いてみた。結果はご覧の通り。
新人だから何が無駄で何が無駄ではないのか分かってないんだよ。
それは仕方ない。だから新人なりに考えてみた、これは正しい。
しかしこのレベルの話は上司に聞いたほうがいい。
俺たちに聞いて回答が食い違ったとき、誰が正しいか新人君には分からないだろ?
現在のところキチガイは現れておらず、常識的な回答が揃っているが、これは偶々。
ここにはマジで頭おかしい奴はいる。
最低限そいつらを見分ける能力がないと、ここは使えない。いわゆる嘘を嘘と(ry
だったらとりあえず一応は信頼できる(ことになっている)上司に聞いたほうがいい。
そして、どうしてもその上司の判定に納得できなければ、ここで出来るだけ詳しく晒せ。
そしたら俺たちがどっちの頭がおかしいか判定してやるから。
なお質問は、「arr.sort() は if (arr.length>1) arr.sort() にすべきか?」だろ。
ここには日本語が不自由な奴もいる。
誤解無く伝えたいのなら、コードで書くのも手だよ。 > よく上司に「無駄なことをするな」と言われる新人がいて、
普通は無駄な作業って意味だよ。
人的コスト=時間がかからない方法を選択しろといういこと
問題になってない部分のパフォーマンスの良し悪しに
悩むっていうのも無駄な作業の一つ
ただ新人の場合は、特に勉強しないと無駄な作業が減らせない。
無駄な作業を減らすにも、時間がかかる。
だから上級者によって「無駄なことをしないコード」が
必ずしも時間がからない方法とは限らない。
どれだけ勉強すればいいかは本人次第なのだから、他人にそれがわかるわけがない。
だからこういう場では上級者(質問に答える人)にとって無駄がないコードを提示するしかない
質問に答える人は、もし前提となる知識が特殊なものや大きければ、○○を知っているならば、
この方法を使うのが一番無駄がない(=時間がかからない)と答えるのが良いだろう。
>>248
> と答えるのが良いだろう
じゃあまずお前がやれよキチガイ javascriptスレかと思ったら社畜プログラマーが新人指導についてご高説を垂れていた
>>248
だからさー、配列要素1の時にif文かますのとそのままソート掛けるのとどっちが効率いいかおまえにわかるのか?ん?
環境の実装しだいだろそんなもん
どちらにせよ何も気にするレベルじゃないという回答以外に何があるっているんだ?ん? 変なこと聞いてスレを荒れたような結果にしてしまってすみません
>>253
プログラミングで計算効率について考えるのは全然変なことじゃないぞ
むしろ基本 >>252
速度については誤差以上の差は出ない。
だから開発効率(作業コストが低い方)を選ぶべき
つまり読むべきコードが少ない方がいい 「パフォーマンスの問題」について質問したのにいつの間にかに「作業コスト」の問題に変わっている
これが動的型付けって奴だな
Array.prototype.sortに判定させた方が当然に速い
>>253
いや君は何も悪くない。(むしろ俺が仕掛けた)
ただ多分、上司に聞いたほうが効率はいい。
事実としてここには変な奴がいる。しかも一人じゃない。
というか>>239-243で回答としては完全に正解で、それ以上どうこうってのはない。
しかしなぜかケチがつくだろ。 >>259
ありがとうございます
そうですね…業務上のコードは自分なりに調べてからちゃんと上司に相談します
あとこれは仕事は全然関係なくてちょっと気になっただけなので恐縮ですが、JavaScriptには擬似的な
プライベート変数を持たせるためにクロージャという仕組みがあって、関数内で関数を宣言できると聞きました
その場合
function hoge(){
function piyo(){ }
}
と
function hoge(){
var piyo = function(){};
}
という二種類の宣言方法があって、「前者は呼び出し時に巻き上げされて後者はされない」というところまでは
わかったのですが、それだけだと後者にするメリットが無いような気がするのですが、何か他に
抑えておくべきポイントはありますか?
普通は皆さんどちらを使われてるんでしょう >>261
正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。
前者のコードの場合、関数定義より手前で関数呼び出し出来るが、後者は出来ない。
従って、ある関数定義を見つけたい場合、関数呼び出しより前に存在する事が確約されており、関数呼び出しコードの後ろを読む必要はない。
前者はコーディング規約で制限することは出来ても、後述で関数定義されることを止めることが出来ない。
最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
IE10- がMicrosoftのサポート対象外となった今では const, let の実用性は増している。
http://kangax.github.io/compat-table/es6/ >>262
なるほど、ありがとうございます
原則後者で書くことにします >>247
だからそれも含めて気にする必要ないといったんだよ >>262
> 正解は人それぞれだが、関数定義後に関数呼び出しをするのは一般的で、そう決める事で厳格なコードになる。
php、perlでは関数定義より手前で関数呼び出しができますよね?
関数定義後に関数呼出しするのが一般的という根拠はなんでしょうか? JavaScriptを勉強しようとしてる
目標として言語仕様の習得段階を分けようとしてるんだけど良い切り分け段階ないかな??
C++なら変数の型、ポインタ、クラスの基本的な扱い方みたいな
htmlの基本的な扱い方と、JavaScriptの連動がはじめにくるのかなって思うけど次の段階はなにだろうか
もともと関数定義後に関数呼び出しをするというのは
C言語ではプロトタイプ宣言と言われ、
正確に言うならばこっちは関数呼び出しができるか?ではなく
コンパイルができるか?という話なので少し意味が違うが、
まあ、ともかく特殊な方法が必要だった。
それが面倒だってことで改良したJavaでは、
関数定義の順番とは無関係に関数呼び出しが
コンパイルできるようになった。
コンパイル言語とスクリプト言語の違いがあるから全く同じ考え方ではないが、
定義の順番とは無関係に呼び出せる設計に進化してきている。
巻き上げという仕様だって本来はないほうが実装は簡単なんだよ。
だけど定義の順番とは無関係に呼び出せるようにあえてそういう機能を搭載している
だから関数定義後に関数呼び出しをするのは一般的といわれると違和感がある
それから変数の巻き上げと関数の巻き上げは意味が違う。
変数の巻き上げは、その変数が使えたとしても
無効な値(undefined)が入っているから通常は役に立たないが
関数の巻き上げ
foo();
function foo() {}
↑こういうのは、正常に動作する。
"正しく動かない" からメリットがない。だから変数の巻き上げは危険
という話なので、 そもそもの前提が違って
"正しく動く" ならば、なんのデメリットもないんだよ。
>>262
> 最も、そのあたりを気にする人は let, const を使用する方が無難ではあるが。
本末転倒。
var piyo = function(){}; なんて書き方を使うから、
piyoが書き換えられたらどうする?
constにした方がいいんじゃね?なんて話が出てくる
function piyo(){ } であれば piyo に別の関数を代入することはない。
もちろん代入できるが誰もこんなコード↓は書かないだろ?
function piyo() {}
piyo = function() {}
そしてこんなコードを書いたら関数に代入すんなと
ESLintでちゃんと警告出してくれる。 テキストファイルは行ごとに順番に読み込んでいくからな
順番があったほうが分かりやすい
プログラミングのコードは、特にスクリプト言語のコードは
プログラムを動かすための命令であると同時に
それ自体がプログラムで分析される対象となりうるテキストファイルでもあるのだ
関数の呼び出しは順番に実行しないし、
順番に実行すると言うならばなおのこと
このように書いたほうがわかりやすい
step1();
step2();
function step1() {
step1_1();
step1_2();
}
function step1_1() {
・・・
}
function step1_2() {
・・・
}
function step2(); {
・・・
}
ところで「巻き上げ」って呼び方流行ってんの?
どこのバカが言い出したんだ?
>>273
てか、hoistingを巻き上げ以外になんと呼んでるんだ? >>275
うーん、google調べでは巻き上げが優勢なんだが
javascript ホイスティング 約 1,370 件 (0.51 秒)
javascript 巻き上げ 約 180,000 件 (0.41 秒) ああ、モジラの日本語文書で使ってるのか
なんか感覚的にスゲー気持ち悪い
だいぶ前にもこのページは見た事あるはずだけど その時から使ってたのかな
jQueryでPHPにajaxでデータを送りたいのですが
まず、これはきちんとファイルが送れて、PHP側でも$_FILESでデータを受け取れます。
var fd = new FormData();
fd.append("file", uploadfile);
var postData = {
type : "POST",
async : true,
dataType : "text",
data : fd,
processData : false,
contentType : false
};
しかし、下のコードの場合は$_POSTが空になります。
var myData = {"txt":str, "formdata":fd};
var postData = {
type : "POST",
async : true,
dataType : "text",
data : myData,
processData : false,
contentType : false
};
dataにフォームデータではなく配列を指定した場合
PHP側で受け取りデータが空になるのは何故なのでしょうか?
1週間ここで詰まってまして、、、誰か助けて下さい
>>249
1週間、なにを他に試したのか書いてみ
まさか、そのコードを何も変えずに
実行して、値が取れないなぁって
何度もやっていたわけじゃあるまいな? processData : false,
contentType : false
この2行が不要
マニュアル読めって話だな
まさか英語だからって読んでないってことはないよね
async : true,って書いたことないけどなんか変わるん?
寧ろ
cache:falseって付けない方がなんか不安なんだけど
dataType : "text",←がマズイんじゃない?
formベースだと↓で書くし
タグのプロパティにenctype="multipart/form-data"
とか書くし
どっかのサイトには
dataType : "json",って書いてあるところもあったけど
非表示のフォーム作って
data: $("#form").serialize()みたいな事やった方が
ってやった方が確実じゃない?
>>280
配列の書き方からPHP側でのvar_dumpから
画像変えたりとにかく色々試しました
>>281
その2行削ったら
Uncaught TypeError: Illegal invocation
が出てそもそも送信が出来なくなりました。
>>282
関係ありそうなところは読んだのですが
特に問題なさそうですし、そもそもWEBのサンプルコードを
コピー改編して作ってるのであまり間違いはなさそうに見えるのですが、、、 >>283
送信のプログレスバーを表示したくてasynctrueにしています >>284
dataTypeをjsonにするのも前に試したのですがダメでした >>288
配列にするとダメになるので配列の書き方が間違ってる可能性を疑いませんか? <from>タグで書いたフォームを送信した場合と上の上手く行く場合上手くいかない場合をWiresharkでパケットキャプチャしながら比較してみたら?
>>289
だから配列の書き方をどう変えて試してみたんだ?って話 var myData = {"txt":str, "formdata":fd};
ここだけみると
strとfdが定義されてなくない?
寧ろ↓みたいな型あるなら
var fd = new FormData();
fd.append("file", uploadfile);
fd.append("txt", str);
とかでいいんじゃない?
>>291
キーの名前をダブルクォーテーションで囲ってみたりとか
要素のカズを1つにしてみたりとかですが
それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか? >>292
もちろんソースの上の方でstrは定義されています
実は3日くらい前に
fd.append("txt", str);
も試したのですが、PHP側でtxtの抜き取り方が分からず、
$_FILESをvar_dumpして中身を見てもtxtの内容が見当たらなかったのです、、、 >>289
json規格では
{name1 : "value1", name2 : "value2"}
ってのはオブジェクト
配列は
array : [0,1,2,3]
みたいなのの事を指す
>>294
print("<pre>");
print_r($_POST);
print_r($_FILES);
print("</pre>");
でみてみりゃいいじゃん >>295
ありがとうございます!無事解決しました!
しかし原因が分かるとID:kwmzBMx/0の指摘の
的外れっぷりが笑えてくる・・・ww
無能すぎんだろwww いやいやPHPやってて$_FILES使ってて
$_GET $_POST $_REQUESTを知らないとか相当進め方おかしいから
体系的にやり直したほうがいい
>>293
> キーの名前をダブルクォーテーションで囲ってみたりとか
> 要素のカズを1つにしてみたりとかですが
> それを聞くってことは配列の書き方に原因があると踏んでるのでしょうか?
数学に例えれば、計算が間違っていると言ってるのに、
* じゃなくて×って書くべきだったかな?
それとも変数はxとyじゃなくてaとbを使うべきだっったかな
ですます調で書くべきだったかな?
って言ってるようなもんだって言ってるんだよ
そんな意味のないことをやって時間を無駄にしてる
お前が嫌いな部分をちゃんと調べろよ この分だと
<form action="action.php" method="post">
<input type="text" name="my_name" />
<input type="submit" value="送信" />
</form>
みたいなWebフォームも書いた事なさそうだな
data scheme URIで表示している画像(サーバー上に存在しない)を
ツイートボタンで添付してTwitter上に表示させる方法って存在する?
色んな質問見てるとjsはコピペすればOKと考えてる奴が多くてゲンナリするな
今までは簡単な数行のアプリならテスト書かずともいいやっておもってたけど
BABELとかwebpackとかを初めて知って
テスト書かずにプログラムは無理って思った。
結局はコスパ
いくらテストが大事とは言ってもテストクソしにくい物はできない
簡単にできるんならすればいい
jestはなんかテスト書きやすい。設定とか特にいらずに使えるから?
私はjapがプログラムを作成することに向いていないと思います
japはマニュファクトリーが向いているです
彼らはITの産業を大韓民国の企業に依頼するべきです
ベトナムとかマレーシアとか信頼できる国あるし敢えて敵国に依頼する必要はないと思う
今更気づいたが、2chでもデフォでJS使ってポップアップするようになったのね。
というわけでソース見てるが、あーはいはいって感じですね。
あーはいはいでわかるかよw
あれだ、評価するとお前の評価がクソだってばれるから
そうやって詳しいふりしてるんだろw
>>311
てかまじ韓国人は死ね
評価したいならお前が自分で見てくればいいだけ。俺に噛み付く必要なんてない。
おかしな奴が沸いているから話題を変えてやろうとしたのに、韓国人はこれだから駄目なんだ。
お前らって基本的にそんなんばっかだよね。
マジでお前らが全員死ねば2chもだいぶ浄化されると思うよ。
ところでマジレスすると、韓国人がプログラミングに向いているわけないだろ。
あいつらは論理的思考が全く出来ない。
ソースはどこにでもあるがこのスレの>>84以降の韓国人もそう。
日本語が不自由な連中は、自分で言っていることの論理的整合性が取れてない。
自分のバグを他人のせいにして誤魔化しまくるやつって居るだろ。韓国人はこのタイプ。
「てかお前、日本語も英文も読めない人?」が煽りとかアホかよ。
自意識過剰で自分から韓国人だとゲロってる。
仕様書の原文が英文で、後俺が読めるのは和文だから、
俺が内容を保証できるのはその2つしかないんだよ。だから論理的にはまっとうな言い方だろ。
だいたい、「右」と書いてあるのに「ウリには『左』としか読めないニダ」と言われても知らんがな。
プログラミング以前に最低限の論理/言語能力は必要なんだよ。韓国人にはどちらもない。
マジで連中は救いようがないゴミだよ。それはこのスレ見てても明らかだろ。
と言うかそもそも韓国発のマトモなOSSなんてないだろ。
俺が見てておっ!て思うのは大体アメリカ人かロシア人だが。
まあ、あるというのならURLくれ。見てみるから。 >>312
ぶっちゃけ日本のITレベルは底辺だとおもうよ
韓国の肩もつわけじゃないが韓国にすら負けてるのは確実だろ
しゃちく製造の為の学校教育、終身雇用、年功序列、出る杭は打たれる、責任のなすりつけ、上部にいくほど責任はとらない
こんな国でまともな人材が育つ訳がない 韓国に負けてることはないよ。
事実として韓国発のものは何もないだろ。
自虐も行き過ぎると妄想だぞ。
あまり有難がるのも問題だが、日本発ならRubyとWinnyとかか。
Winnyはポシャってしまったけど、分散DBとしてはかなりのインパクトはあったよ。
今同じようなことやってる物ってあるんだっけ?(秘匿性ではなくて分散DB)
あと、社会に対して一方的に文句を言っていいのはせいぜい20代までだ。
お前も社会の一員であり、
悪い部分は改善するように努力しないといけないことを忘れるな。
>>315
それって極一部の個人の力によるものだろ
一部の有能な人間の存在を否定する気はないよ
国内における一般企業のITのレベルが世界とくらべとれだけ低いかという件と混同いないほうがいい では具体的にどこがどのように問題なの?
それは具体的にどの国がどのようにすごいの?
そしてお前が間違っている日本語で一生懸命日本下げする理由は?
やっぱり韓国人は死ねでしかないね。
論理的に話が出来ない。
そもそもIT界なんてどいつもこいつも個人だろ。
突出した個人に多数が纏わりついているだけだ。
組織としてスゲーって所はないと思うが。
北も南もヘル朝鮮だからな
個人の能力とか完全に殺されてる
だから整形してまで芸能にいくしかないわけだ
てか韓国がどうとかJavaScriptに何も関係なくね?いつまで続けんの?
まあ韓国に負けてるっていうか、雰囲気がぜんぜん違うよね
まず韓国はとにかく中国市場に対する意気込みがすごいんだよね
そして欧米だとB2Bと投資活動が凄い
一方日本はオタクなクリエーターとオタクなユーザーで盛り上がる風潮なんだよ
この件に限らないけど、日本って良くも悪くもお金を回さない国なんだよね
というか、いつもどおり韓国人は息を吐くように嘘をついているわけだが、
ちょっと調べたが、IE縛り全く改善されてねーじゃねえか。
技術力高いつもりならそこをまず何とかしろよなと。
つかマジで、韓国人は「ウリがそう思うからそうに違いないニダ」ばかりだ。
客観的に見るという感覚がないんだなあの連中は。
プログラムなんて客観的にしか動かないんだから、連中が得意なわけないじゃん。
そしてニュー速って何のことかと思いきやAFLか。
そしていつもどおりでっち上げの嘘で誤魔化そうとしているという。
なんつーか、マトモ人間扱いする方が問題だよな。
それはさておき、Web板、無理やり流している感はあるが、
それでもお前らで何とかしようというのはいいことだよ。
ただしあっちにも韓国人は潜んでいて、
明らかに間違っている投稿もあるから気をつけろ。
>>320
韓国人が全員死ぬまでだろ
>>321
よしではその意気込みがすごいとやらを観てみよう。
どの中国サイトを見ればいいんだ?URLよろ。
というかそれ以前に俺はWeb系ではないのでパーティクルが流行とか知らないんだが、(>>241)
これはどこら辺で流行っているんだ? ゆとりor韓国人認定して噛みつく奴が約一名常駐しているが、病気ではないかと本気で思う
病気というか、もう「韓国」って文字に対して拒絶反応を示す脳回路ができてるんだと思うぞ。
他にも琴線に触れる政治系のワードがいくつかあってその度に暴れてるよ
前みたいに自分で隔離スレ立てて篭っていてもらえるといいんだが
AIも学習が進むとこういう「正しくバグった人間」みたいなのが出てくるんだろうな。
学習して重くなったノードがより一層重くなる方向にしか進まなくなる見たいな。
>>328
そりゃそうだろ。
学習が中途ハンパなNNは、中途半端な出力しかしないしな。
過学習ってのもあるし。 >>314
日本は底辺ってのには、同意だな。
エンジニアが虐げられているから、ってのが大きいな。 虐げられてるねぇ
まあ能無しの比率が多いとは思わない
バリバリに見える発展途上国とかだと実はプログラマの8割くらいは
正しく動くコードも書けない能無しだといろんな調査でバレてるから
それよりはマシだろう
どちらかと言うとせっかく能がある奴が自分を安売りしたり、
才がある奴が長いものに巻かれたりする方が問題だな
>>324-329
おう、NGに協力してやるよ
韓国人死ね
というかいつも思うんだが、韓国下げに対してだけ妙にレスポンシブなのは気持ち悪いよ。
人口比1%以下でこれはないよね。
いずれにしろ出て行くのは自由だよ。Web板も流れているし、いいと思うぞ。
俺はあっちには行かないから安心しろ。
お前らは乗っ取り/背乗りしかしないが、それは韓国人やヤクザのやり方だぞ。
いい加減止めろ。誰の得にもならないし、ただの反社会行為だ。
そうではなくて、Web板のスレを盛り上げて、このスレの存在価値を無くし、
正面から正々堂々とこのスレを殺してみせろ。それが正しい競争だよ。
それが出来ないのなら、所詮お前らはその程度なんだよ。
お前らがこのスレに纏わりついていること自体、これを証明していることを自覚しろ。
>>331
内容には同意。韓国も発展途上国でしかない。
日本はそれらよりはだいぶマシ。
>>332
英文ソースも確認したが詳しいことは書いてないな。
もっとも、同じテストを日本でもやってみないとわからないし、
それ以前に大学生が1時間で解決できるプログラミング課題という時点でゴミだが。
とはいえ、外国人には謙遜というものは無いから、
奴らが主張する「出来ます」と俺らが想定するレベルでは相当な隔たりがあるのも常だが。 >>333
前から思ってた事がある
おまえが韓国が嫌いなのはわかったがおまえの発言内容やその性根っておまえが抱いてる韓国人そのものだぞ
レス中の「韓国」を「日本」に変えてみてごらん >>334
俺は韓国が嫌いなわけではなくて、
論理的でないゴミが嫌いなだけ。そして韓国人はほぼ全員これに該当するだけ。
お前が何を言いたいのか分からないが、もし韓国の方が素晴らしいという主張を続ける気なら、
具体的に個人名/組織名/URL等提示すればいいだけ。(俺は早い段階でやった)
お前がすごいと思うものを持ってこい。
それもせずにお前らはわめき散らすだけだろ。だから韓国人はゴミなんだよ。
とはいえ俺の個人的志向なんてどうでもいい。お前らはWeb板でがんばれ。
俺は色々計算の上でやっている。
それが間違いかどうかはお前らがWeb板を盛り上げて証明すべき事項で、
ここを乗っ取るのは完全に間違いだよ。
俺はWeb板についてはまったく干渉してないし、今後もするつもりは無い。
逆にここについてはいちいち細かく干渉し続けてきている。
それでこっちのほうが盛り上がるのなら、それはお前が間違っているということなんだよ。
JavaScriptはWeb言語なんだから、フォークで決着つけるべきだろ。
そして韓国人死ね
ああこれはNGへの協力だからね(はあと) >>335
おまえの精神が韓国人そのものって言ってるんだよ
わかったかい?
もう一度書いておくぞ
レス中の「韓国」を「日本」に変えてみてごらん
あら不思議、韓国人の出来上がり 気持ちはわかるけどその返しも同じ穴の狢だからな
やめとけよ
コンパイルエラーなんてコンパイルしてみてから確認すりゃいいんだからぶっつけ本番コンパイルみたいなのを試験にする意味とか皆無
>>336-337
まず俺はお前らが何故突然大挙してこっちに来たのかが分からない。
俺にはWeb板のスレはいつもどおり機能しているように見えたし、
統合とかそういう話も全く無しで、自然発生的にいきなり来たからね。
でも、それがもし、こっちのスレのほうがマシだという判断の下なら、
それは完全に間違いだ。なぜなら、このスレがマシだったのは、
× 俺がいちいちグダグダ注文をつけたから
○ お前らがいなかったから
だからね。スレの質は住民の質であり、
お前らがいるスレはゴミになる、それはお前らがゴミだから、でしかない。
だからお前らの同時移住はただのイナゴ行為で、結局良スレを潰してしまう。
これがこれまで繰り返されてきたことであり、これはお前らにとっても利益はないだろ。
だからWeb板に帰れ、あるいは別スレ立てろ(前スレの終盤参照)、と言っている。
お前らはそれもせずにイナゴ行為を続け、しかもスレ立ても邪魔するし、
ただのキチガイだよ。死ねでしかない。
しかしこれももう何度も言った事だけどね。
だから韓国人は死ね
ああこれもNGへの(ry (ワッチョイ bdc8-zUMb) が垂れ流す韓国論はゴミだと思うが、自分を客観視できないタイプなんだろうな
もしお前らが自分のことを客観視できるのなら、
お前ら自身がゴミだと自覚できるはずだ。
だって事実として、お前らがいるスレがことごとくゴミになるんだから。
俺について文句を言うのなら、Web板に行けよ。
それで盛り上げて、結果としてこのスレを殺してみせろ。
そうやって+方向の競争にしなければならない。
お前らは−方向の競争しかしない。
だからゴミなんだよ。
そして韓国人は死ね
ああこれも(ry
韓国の悪口言ってる奴何なの?
お前在日に虐められたの?
市ぬまで虐めとけばよかったな
在日は差別されてお前どころでない社会的いじめを受けてるんだ
弱者に石を投げるクズがお前だ
おー、プロ被害者乙。いい加減その嘘も止めろよ。
つかこのスレどんだけ韓国人いんだよ。正直びっくりだわ。
で、結局ここまでの反論は全て「ウリがそう思うからそうニダ」しかないだろ。
これが韓国人だよ。全て感情論。
しかも自己矛盾してるだろ。
そのクズが居座っていると分かっているこのスレに何故お前はわざわざ来てんだよ?
プロ被害者だからか?
つーか、せっかく協力してやってるんだから、ちゃんとNGしとけよ。
そしたら俺のレスなんて見えないはずだし、お前らも火病ること無いだろ。
真面目に議論する気あるならURLもってこい。
お前らによると韓国や中国のサイトはすごいんだろ?
そして韓国人は死ね
(ry
>>343
というか読み直したら、しれっととんでもない事言ってるな
> 市ぬまで虐めとけばよかったな
へー、お前はイジメの加害者なんだー
死ねよマジで
韓国人死ね(ry 2chでプログラマ板がプログラム板から隔離されている理由がまさにこれ
ああ確かに、マ板的話題についてかなり早い段階から指摘されていたな。
では少し技術的なことを書いておこう。
Web板の719以降、zipWithだが、ネイティブで書くならこう。
var a = [13, 64, 76];
var b = ["as", "ft", "jay"];
var c = a.map(function(v,i){return {number:v, name:this[i]};},b); // (C)
宣言型っぽく書くなら結局のところ、
var d = [].f(a,'number').f(b,'name'); // (D)
と書きたいところだがこれはプロトタイプ拡張になるので、精々
var e = new MyArray().f(a,'number').f(b,'name'); // (E)
これで直行性重視でfを整備するか、
面倒だから2つ纏めて(C)にしてしまうか。
ただ正直、こんなところで悩むから上達しないんだと思うよ。
だからあの質問者に対しての(表面的ではなく)本当の意味での親切な回答は
「ウダウダ考えずに今お前が書ける方法で書け」であって、
俺だったら無視して終わりだ。
韓国人死ね(ry
ただしこれを自らの課題として捕らえた719とlodashは悪くない。
お前らは既に一通り書ける上で、別の書き方を試している。
これ自体は上達する方法ではあると思うし。
だから応援してやるよ。どうせこっちも見てるだろうし。
当人は理解しているだろうが、
var f = (y) => (x,i) => new Object({ number : x, name : y[i] });
はクロージャで補足するので筋が悪い。
var result = zipWith(f, a, b);
は「関数型で」というリクエストだからだと思うが、通常なら
var result = zipWith(a, 'number', b, 'name');
の方が使いやすい。だったらいっそのこと纏めちまえ、となると(C)になる。
JavaScriptの場合はthisを使えるのでいちいちラップすることなく、直接(C)形式で書ける。
この仕様を奇妙だと思うか、便利だと思うかだが、
JavaScriptの実力を使い切るつもりなら、後者じゃないと駄目だ。
その場合、関数のthisはいちいち何になるか考えながらコーディングする癖が必要になる。
これをウザイと思うか、面白いと思うかだね。
lodashに関しては、大概の機能については上記の通り1〜3行で書ける物ばかりで、
よほど大量に使わないと効果は得られない。
「そんなときにlodash」ってのは彼が常にやっているけど、正直、訴求力はないね。
ただし個人的に常に使うと決めているのなら、それもありだとは思うが。
韓国人死ね(ry
>>349
そだね
JSなら無駄にカリー化せずともアローをやめてthisで使うだけで良かったんだけど、
何かあの質問者は本気で聞いてる感じでもなかったからそこら辺は手抜きしたわ
JSは純粋関数型じゃないんだから変にこだわりすぎても損するだけなんだけどな >>350
thisだから気持ち悪いが、この場合実質的に引数だから
これでも「JavaScript的にはカリー化してる」と言い切ってしまうのもありだとは思うがな。
なんつうか、この辺の気持ち悪さに慣れる必要があるというか。
とはいえ意味無い質問が多いのは俺も思う。 今書ける方法で書ける? ・・・当然
違う方法で書きたい!
↑
上を目指そうとするんじゃねー
今書ける方法で書け(ドヤァァ
新人潰しウケルw
javascriptがHttpSessionに格納されているbean形式のデータを直接参照する手段はありますか?
またその逆にクライアントのjavascriptで生成された変数などをサーバー側に送る手段はありますか?
よろしくお願いします。
>>353
よくあるサーバー側の変数をクライアントに渡す方法です
方法1 サーバー側にhttpsession内のbeanをjson化して返すGET呼び出し口を作り、クライアント側のjsではxmlhttprequestを使って非同期でGETリクエストして参照する
方法2 サーバー側のhtmlテンプレートにscript type jsonタグを配置し中身にbeanをjson化したものを記述、クライアント側のjsではdocument.queryselectorでタグを取得してjson.parseで変数化する
クライアント側の変数をサーバーに渡す方法
サーバー側でリクエストボディのjsonをbean化して処理するPOST呼び出し口を作り、クライアント側ではxmlhttprequestで変数をjson化したものをリクエストボディに加えてPOSTリクエストする >>354
詳しく書いていただきありがとうございます。
非同期というのはajaxを使うということでしょうか?
正直こんな質問をしている今の自分のレベルで実装するのは厳しいということはわかっているのですが…もう少し粘りたいのでよければ教えてください >>355
ぐくれば簡単なサンプルプログラムとか沢山あるよ
それを見てしらべていけば簡単 >>355
javaScript自体は非同期ですよ >>357
ああ、それはjavascriptがクライアントサイドだけで動いて、サーバー側に何か情報を随時伝えているわけではない。そのことを非同期というという理解で合ってますでしょうか? >>353
> bean
Javaスレで聞け
韓国人死ね(ry >>361
韓国人死ね
つか、お前らのその反応だけ早いのって気持ち悪いと思わないのか?
お前ら韓国下げされたら困るのか?日本下げは嬉々としてするのに?
事実として韓国人はゴミだよ。実際、嘘しか言わないだろ。
韓国や中国がすごいと思うのなら、URL持って来い。見に行くから。
あと何度も言っているが、背乗りせずに、お前らでスレ作って盛り上げろ。
そして結果的にこのスレを殺せ。それが正しい競争だ。
お前らゴミ韓国人がいなかったときはこのスレは平和だった。これは事実だよ。
俺は本当に何度もこれを言っているし、何度もお前らに「何故ここに来た?」と問うている。
それをお前らは無視しているのだから、俺にもお前らを無視して
韓国人はゴミだから死ね
と言い続ける権利はある。何もおかしくないだろ? NGワードがなんで復活してんのかと思ったらサーバー移転か
>>363
テストに協力してやるよ
韓国人死ね
てかマジで、NGとかで無理してここに居座らず、
別スレ立てて盛り上げればいいだけの話だろ。何故それをしない? 本文に毎回「韓国人死ね」を加えるぐらいなら、名前を「韓国人死ね」にしろ、と小一時間問い詰めたい。
韓国人が日本人を比較的かなり高い割合で悪く思っていることは確かだが
なんでそれに張り合おうとするのかが分からない
しかもこのスレで
それとそういうヒステリックな反応を火病と言うんじゃないのか?
他人を憎む通す態度とか一番良き日本人からかけ離れてて、
悪き韓国人のイメージに近いのは>>362君になってしまっているよ こちらのサイトにある
http://www.nishishi.com/javascript/2014/realtime-clock-setinterval.html
リアルタイムの時計の表示を
クリックで他サイトに飛ぶテキストリンク形式にしたいのですが
どのように改造すれば良いのでしょうか?
<p id="RealtimeClockArea">※ここに時計が表示されます。</p>
<script type="text/javascript">
function showClock1() {
var nowTime = new Date();
var nowHour = nowTime.getHours();
var nowMin = nowTime.getMinutes();
var nowSec = nowTime.getSeconds();
var msg = "現在時刻は、" + nowHour + ":" + nowMin + ":" + nowSec + " です。";
document.getElementById("RealtimeClockArea").innerHTML = msg;
}
setInterval('showClock1()',1000); >>368
変数msgをaタグになるように文字列追加すればいいんじゃない? <div id="RealtimeClockArea">
<a href="絶対パス">※ここに時計が表示されます。</a>
</div>
document.getElementById("RealtimeClockArea").addEventListener('click', function() {
location.href = 'リンク';
},false);
>>368
setIntervalの引数には()いらなくなかったか? >>367
韓国人死ね
>>368
その程度なら、最初から勉強した方が早いからそうしろ。
あといつも思うんだが、その手の馬鹿サイトは参考にしないほうがいい。
馬鹿が再生産されてる。
他言語ではほぼありえないのだけど、これは実行環境が提供されているからなのかな?
例えばCとかだと時計をWebページ上に表示するわけにはいかないし。
その場合は、
<p>現在時刻は、<span></span>です。</p>の構成で
一度だけgetElements等を行いspanをクロージャで捕捉し、
span.textContent = new Date().toLocaleTimeString();
としてるところを参考にしろ。皆無だと思うが。
なぜかは分からんがそのgetHours()等を使って組み立てるのは馬鹿的な定番だから、
それをやっているサイトはゴミだと思ってほぼ間違いない。
俺がJavaScript初心者だった頃、
ググってそういうのばかりだったからそれが仕様だと勘違いしていたが、
後でMDN見て愕然とした覚えがある。
あとそのsetIntervalでEvalする記述も通常は非推奨じゃなかったっけ?理由は忘れたが。
どちらにしても初心者は訳も分からずまねをするしかないので、
この手の馬鹿サイトが大量にあるのは問題だと思うんだがなあ。
ところで、https側からhttp側のlocalStorageを読む方法って無いか?
サイトによっては偶に両方使ったりしてばらけていて、纏めたいのだが。 CookieはそういうのできるがLSではできない
あと冒頭にそういうこと書くの頼むからやめてください
見てて気持ちの良い人は居ないと思う
>>368
createElementでa要素ノードを生成してappendChild >>375
NGWordに協力してくれているのだから、素直にNGWordしてスルーすれば良いと思う
下手に反応するとつけあがらせる事になる クロージャで捕捉し
クロージャで捕捉し
クロージャで捕捉し
wwwe
ライブラリ荒らしよりこっちの方が段違いにたち悪いわ
>>377
根っからの本当の精神異常者に限っては刺されちゃ負けなので
現実でも少々のことがあってもスルーするという対応はベターだと思うし
スレに関係する特定宗派に対する煽り目的ということならその理屈も分かるが
彼はそうじゃなく、みんなと有意義な情報交換をしたいという気持ちがありつつ
実質的には言葉が汚いのと同じようなもんで、意に反してみんなの反感をかってるんだから
そこをスルーしてすれ違いのまま置いとくというのは良くないことだと思う
真正面からぶつかっていって、最後に仲良く手を取り合って終了がベターでしょ? var f1 = function(arg) {
return new Promise(...);
}
console.log(f1()); -> Promise { <pending> }
console.log(function() { return f1(arg); }); -> [Function]
引数を取るProimise化した関数をPromise.resolve().then()に渡したいのですが、何かいい手はないですか?
いちいちfunction()でラップするしか無い感じですかね?
Promise.resolve().then(f1);
こういうことかな
これならresolveに渡した引数がそのままf1に行くけど
>>382
それです、ありがとうございます
最初のresolveに渡すっていう発想は全くありませんでした >>380
彼が精神異常者かはさておき、彼と「有意義な情報交換」が出来るとは思えない。
彼は自分に絶対の自信を持っており、他者の価値観に対する配慮がない。
価値観の多様性など考えるべくもなく、自分が絶対の正義であり、自分と異なる他者が悪。
■彼と良好な関係を築くポイント
- 彼の意見を否定してはならない。否定すれば(>367)暴言が返ってくる。
- 彼のプライドを刺激してはならない。彼のプライドを守れるように彼を持ち上げなければならない。
- 彼がまだ発言していなくとも彼の見解と違う意見をしてはならない。彼は絶対の自信を持ってそれに反論するので、それを肯定してやらなければならない。
率直にいって、面倒くさい。
実際、同じような輩とぶつかってみたことはあるが、2chでは一度として成功しなかった。
そもそも、ここまで気をつかって関係を築く時点で対等ではないし、健全な議論ではない。 せやな
でも電車とかの同じ室内で独り言言ってるやつはスルーできて
頓珍漢な話題言う奴も話半分で聞けるけど
ノイズを出すのは無視しづらいね
ReactつかうのにJsxがいいって聞いたんだけど
Jsxの本って売ってないの?
TypeScriptとはまたちがう?
>>384
試してみましたが
時計部分はリンクにならないっす・・・ >>387
単に<>周りの仕様が追加されただけ。
あえて本にまとめる必要もないべ >>375,380
ゆとり乙
お花畑過ぎて引く
韓国人死ね
つかお前色々矛盾していることに気づけないのか? ほう?それを出してきたか。
ならば応戦してやろう。
同族嫌悪ということにして誤魔化しているのは韓国人だけ
いつもどおり、韓国人が息を吐くように嘘をついているだけ
韓国人死ね
韓国人は矛盾に気づくほどの知能がないようだが、
韓国人は迷惑行為をし続けてる。だから韓国人は嫌われる。
本当に、それだけ。
お前らは、何故自然発生的に国というものが成立したのか、
或いは何故韓国人「のみ」が嫌われるのか説明出来ないだろ?
そういえば、おまえらはニュー速も好きだったな。
しっくりする表現をそこで見つけたから紹介してやるぜ。
「嫌韓は日本人によるアクションではなくて、リアクションである」
全くその通りだ。韓国人が糞だと実感したから嫌っているだけであって、
例なら>>84以降。マジで死ね。
誰にも韓国人を嫌う権利はある。
あれ見て韓国人が糞だと思わないのなら、お前に問題があるよ。
つかマジで、韓国人って池沼なのな。
なんだかいつか見た展開なんだが。
同族嫌悪だって言う馬鹿はかなり久しぶりだが。 JSX と言っても、構文は、2タイプの内のどっちかだろ
ヒゲ型の、{{ 〜 }}
eRuby型の、<% 〜 %>
>>394
韓国人が嫌われてようがどうでもいいが
お前さんがここでそういう書き方をするのは問題がある
韓国人ではなくお前さんの問題だよ >>396
はい声闘頂きました
韓国人って本当に池沼だな
ウリが正しいニダ、お前が間違っているニダ、しか言えない
韓国人死ね
例えば、>>315以降、韓国や中国がすごいと思うのなら、
主観的でもいいから何をすごいと思うのか言い、
少なくとも他人が確認できるように(ググれる)キーワードやURLを出せばいいじゃないか。
そうしないと会話が成立しない。
繰り返すが、お前らは本当に声闘しかしない。
ひたすら感情的な言いがかりを繰り返すだけだ。
だから連呼リアンって呼ばれるんだよ。
何度も言っているが、不満があるのなら出て行って別スレを盛り上げてこのスレを潰せ。
それが出来るのならお前の言い分が正しいということになる。
お前らが居なくてもこのスレは成立する。
何故わざわざいやなスレに留まるのか?
在日韓国人みたいな被害者ビジネスをしたいからか?本当にゴミだな。死ね。 次から>>14の諸注意にヘイトスピーチとネット右翼お断りを追加しよう
ただのスレチならまだしも流石に酷すぎる >>398,399
韓国人死ね
つか単発がスレ運営に関してグダグダ言うとか、頭おかしいだろ。
ワッチョイコロコロもチキン過ぎて笑える。
マジで韓国人は死ねよ。お前らが居なければ2chはだいぶマシだろうよ。
そうやってヘイトスッペチ認定を繰り返してきたから今のパヨクの体たらくなんだよ。
今まで一度も論理的な反論がないし。まあパヨクの日常だが。
とはいえ、どっちが頭がおかしいかは読んでいる奴が決めればいいだけだ。
さすがに今時ネットする奴は、連呼すれば洗脳できるとか無いぞ。
韓国ではそうなのかもしれんが。
ついでだから>>385がパヨクな件を説明しておこう。
> 2chでは一度として成功しなかった
これに対して自分が悪いとは1mmも思わないのがパヨクの特徴だよ。
成功したり失敗したりするのは普通で、
実際、韓国人みたいに頭がおかしい奴も居るのも事実だから、100%成功ってのもありえないけど、
一度も成功しないのならお前が悪いんだろ、でしかない。
ちょっと考えれば分かるはずなのだが、ちょっとも考えないところがパヨクだよね。
何で相手が常に悪いってことになるのさ?頭おかしすぎ。 >>399
「みんなで〜しよう!」の前に自分で動いたら?
NGするとか運営に通報するとかさぁ つうか好きの反対は無関心って言うし
実際お隣の国貶してる体裁で実際に迷惑してるのは俺たちだし
だから辞めてくれって言ってるのにそこら辺無関心で辞めないとか
日本人より韓国人の方が大切なんだなって分かるわ
>>402,403
連呼リアン乙
韓国人死ね
繰り返すが、韓国や中国がすごいと思うのなら、URLくれよ。
見に行くからさ。
それ見てどうか決めればいいだけだろ?
韓国はすごいニダ。ウリがそう思うから間違いないニダ。
ウリの意見を否定する奴はレイシストニダ。絶対ニダ。
よく見かける光景ではあるけど、お前らって全くこの通りだよね。
何度も言っているが、お前らが正しいと思う方法があるのなら、
それでお前ら自身で別スレ立てて盛り上げ、結果的にこのスレを殺せ。
これが出来れば、お前らが正しかったことの証明になる。
出来ないのなら、お前らが間違っているということ。
良くも悪くも民主主義なんてこんなもん。
そしてWebではフォークがこれに対応する。
>>404
404の対応は正しい。君はlodash君か?
実はあの質問にマトモな回答をすること自体はあまりよくないのだけど、
君の「とにかくコードを書く」という姿勢だけは素晴らしい。
よってコメントしておく。
細かいが、.html()ではなくて.text()を使うべきだ。>>391
俺はWeb屋ではないので間違っているかもしれんが、
textContentを優先的に使う癖をつけるべきだ。
innerHTMLの方が汎用的で拡張した場合に流用が利くのは確かだが、
それはそのまま潜在的なセキュリティホールであることを意味する。
管理しきれるのならinnerHTMLで統一するのもありだが、現実的には無理だと思うぞ。 時刻を入れるだけのJSにセキュリティーホールてww
>>386
JavaScript関係の話題で明らかに誤解を招く説明を彼がしていたなら、訂正するのは良いと思う
彼は反論するだろうが、そこは無視する
情報を正したら彼以外の者同士で話し合えば良い
「韓国人が〜」のような明らかにスレ違いな内容は無視するに限る
それが彼の個人的な感情であることは誰が見ても明らかであり、誤解が生まれる可能性は皆無だ
それに反応する事は彼がレスする大義名分を与えるだけでデメリットしかないと俺は思う >>405
> 細かいが、.html()ではなくて.text()を使うべきだ。>>391
元々のコードがinnerHTMLだったからね。
セキュリティ上で注目する点は、それが外部から与えられた値か
どうかってのが重要な点だから直接html()を使うかどうかは関係ないよ。
今回はHTMLタグを使わなかったのだからtext()でもよかったが、
外部から与えられる値ではないのでhtml()でも問題ない。
> 管理しきれるのならinnerHTMLで統一するのもありだが、現実的には無理だと思うぞ。
繰り返すけど、innerHTMLかどうかではなくて、
使用する値が外部から与えられた値かどうかを管理するべき
他にもクッキーとかある。 text()を使うか、html()を使うかは仕様による。
とは別の話で、
外部から与えられる値を使うときは
セキュリティに注意する。という話。
俺はちゃんとお前らのNGに適合するように投稿している。
お前らはNGすべきと主張しているが、
NGすべきと主張する奴に限って明らかにNGしてないのは何故だ?
本当にパヨクは笑える。
>>408
> 誤解が生まれる可能性は皆無だ
違うぞ。お前らが根本的に間違っているのはここだ。
読者はどっちの言い分が妥当か、自由に判断するだけだ。それ自体に正解も誤解もない。
俺達は、自分の考えがより妥当なのだ、なぜなら(俺が思う)根拠はこうだからだ、
とひたすら説明し、自分の考えが相手に誤解無く伝わるように努めることしかできない。
繰り返すが、それをどう捉えるかは読者の自由だ。
お前らゴミ韓国人がひたすら感情的に「ウリが正しいニダ」と主張するのは自由だが、
それはそうだと取られるだけであって、そこに誤解は発生しえない。
(つってもお前らにはこれだと禅問答で通じないのだろうけど)
>>385
大体そもそも、価値観の多様性を尊重するのなら、相手の価値観も尊重しないと駄目だろ。
自分の価値観は尊重するが、相手の価値観は認めない、ってのがパヨクのノリだよね。
だから奴らは内ゲバを繰り返す。
とはいえ彼らの日常だが。
韓国人死ね たかだかinnerHTMLやtextContentをhtml()やtext()で使う為だけにjQueryロードするのってなんか不毛じゃない?
>>412
サンプルだから違いがわからないようにみえるだけ
2ちゃんねるやjsfiddleに書ける程度の量のコードで不毛とか
判断するほうが不毛だよw >>409
> 元々のコードがinnerHTMLだったからね。
ああなるほど、これは失念していた。
> 外部から与えられる値ではないのでhtml()でも問題ない。
いやこれはそうじゃない。
CDNをクラックされてmoment.jsを差し替えられたら、
>>391のコードを採用しているサイトを見ているクライアントは
いい感じにXSSのボットネットになっちまうだろ。
鯖設定で回避も可能だが、二重三重にしたいのなら、
textContentで済む場合はそっち使え、って話さ。
ハードコードの場合は全く問題ない。
ソフトコード(とは普通言わないが)の場合は危険だが、今回はそうではない。
ただしハードコードでもないんだよ。あえて言うならファームコード?なのかな。
そして根本的な原因は、374に書いたとおり、
馬鹿が書いたサイトを初心者が信じてそのまま使っちゃうことだね。
初心者向けのサイトだからこそtextContent原理主義じゃないと困る。
あと、見りゃ分かるが>>406みたいに何も分かってない馬鹿が俺に粘着しているわけだが、
俺はついでにこの馬鹿も殺したいので、
可能であればもう少し考えてからレスしてくれ。
君がスルーしてくれれば俺がこの情報を出す必要は無かった。
そして君には少し考えれば上記CDNのクラック位思いつく知識はあるはずだ。
ただなんとなく、君はlodash君の感じではないなあ。誤解していたならすまんかった。
韓国人死ね >>414
> CDNをクラックされてmoment.jsを差し替えられたら、
いくらhtml()を使わないようにしても、
その差し替えられたmemont.jsで使うだろうから
意味ないだろう?
何を言い出してるんだろう? >>414
> あえて言うならファームコード?なのかな。
そんなコードはない。
何が言いたいのだろうか?
moment()が外部から与えられる値?
まさか、monent()が内部で使ってる日付関数が
HTMLコードを返したらどうしよう?とか考えてるのか? >>414
いい加減にしろ
死ねとか書くの辞めろ
とにかく辞めろ > CDNをクラックされてmoment.jsを差し替えられたら、
> >>391のコードを採用しているサイトを見ているクライアントは
> いい感じにXSSのボットネットになっちまうだろ。
例えて言うならば、家の中でお金を金庫に入れていれば、
家に入られても、お金は盗まれない。と言ってるようなもんかな。
お金は盗まれなくても、家の中に入られた時点で
いろんなものは盗まれるし、隠しカメラしかけて
金庫の暗証番号を盗むことだってできるだろ
それと同じでCDNをクラックされた時点で、どんな対応をしたところで
XSSのボットネット(なにそれ?w)どころか
もっと大きなセキュリティ問題が発生する。
仮にJavaScript使わなかったとしても、サーバーをクラックされたら
勝手にJavaScript埋め込まれるしな。 >>415,416
あれ?やっぱlodash君だった?
つか、マジでもうちょっと考えてレスしてくれ。君なら理解できるはずだが。
と、書いているうちに回答が来た。>>418は正しく通じているように思える。
>>417
さっきから何度も言ってるんだが、
君の考えが正しいと思うのなら、
君がそれを可能な限り説明し、
同調してくれる人が増えるように努力することしか出来ないんだよ。
パヨクは自分の考えを他人に強制するが、それは無理なんだよ。
いい加減分かれよマジで。
俺は今このスレに必要なことを淡々とやっている。「韓国人死ね」もその一環だ。
価値観の多様性ガーなら、俺の価値観も尊重しろよ。
そしてこの俺の考えについて、どう捕らえるかは読者の自由。
お前が嫌うのもお前の自由。
だけど俺がそう思うのを君が止めることは出来ない。それだけ。
韓国人死ね
そして何度も言っている様に、
>>380的お花畑スレが成立すると思うのなら、やってみろよ。
俺はスレ立てや他人の移住を止めることは出来ない。
つまりお前らの実力があればそれは成立する。
とはいえ、多分お前らには無理だがね。
2chがそれなりに殺伐としているのには理由があるんだよ。
それを理解する知能すらないくせに、良スレの維持は無理だよ。
でも、とにかくやってみろ。
それが成立してこのスレが死ぬようなら、お前らの勝ちだよ。 >>419
だからtext()を使うかhtml()を使うかは仕様によるんだって。
HTMLタグ使いたい場合は、html()を使うのが一番簡単だろ
その時、表示する文字列が外部から入力される値であれば値のチェックが必要になる。
(text()に変更すると仕様を満たせないという問題がある)
少なくとも今回は外部から入力される文字じゃないので
html()を使っても安全だという話 >>420
完全に通じている感があるからもういいんじゃないか?とも思うが、
一応回答しておく。
420の内容についてはその通り。
しかし>>391のコード、
> var msg = moment().format('現在時刻は、HH:mm:ss です。')
はtext()で問題ないだろ、というだけ。
それを元がhtml()だったからそうした、というのならそれでよし。
ただし初心者ならtextContentを優先的に使う癖をつけるべし。
韓国人死ね この阿呆ってほんと頭の固い老害だよなぁ
物事を記号的に覚えて意味や影響とかを考えることもなくただ機械的に連呼するだけという
おそらくもまともなプログラム組んだこともなければJQueryやらその他有名どころのライブラリのコード追った事もないと思われ
とにかく考えが古くさすぎて見てて痛い
とりあえずレス番飛びすぎてて何の話かわからんのは何とかならんかね?
.html(data)
ってajaxのレスポンスを結果領域にぶっ混む時くらいしか使わないんだけど
君たちはどういうシチュエーションで使う話してる?
>>425
レスポンス結果ぶち込む時に使う=画面の内容をを更新するってことだろ
DOM操作の一種なんだから、普通に考えて使う機会くらいいくらでも想像できるとおもうが ID:FayZ9xNN0 が暴れて不毛な議論を繰り返しているだけなので、全スルーでOK
だから、彼に関わるな、といったのだが
HTMLに<tamplete>タグでテンプレートを書いて
JavaScriptでそれを読み込んで、
テンプレート内の値を書き換え
それを画面に反映させるとか
>>427は>>424宛
>>425
議論には参加していなかったが、.html()はHTMLタグ挿入に使い、.text()はテキストノード挿入に使う
外部データかどうかを判断指標にしている人もいたようだが、私自身はそこは問題にしてない
例えば、>>391で必要なのはテキストノードなので、.text()を使う
ただ、基本ノード単位で操作しているから、.html() をあまり使わないな… > 外部データかどうかを判断指標にしている人もいたようだが、
何を言ってるんだ? 話をごっちゃにするな。
外部からくるデータの取扱いに注意するというのは
XSSなどのセキュリティの話だ。
html()とtext()の使い分けは最初から仕様によるといってる。
> ただ、基本ノード単位で操作しているから、.html() をあまり使わないな…
JavaScriptで複雑な構造のHTMLを扱うときには便利だよ。
いちいち要素単位で作ったりとか面倒。
要素単位で組み立てるのが面倒だからこそReactではJSXという
HTMLっぽいものをより安全に直接かけるように拡張されている。
JavaScriptで複雑な構造のHTMLを扱うのが
そもそも間違いという考え方もあるが、その場合は代替として
<template>タグなどでHTMLをテンプレート化して使うわけだが、
そのテンプレートの適用結果を表示する時にhtml()を使う
ユーザー入力のデータなんてノーチェックで.html()に突っ込む人いんの?
>>432
いるから時々XSSの脆弱性のニュースがながれるんじゃないの? セキュリティの観点で.html()じゃなくて.text()を使うべきって言ってる人は根本的にその前段階の設計を怠ってるってことじゃないの?
お聞きしたいのですがブラウザをFirefox使っており、web上のjavasccriptで入力した内容のログってどこに格納されているんでしょうか?
一応Firefoxのformhistory.sqliteの中を覗いたのですが通常の入力フォーム内容ばかりで…
javascriptの専門家の方々であればご存知かとお見受けしてお聞きさせてもらいました。
>>400
韓国人死ね うざいから死ね 今すぐ死ね どんな理由があろうと死ねとか連呼できるやつは本気で許せんわ
うちの子供だったら殴り倒してる
結局お花畑ちゃんからの返事はなしか?
一応対話するつもりで居たんだがな。
書き溜めたものから虫食いで投下する作戦だったのだが、
出てこないのなら仕方ない。纏めて投下する。
一部重複もある。その部分には(この段落既出)とつけておく。
再構成はイマイチ上手くいかなかったし、もう面倒だ。
>>375
お前らは俺の言うことをまったく聞かないどころか邪魔ばかりしてきたくせに、
何故俺がお前らの意見を尊重してやると思うのか。
何度も言っているが、さっさと出て行けよゴミ。
韓国人死ね
そもそも俺はずっと前からここにいたし、ずっとこの調子だ。
それを後から来たお前らがグダグダ言うのは筋違いだと思わないのか?
それともマジでお前は韓国人レベルのゴミなのか?
本当にNGしてたら俺が見えないはずだし、色々おかしいと気づかないのか? >>380
というか、お前は馬鹿の癖に何でそんなに分かった風な口を利くんだ?
380に関しては、言ってることが全部間違ってるぞ。
お前は何も分かってない。
お前は自分の頭がおかしいことに気づいたほうがいい。
なお、「鏡」と思うのなら、
何度も言っているように、お前らで他スレを盛り上げてこのスレを結果的に殺せ。
俺はお前らにはその能力は無いと見ているが、ここはWebだ。
方向性に対する意見の相違はフォークで決着すべきだ。
このスレを乗っ取るのではなくてね。
既に言ったが、俺はお前らは烏合の衆だと思っている。
お前らは頭が悪すぎて、或いは俺と見えているものの次元が違いすぎて、
俺がいくら説明しても理解できない。
だからフォークしかない。
お前らが無能だということを理解するまでフォークし続けろ。
お前に最低限の知能があれば、俺が何を言っていたのか理解する時が来るだろう。
そしてそのとき、お前らのフォークは成功し、このスレは潰れる。
これは正しいスレの殺し方だから、ガンガン挑戦しろ。
そのときに始めて、お前らは俺を馬鹿にするのが妥当な状況になる。
今はお前らの方が明らかに馬鹿だし、韓国人のような精神異常者でしかない。
韓国人死ね 一応言っておくが、一度この板のスレが復活した後、
大半の奴はWeb板に戻っただろ?
あれは結果的にフォークなんだよ。どっちがマスタなのかはさておき。
そしてお前らがWeb板を捨てるのなら、
それはお前らのフォークが間違っていた事の証明であることを理解しろ。
同時に、お前らが無能だったことの証明にもなっている。
だからお前らが何を言っても、Web板を捨ててこのスレに留まる限り、お前らはゴミでしかないんだよ。
それを自分自身で証明し続けているという馬鹿な矛盾に気づけ。
もっとも、この論理が分かる奴は、いちいちグダグダ言うことはなく多少は遠慮するはずだし、
お前らにこれを理解できるほどの知能がないことも俺は既に理解した。
韓国人死ね
なんつーか、本当に多分全然次元が違うんだよ。
俺は「投稿しない」と宣言し、実際に投稿しないことによってWeb板スレを潰した。
そんなことはお前らには出来ないだろ?
いや正確には、勝手に潰れただけだし、
俺は潰したいとも思っておらず、むしろ存続して欲しいんだが、
そんなことお構い無しにお前らはこのスレにたかっている。
それがどういうことなのか気づけ。そしてマジでイナゴ行為は止めろ。
俺は今このスレに必要なことを淡々とやっている。
お前らは頭が悪すぎて、俺が何を意図しているのかさっぱり分からない。
しかし結果としてお前がいるスレはゴミになり、
俺がいるスレは、少なくともお前らには無理してでも居座りたいスレになっているんだろ?
これがどういうことなのか、よく考えろ。
韓国人死ね
死ね死ね言うことが単純に状況の悪化に結びつくのなら、
それが日常な2chと、基本的にありえない知恵袋やその他の「マトモな」サイトで、
何故お前らが2chを選ぶのか、お前ら自身が説明出来ないだろ。
お前らは自己矛盾にも気づけないほどの馬鹿であることに気づけ。
そういう単純な話じゃないんだよ。
それは並みの知能があれば半年で分かるようになる。
だから「半年ROMってろ」ってのはある意味至極マトモで、
半年以上2ch経験があって、俺の言っていることが全く意味不明なのだとしたら、
お前は間違いなく池沼だよ。これは断言できる。
(ただまあ、>>380に関してはこの部分については理解できているようだが)
敬語を使うとか、丁寧に言うとか、そういう表面的なことは割とどうでもいいんだよ。
スレの質を保つ方法はもっと本質的なところにある。
お前はそれをまるきり分かってない。俺は何度も説明してきてるんだがね。
とにかく、文句があるのなら、何度も言っているが、フォークしろ。
お前が中心になって別スレを立ててそちらを盛り上げ、結果的にこのスレを潰せ。
(そろそろ連投制限に引っかかるかも、、、途中で切れたらお察しで) 今のお前らには俺に出て行ってもらいたいのだろうが、俺が出て行っても同じことだ。
スレの質が悪化する原因はお前ら自身だからだ。
お前らが居る限り、近い将来必ずゴミスレになる。
何故俺が定期的に毒を吐くにもかかわらずスレの質が上がるのか、全く理解出来ないだろ?
それはお前がお花畑だからだよ。
こっちはいい迷惑だ。お前らは集団ストーカーでしかない。マジで自殺してくれ。
そしてそういったイナゴ行為は長期的にお前ら自身にもメリットが無いことを理解しろ。
マジで韓国人は死ね、存在自体が迷惑だ
お前らは気づいていないんだろうが、それはお前らが馬鹿だからであり、
分かるやつには分かるし、迷惑行為をし続けてるんだよ。だから韓国人は嫌われる。
本当に、それだけなんだよ。
お前は、何故自然発生的に国というものが成立したのか、
或いは何故韓国人「のみ」が嫌われるのか説明出来ないだろ?(この段落既出)
ただまあ、説明はしなくていい。というか、説明されて俺が納得することに意味は無い。
結果的には、多数が支持すれば正しいとされる、それが民主主義だ。
だから文句があるのなら、フォークして盛り上げろ、それだけでいい。
それでお前が正しかったことになる。
で、現段階は俺が定期的に毒を吐いているこのスレのほうがいいという判断で、
お前らは無理してここに居座ろうとしてるんだろ?
それは俺が正しかったことの証明に他ならないんだよ。
お前らにはこのことも理解できないのだろうけど。
とにかく、俺が調整しているレベルはお前らの理解を多分大幅に超えている。
だからお前らには理解できない。いくら説明してもね。
俺が既に何度もこの手の投稿をしてきているのはお前も知っているはず。
だから、足を引っ張るのは止めろマジで。
韓国人死ね
>>385のように「俺が正しくてお前が間違い」とわめき散らし、
そういう流れを自演してでも作り上げるのはゆとりの常套手段だが、
そもそもお前らが正しいのなら、お前らでもっとマシなスレを作れるはずなんだよ。
実際はそうじゃないだろ?
お前らではマトモなスレは維持できない。それはお前らこそがゴミだから。
ただこれも何度も言っているが、
これで「俺が正しい!だからお前は俺の意見を聞くべきだ!」ってのは
全く意味が無い水掛け論なんだよ。
だから俺はひたすら「フォークしろ」と言っている。
そしてフォークした先が繁盛するのなら、それでお前が正しかったことの証明になるんだよ。
お前らは若いくせに脳が老害化している。マジでそれはやばいからよく考えろ。
お前らは自覚していないようだが、ゆとりは無自覚で色々迷惑行為を続けている。
だから嫌われている。これは本当に理解した方がいい。
自分が理解できてない事柄なんて世の中には沢山あるんだよ。
このことを認識しないといけない。
いくらお前らが自演しても、
お前らが言っていることとやっていることの矛盾は解消されない。
お前らがいくらでも俺を批判するのも自由だけど、
それと結果が乖離しているんだから、第三者から見ればただのキチガイにしか見えない。
それをお前らは相手が悪いとみなして思考が引きこもってしまう傾向があるが、
それは本当によくないから止めろ。(例はID:Hi5oNHltM)
本当に何度も繰り返しているが、
方向性に対する意見の相違はフォークで決着すべきなんだよ。
それを価値観の多様性という謎の常套文句でごまかしてきたのはパヨクだ。
いい加減洗脳から解けてくれ。
韓国人死ね >>430
勿論、別の話だが、セキュリティは本題ではない
>>391で期待しているのはテキストノードであって、.html()を使う理由がないという事
.html()でも期待通りに動作するが、それがHTMLタグでないなら.html()は使用しない やはり連投制限に引っかかった。続きを落とす。
支援してくれたのならありがとさん。
例えば、
> 2chでは一度として成功しなかった
これに対して自分が悪いとは1mmも思わないのがパヨクの特徴だよ。
成功したり失敗したりするのは普通で、
実際、おかしな奴が居るのも事実だから、100%成功ってのもありえないけど、
一度も成功しないのならお前が悪いんだろ、でしかない。
ちょっと考えれば分かるはずなのだが、ちょっとも考えないところがパヨクだよね。
何で相手が常に悪いってことになるのさ?頭おかしすぎ。(この段落既出)
俺は「俺が間違っている可能性もある」し、
或いは他の誰かが「俺以上に上手くやれる可能性もある」と思っているから、(確率的には無いが)
文句があるのならフォークしろ、この一点張りなんだよ。
単純に、競争原理でよりよいスレが勝つ、それだけなんだよ。
そうしないと、馬鹿が馬鹿だと自覚できていない程度の今のお前らでは何も改善できない。
ちょっとマシになったスレにたかってそのスレを悪化させ、移住する、その繰り返しだろ。
まさにイナゴでね。
これも何度も言ってきたんだが。
韓国人死ね
例えば>>353についてJavaScript beanでググったらトップにこれがヒットするわけだが、
http://www.javaroad.jp/bbs/answer.jsp?q_id=20070926111848184
これどう思うよ?
俺はmioの回答を全面的に肯定するよ。まあある意味2chのノリがこれだ。
それでその後噛み付かれまくっているわけだが、これが「きちんとしたフォーラム」のノリだよね。
それでどっちがいいかだよ。
「きちんとしたフォーラム」がいいと思うのなら、そっち行けって話だよ。
大体そもそも、価値観の多様性を尊重するのなら、相手の価値観も尊重しないと駄目だろ。
自分の価値観は尊重するが、相手の価値観は認めない、ってのがパヨクのノリだよね。
だから奴らは内ゲバを繰り返す。(この段落既出)
若いお前らが洗脳されているのはある程度仕方ないとしても、
成人した後に洗脳を自分で解けないのはおまえ自身の問題だぞ。
本当によく考えろ。
今のお前らでは、フォーク以外に改善する方法は無いと思う。
だって、お前らも、俺以上に賢いつもりで、俺の意見なんて尊重しないんだし。
マジでお前ら言っていることやっていることがパヨクすぎて引く。
韓国人死ね 一つお前らに見えてないであろう点を挙げておこうか。
俺の発言は検証済みなんだよ。だからある程度信じていい。
構造は簡単、俺はこいつら不遜鮮人をぶっ叩きまくっている。
だから当然彼らは俺をぶっ叩きたいと思っているし、些細な間違いでも攻撃してくるだろう。
それは>>408にもそのまま現れている。
> JavaScript関係の話題で明らかに誤解を招く説明を彼がしていたなら、訂正するのは良いと思う
> 彼は反論するだろうが、そこは無視する
> 情報を正したら彼以外の者同士で話し合えば良い
つまり不遜鮮人が俺を叩けないということは、俺はそれなりに妥当なことを言ってることになる。
俺はこいつら不遜鮮人を検証要員として、スレにプラスに寄与する方向に転化して利用できている。
お前らこんなことも見えてないだろ?
俺とお前らでは調整しているレベルが違うのさ。
韓国人死ね Web板のスレの問題は自演が多いことと、明らかな間違いも散見されることだ。
とはいえお前らも割と対処できていて、多分前者は大半の者が見抜いていると思う。
しかし後者については相変わらず水掛け論だ。
もちろん正しいことを言っているやつもいるんだけどね。
そこで上記ソリューションだ。
俺の発言は、特に突っ込まれていなければ、正しい。
だって、突込みを誘発する方向に振り切っているから。
どうだい、この論理は?
だから、lodash君みたいな、原理主義的に突っ込んでくる奴も一概に「荒らし」というわけではないのさ。
少しでも間違っていたら突っ込んでくるのであれば、検証要員としてはかなり優秀だ。
お前らは相手に自分の意見を押し付けようとするが、それはここでは不可能だ。
そうではなく、相手の考えを生かした状態で、どうやってプラス方向に使えるか、それを考えるべきだ。
そもそもスレが腐るのはお前らのスレ運営能力があまりに拙いからだ。
だから俺は何度も具体的にこういうことを書いている。
2chを楽しむつもりなら、お前らはここら辺についてもっと上手くならなければならない。
そうしないと一生ウンコの投げ合いで終わってしまうぞ。韓国人みたいに。
お前らがここら辺を理解し、俺以上の操縦能力を確保したら、
お前らがやっているスレのほうが断然いいスレになるし、
俺がどうやってもお前らに勝てないようになる。
俺はその日が来ることを願っている。お前らはもっと上手くならなければならない。
スレが抱える問題(これはお前らでも見えるはず)に対し、
どういう方策で対処しようとしているのか、これを考えろ。(お前らにはこれが見えていない)
韓国人死ね
今回は以上。支援サンクス。
>>436
console.logの話を言ってるんであればF12を押してみ? 一応、池沼な韓国人にも分かるように俺の論理を説明しておこう。
俺は勝負を受けた。
俺が適切だと思う限り、俺はここでお前らのNGに適合するように投稿を続ける。
(偶に忘れているのはすまん)
何度も言っているが、俺はWeb板のスレに投稿することはない。
或いは、お前らがフォークしたスレに投稿する事もないだろう。
これでこのスレが賑わい、他スレが成立しないのなら、
俺のやり方が正しかったことの証明になる。
だから俺のやり方に反対する者は、他スレを賑わせ、このスレを結果的に殺すように努力しろ。
それが出来ればお前らの勝ち、俺の負けだ。
韓国人死ね
韓国人の問題は、相手側を邪魔するマイナス方向の競争しかしないことだ。
反日で相手の足を引っ張ることこそが正しいと洗脳され、
それがおかしいと気づく知能も無いヒトモドキは、死ねばいい。
非韓三原則:助けない、教えない、関わらない
ただし俺たちがゴミに合わせる必要は無い。
俺らは正規の競争、よいものをよりよいものが倒す、これを目指すべきだ。
だから、文句があるのならフォークしろ。そしてそこを盛り上げろ。
もちろん俺も他スレが繁盛するようなら何らかの反応はする。
そうやってプラス方向に競争するのが本来の姿だ。
足の引っ張り合いなんてマジで止めろ。誰にも利益がない。
お前らの問題は、どういうレスがスレを悪化させるか全く分かってない点だ。
単純に答えればいいというものではない。
もちろん、叩けばいいってものでもないし、丁寧な言葉を使いさえすればいいわけでもない。
ただそれも含めて経験だ。とにかくフォークして、お前らでがんばってみろ。
>>456
そいつ単なるビットコイン誘導のスクリプトかバイトだろ Liskが広まればJavascriptの仕事が増える?
みんなLisk買おうぜ。
>>458
ああ、マルチってまんま言うより面白いかと思ったが、お気に召さなかったかな?
或いは安価つけたら金になるから止めろって話か?
韓国人死ね >>418
SRIつければChromeとかFirefoxでは防がれるからそれを推奨してくべきでは Anglar みたいにクラス名指定でフレームワークのエンジンに
描画を委託している要素が上手く描画されてくれないときって
どうやってデバッグすればいの?
devtoolsのコンソールにもエラーは出てないし、
単純に描画されていないから調べることができない
ブラウザ表示している外部のJSファイル上の変数が
ブラウザ上で認識できているか(ちゃんとHTMLに渡ってきているか)
しらべたいんだけど・・・
HTML属性値っていうのは
「変数」として認識されているのか?それとも単なる文字列?
この属性の文字列ってどこで解析して処理してるんだろう。
単なる文字列ならまだわかるけど変数とか配列とか関数とかを
属性上に設定している場合
>>463
当たり前だけどHTML上で属性は必ず文字列だけど、
当然内部的にはそれがパースされて使われるし、
JSから触ってるのは通常アクセサであってパース後の内部的に利用される値とほぼ同じ形態ものが読み書きできる
イベントハンドラの設定は要素の属性値に直接書き出すときは
一旦文字列で要素に追加されて、文字列化された関数がまたパースされて認識されるけど
addEventListenerなどを使った場合はそれをスキップして
直接内部的な紐付けに関数オブジェクトとして登録される >>462
ブレークポイントを貼って、1行ずつデバッグ実行するとか?
フレームワークの中を、ステップ実行するのは、かなり面倒。
jQuery 程度でも、中をステップ実行するのは、面倒くさい
もっと簡単なのは、すべて削除して、
その部分だけ実行する、プログラムを別に作って、チェックする
Angular のスレか、コミュニティーへ行って、
専用のテストツール・テスト方法を調べた方がよい つうかフレームワーク飛ばしてステップ実行できる
ChromeならDevツールの設定からBlackboxing
>>471
デバッガ使いたくなんない?むしろなんで使わない なるほど、ライブラリやフレームワークごとの専用の
デバッガがあるから、それを使えってことかな?
素のDevToolでJSの拡張機能までデバッグするのはしんどいという
訳ですな?
>>472
俺が書くコードは、1関数だいたい10行程度なので
デバッガを使うまでもない。
デバッガ使わないとどうなってるかわからんって状態はならない つかいつも「is not function」とか「is not constructor」とか
発生するけどこれなんなん?
これが出るとどうすることもできないんだけど。
使用例に載っているメソ使っただけやで、なんで見つからないの?
「is not function」「is not constructor」で検索すれば?
時間の無駄だから、動かないサンプルを使うな。
動くサンプルで試すこと
関数でないコンストラクタをnew無しで呼んだり
その逆をしてるんじゃないか?
コンストラクタを意図してない関数にnewつけて呼んでも内容によってはエラーが出るだけだ
あとコンストラクタは全て関数だ
is not functionは5();とかhoge();(hogeは未定義)とかで出る
is not constructorはnew 5とかnew hogeとかnew Math
というと、 「is not function」と「is not constructor」は対応していて
newの有無を間違えるとどちらかのエラーがでるということ?
ちなみにその関数(もしくはコンストラクタ)をdevtoolsのコンソールで叩くと
undifinedになるな
new をつけても同じ、
別のケースとして関数名(コンストラクタ名)を叩くと
関数の内容のコードが表示されて、
() をつけて実行すると失敗する場合もある
基本的にライブラリが提供しているドキュメントに従って
文法を記述して使ってるだけなので、その通りにやったのに
失敗するとそっから先に進まずにいつも行き詰まっちゃう。
ソースは読めている場合が多く、「仕様変更か?」
「関数が仕様から削除された?」
「前提としているライブラリスクリプトが足りていない?」
「DLしてくる提供元がおかしかった??」ってなる。
大抵は公式HP, npm installからインストールしてるんだけどな、
まれにgitHub
>>480
その関数(というかメンバ)呼ぶところで止めてデバッガでオブジェクトみたりしないの?
今の時代それすらできないレベルだと何もできないとおもうぞ
枯れたライブラリーならともかく大抵は活発に進化を続けてるものばかりで、自分でデバッガ追ったりして仕様確認できないとどうにもならない
web屋の延長でJSもたしなみますレベルならともかくまともにJSやりたいなら最低限、ソースや実行時のオブジェクト確認は必要だとおもうぞ >>480
関数ではないものを呼び出そうとするから、そうなる
[].hogehoge(); がTypeErrorになるのは自明だろう?
「あなたが関数だと思っているもの」は関数ではないのだ コンソール上でただ関数名を叩くのと、
「特定のコードで止めた状態」で
関数名を叩くのでは意味が違うってこと?
止めるって行番クリック? お、これ結構便利じゃん、
すげえよ、これ。無名function内のイベント見れんじゃん!
いや、助かりました。なんとかなりそうだな
つかみんなこういうのどうやって覚えるの?
少なくとも大学では習わなかったし、
オライリー本とか読んでも詳しいデバッグ方法までまで書いてなかったんだ
けど。
>>483
昔はバグが出たら色んな箇所でalert出して中身を確認してたんだよ
後にプラグインでウォゥチができるようになり、そして時代が進んで今はそブラウザ機能で標準で付くようになった
今の時代、デバッグ方法なんでググればいくらでも出てくるから相当恵まれてるぞ
昔はある程度の規模のアプリ作るにもまずはデバッグ機能が付いた自作フレームから開発してたからなぁ >>483
あと、教えてもらうのを待ってると何もできないのがJS
日本ってびっくりするくらいのIT後進国だから枯れた技術以外は本当に日本語情報がないに等しい
がんばって英語圏のサイトぐぐって自力で進まないといけないのがしんどい
若者にはほかはどうでもいいから英語だけはしっかり勉強しとけといいたい
ITに関して海外は日本とちがって技術情報をどんとんシェアしあって進化していく文化なんだよな
英語ネイティブが心底うらやましい 2010年くらいまではfirefoxとかDOMAPIをnew無しで呼べるブラウザがあった
その影響だろうがその頃の情報を使うほうが悪い
今の時代firefoxは開発ではつかっちゃダメなブラウザだよね
昔はfirebugとかでお世話になってけどいまはchromeがすごすぎてそれ以外を使う選択肢がほぼなくなってしまってる
俺のfirefox54 console.logすら出ない
さすがに困る
コンソールをいじったら表示した
それにしてもfirefox使いづらくなった
チョロメはいいんだけど重いんだよな
チョロメを使ってnotepadか狐使ってIDEか
嗚呼メモリ4GBだと足りない時代が来るなんて
>>485
自演ウザい
韓国人死ね
非韓三原則: 助けない、教えない、関わらない
嫌韓は日本人によるアクションではなくて、リアクションである
結局不遜鮮人はこのスレに居つくようだ。
彼らは嘘ばかり言うから注意しろ。
いちいち指摘はしないが、ちょっと考えれば分かるはず。
不遜鮮人はこうやって全てのスレをゴミにしてきた。
このスレもWeb板と同様、ゴミスレになっていくだろう。
モラルが著しく低い韓国人の存在自体がスレの悪化につながる。
明らかにおかしな質問は無視、
知らないことには答えない、
自分より詳しい奴がいそうならそいつの回答を待つ、
意味不明な布教はしない。
本当にこれだけでいいのだが、
自己を客観的に見えないキチガイな韓国人にはこれが出来ない。
ただまあ、いちいち指摘はしない。
いやそれは無いだろ、と思ったら無視でいい。或いは叩け。 言語の難しさでは、JSは、すごく難しい
Ruby > Python >>> JS
Rubyなら「たのしいRuby」「Effective Ruby」の2冊を読めば、そこそこ出来るけど、
JSでは「Effective JavaScript」とか、
Douglas Crockford, Stoyan Stefanov とか、読んでないと無理
Google など、フレームワークを作る人は、怪物みたいな本、
David Flanagan「JavaScript 第6版」も読んでる
いやぁ
「他の言語と比べて変わったところ」という意味ではJSもPyhonも変わらんよ
Rubyはそれらと比べて一回り自然になることを目標に作られているが
つうかJSでそれらの本は時代遅れよ だってES5の本じゃん
それにそれらを必ずしも読む必要はないよ
確かに特にプロトタイプチェーンとかを理解しようと思えば
仕様周りの説明を理解することが必要だけど
別にそういうこと自体の量や難しさは高くない
ただそれらを理解せずとも使える、わかった気になれるので
学習に良くない情報が溢れてしまってる
そんな知識に染まりきった後に勉強しようとすると大変
そもそも本当ならクラスベース的なものを教える前に
そのベースとなっているプロトタイプベースを教えないとおかしいが、そういう指導書はまだ無い
あとはJSは「正解」を作らない主義というのも影響が大きい
「正解」が明確にないからこそ、偉い人の言葉だったりとか、最新のAPIの策定状況を見て
今の「正解」を常に感じ取っていく必要がある
5年前の最新の知識、例えば上の本の内容を今使ったら笑われる それがJSの難しさだった
が、ここ1年くらいはJS周りが停滞してる(その代わりCSSなどスタイル周りが進歩した)ので深く学ぶチャンス
> あとはJSは「正解」を作らない主義というのも影響が大きい
正解を作る主義の言語なんてあったか?
> 最新のAPIの策定状況を見て
それはJavaScriptじゃなくてブラウザAPIの話ですね
これらは違うものなんで分けて考えられるようになりましょう
オブジェクト指向JavaScript、2012、Stoyan Stefanov
この本の第6章「継承」だけで、40ページある。
プロトタイプで、クラス継承を真似るのは、非常に難しい。
12パターンも書いてある
1. ECMA標準の方法
2. YUI, Ext.js の方法
3. jQuery, Prototype.js の初期バージョンの方法
4. jQuery の最近のバージョンの方法
普通の言語では、クラス変数で悩まないけど、JSでは、
obj.prototype.prop = 'aaa'
と自分で、1階層上へ持って行かないといけない
obj.prototype, obj.__proto__ の違いとか、わかりにくい
正解を作らないというより、用意された正解がないんだよ
ベストと思われてる手法がすでにトリッキーで他言語からみたら意味不明な形の場合が多い
当然こんなのは入門書よんだくらいじゃ想像もできない
使い手側の熟練度によって言語世界が進化してきたようなものだからなぁ
先人たちの変態努力により、こんなのJSでできるの?!の繰り返しで進化してきた物
あと、JSはwebブラウザ上でありとあらゆるメディアを扱うインタラクティブなUIを構築する言語というのがでかい
そもそもrubyレベルとは仕事の大変さが100倍違う
ES2015でクラス構文用意されてんだから、それ使っとけばいいのよ。
>>497
何のためにトランスパイラとかが存在すると思ってる?
クライアント気にせずに最新仕様でつくれるなら誰も苦労はしないんだよ >>498
?トランスパイラ使ってるならなんの問題もなく最新構文使えるじゃん。何言ってんの? >>499
ここはaltJSのスレじゃないんだよ
JavaScriptの構文の話してんだろ?ん? on railsなしのrubyに実用性があるのか?ってのと
環境構築の観点から言ってrubyってどうなの?って思うんだけどな特に初心者とか
>>500
ES2015はjavascriptですが。 >>494
違うものじゃないよ
例えばPromiseベースに変わっていったりすることだとか、
APIをどの程度普通に活用していくか、またAPIを提供する側では貰うか
例えばWebComponents関係のAPIを見て、
ああ今からはO.cをこの様にこの程度使ってもいいし、使ってもらってもいいな
ああ、O.cはこの程度の機関のつなぎのために使えるもので、
将来的にはクラス構文に頼るべきなんだね
じゃあ今はO.cでそこそこ自然に、そして将来はきちんとクラス構文を自然に適応できるような設計が良いんだね
のように関数などの設計の仕方、他にも名付け、役割のもたせ方などの今のベストプラクティスが学べる >>495
確かにprototypeプロパティの存在が一番理解をややこしくしているとこだね
だって一番でしゃばってるくせに一番本質的でないものだからね
あと、昔は__proto__が非標準という点も教えにくかった理由の一つだと思う
本当はプロトタイプベースというのは好きなクラスシステムを用意に構築できるものだけど、
JSではプロトタイプに直接触らせてもらえないばかりか最初から用意されてる唯一の駄クラスシステムを使うしか無かった
それで駄クラスシステムをハックしてバックのプロトタイプ操作を活用するテクが要るようになった時点で終わり
でも今はそんな過去すっぱり忘れて自由なプロトタイプ操作と、ベターな新クラスシステムで覚えていっていいと思うけどね
それなら難しくないはずだよ
ただしnewTarget周りまで踏み込むとやっぱり仕様実装レベルの理解が要るし、シンボル周りもちょっと臭いけどね >>502
だからね
クライアントの環境無視で最新仕様を使い放題なら苦労はないつってんの
大丈夫かい? >>505
だからね、どの環境でも最新の仕様が使えるようにトランスパイラがあるんだけど? > クライアントの環境無視で最新仕様を使い放題なら苦労はないつってんの
Rubyとかでもクライアントの環境で動かすツールを配布するのであれば
クライアントにインストールされているRubyのバージョンを意識ないといけないんですが?
逆にJavaScript(nodejs)で動くサーバーアプリであれば
クライアントの環境無視できますよ。
あんたが言ってる問題点の原因は全部ブラウザのせいでしょう?
JavaScriptではなくてブラウザのせいでしょう?
だから分けて考えられるようになりましょうっていってんの
>>506
だからそれはaltJSの話だろ?ん?
JSの構文の話してんのに関係ないじゃん
大丈夫かい?またループしてるよ >>507
君も話ができない人間だなあ
↓ちゃんとかいてるだろ?
>JSはwebブラウザ上でありとあらゆるメディアを扱うインタラクティブなUIを構築する言語というのがでかい
そもそもrubyレベルとは仕事の大変さが100倍違う 世の中にはJavaScriptとほとんど同じ文法を持つ
altJSがあるんだぜ?
その名はECMAScriptっていうんだ
インタラクティブなUIを構築する言語というより、
そもそも自己完結してるセマンティクス性の強いHTMLをハック、拡張する程度だったのが
アプリケーションプラットフォームとして利用する用になってきてどうしよう、大変ということだな
結局はそのための最低ラインまで持っていくのに何らかのフレームワークが必要になってくる
とは言えあくまでブラウザで自然に使えるWebページの1つだし、
Web Componentsで全てオレオレに構築してやるぜみたいなことはなかなかしない
結果非常に中途半端な微妙なラインで色んな技術やフレームワークと共に
周りの様子を常に伺いながら生きていかないといけない
自由が一番あるようで最もお手上げ状態なのが今のJS界
Nodeなんかもその呪縛から解き放されてるわけじゃない
最初は結構独自にやろうとしてたみたいだが、結局大きくなって
「標準的なこと」を意識すればAPIの設計だったりWebに引っ張られるし、
Promiseだったり重要なコア部分もWebの発展とともにある
> 結局はそのための最低ラインまで持っていくのに何らかのフレームワークが必要になってくる
で、そういう話の最低ラインまで持っていこうとするなら
どの言語でもフレームワークが必要になるわけで
>>513
それはお前の最低ラインが低いだけだよw
JavaScriptと同じラインまでやろうとすると
どの言語でもフレームワークが使われてる 最低ラインを低くすればJavaScriptでもjQueryというライブラリと
UI専用マークアップ(HTML+CSS)だけで十分な場合も多けどね。
>>514
具体的は?
フレームワークの多くは品質を固定して大量生産したり、チーム内のワークのばらつきを抑えるためのものでレベルや品質を極めるために使うものじゃないぞ
バカでもがんばれば一定のものが作れるというだけの話だよ
逆にレールから外れる必要があることをするときは寧ろ手間が増える
ライブラリーとフレームワークの違い分かってるかい?ん? >>516
何の言語のフレームワークを教えて欲しいの?
Rails?
Spring?
Django?
.NET Framework?
なんでどの言語でもフレームワークが使われてると思う? あとオレオレフレームワークの定義なんてしないで、
どこから引用することで、説得力を上げるようにした方がいいよ
http://e-words.jp/w/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF.html
ソフトウェアの分野では、ある領域のソフトウェアに必要とされる汎用的な
機能や基本的な制御構造をまとめた半完成品のことを「ソフトウェアフレームワーク」
「アプリケーションフレームワーク」などと呼び、これを略してフレームワークと
呼ぶことが多い。具体的なソフトウェアだけでなく、汎用的に適用できるプログラムの
設計モデルや典型的な処理パターンなどを含めてフレームワークと呼ぶ場合もある。
フレームワークは特定のプログラミング言語で書かれた、そのまま利用できる
ソフトウェアの主要部分の雛形(テンプレート)と、汎用的で再利用可能な
クラスやライブラリ、モジュール、APIなどで構成され、また、開発者がコードを
記述して機能を追加、拡張するための方法や規約などが定められている。
開発者は規約に従ってフレームワークの一部を改変したり、自らの必要とする
機能や処理を記述して追加することで、主要部分の設計・記述を省略して迅速にソフトウェアを完成させることができる。 >>519
小学生かな?
ことばなんて狭義広義でいろいろ解釈あるだろ
ライブラリーと対比する形でフレームワークという言葉が出る場合、それが何を意味するかくらい分かるだろ
そういうコミュニケーション能力の低い人間が"人の求める物"を作るなんて難しいよね >>521
なんでフレームワークの一般的な定義に
文句つけてるの? >>520
で?
それらのどこが必須なのかな?ん? >>525
最低ラインを満たすなら(どの言語でも)必須だし、
最低ラインを満たさないなら必須ではない 最近は普通のアプリはご無沙汰でnodeとsocket.ioをサーバーにしてクライアントはpixi.jsとglslのwrbGL使ったスマホゲームばかり開発してるけど
JSゲーム関連でもゲームフレームワークと呼ばれるものがあるがクオリティ考えるとほぼ使い物にならんぞ?
おまえのような業界の流行を使う事が目的になってるようなやつ結構いるんだよね
googleのアングラーですら識者の間だと賛否あるってのにそれに頼りきって使う=クオリティってどんだけレベル低いんだ?ん?
「クオリティ」という理由を言った以上
どういう点の「クオリティ」が理由で
使いものにならないか説明する義務がある。
思いつかなかったからってクオリティ以外の話に逃げるなよ?
あと逃げられないように、JavaScriptの
有名ゲームフレームワークを上げておこうか
もちろん俺がまとめても説得力がないんで
HTML5ゲームの種類とゲーム用エンジン・フレームワーク15選
https://furien.jp/columns/216/
Cocos2d-JS
enchant.js
Kiwi.js
略
あとUnityでもJavaScriptは使えたな gameQueryが載ってない
pixi.jsも載ってない
>>530
無名だから乗ってないのでは?
自分からマイナーなものを使って
クオリティが低いって言ってりゃ世話ないなw jQueryのゲーム用拡張版とRPGツクールMVのPRGスクリプトのベースライブラリなんだけど
まぁgameQueryはマイナーっちゃマイナーだけどpixiがマイナーっていうのは違うと思う
>>512
言い方が悪かったな
.NETのような取り敢えずこれでしょと言えるほどの準標準クラスのUIフレームワークが無いということ 準標準クラス(?)でなければUIフレームワークはあると
力説されましてもw
UIフレームワークがいくらでもあることなんて知ってますよw
>>508
babelは
最新のjs仕様を解釈してES5等のコードに変換するトランスパイラでありaltjsではないよ。
altjsというワードが何か良くかんがえてみて。
babelがなんでできたかかを調べてみると良いと思う。 WebのUIフレームワークはHTML+CSSというUIフレームワークのフレームワーク
だからやりきれない部分がある
かと言ってフルCanvasにする勇気はない
>>538
Reactが当てはまるんじゃないかな。
あればCSS-in-JSと言ってCSSもJSコード化できるから
class名前衝突みたいなことも起きない。 確かにReactは素晴らしいがあれはUIフレームワークというより
UIフレームワークのための下地を敷き直すためのものなんだよね
だから実際なにかをしようとするとReact+αで使う
何かベース技術を高度にまとめあげたものと言うより、沼地の舗装なんだよね
本当ならそこまで標準で持ってくるべきだと思う
つまりC言語の標準ライブラリに、GUIライブラリを追加しろと
言ってるようなもんだw
Reduxで非同期処理。特に async -awaitを使う上で
おすすめのミドルウェアはなんでしょうか?
いくつかあるんで悩んでます。
やはりredux-promiseあたり?
async-await構文とReduxって相性良いのかなあ
いっそ捨ててまだPromise非対応のWeb APIを容易にPromise化する手段と
observable系のもうワンランク規模が小さい補助フレームワークと
非同期系以外のフレームワークでこなすのが良い気がする
個人的には今のところredux-sagaが正義。だな
>>529
おまえって本当にうわべだけのweb屋なんだな
blogぐぐって"流行"うんちくを貯めるのが目的と化してるじゃん
で?
フレームワーク使わないものはレベルが低い云々の落とし前をはやくつけたら?ん? まぁ、こういう経験もセンスもない人間って"何かを使う"ことで自分のスキルがあがったと勘違いするんだろうなあ
誤解を恐れず他言うとフレームワークなんてのは学習コストがかかるかわりにバカがバカなことできないレールが敷かれることなんだよね
それによるコードや構造の制約がチーム開発に向いてるという側面もあるが、
なにを曲解してるのかフレームワーク使わない=その程度の低いレベルなんて言い出すバカが居るんだよな
blog屋の言うこと真に受けてるるんだろうが、ああいう奴らはとにかく新しい流行を作り出してそれを記事にして必要性をアピール、ページアクセス稼ぐのが目的なのにね
ちょと新しいフレームワークを皆で使ってみようという試みが許されない職場はレベルが低いと思う。
結局この質問に答えられない挙句w
「クオリティ」という理由を言った以上
どういう点の「クオリティ」が理由で
使いものにならないか説明する義務がある。
思いつかなかったからってクオリティ以外の話に逃げるなよ?
ここ質問スレだよね?
1のルールがん無視なんだけど、ここ質問スレだよね?
ライブラリ関係の質問どころかライブラリで議論しちゃってるけど、ここ質問スレだよね?
もはやそれがこのスレの伝統だから
そのツッコミも含めてな
4年近くこの状態だからな
NGにいつもの荒らしと構う馬鹿のID二つ突っ込む癖を付けとけ
JSデバッグしているときにConsoleに出てくるエラーメッセージの
右側のソースファイル名: 行番号のリンクに
「VMxxxx: 行番号」ってなっていることあるんだけど、
この「VM」ってファイル何?
ああ、このVMがv8エンジンなのね、
でもJSの本体エンジンがJSで書かれてるのっておかしくね?
俺はバイナリだと思ってたよ。
このエンジンのJSコードは誰が処理してるのさ?
>>557
何もおかしくないよ。
V8エンジンはJavaScriptのコードを
コンパイルしてネイティブに変換して実行するものだろう?
ソースコードをバイナリに変換するという処理は
単なるテキストファイル読み込んでバイナリデータを
書き出すだけなんだからJavaScriptでだってできることだろう? もういい加減新しい簡単な仕組み作ってくれよ
webpackとかbabelとかようわからん
何かに躓いた時直せる自信がないよ
>>559
まずフレームワークを選べ
React、Angular、Vueあたりの有名所であればCLIが用意されてる
これでプロジェクトをすぐに作れる。そのプロジェクトはwebpackやbabel等が設定済みだ
そしてフレームワークのやり方に従え。
その結果JavaScriptばりばりのSPA ウェブアプリが簡単に作れる。
JavaScriptバリバリのアプリなんか作る気はないという人は、
webpackやbabelは使わず、jQueryやlodashを使うことをおすすめする
大半のウェブサイトではこれだけで十分なはずだ。 Backbone.js( + underscore.js, jquery.js)は?
早速、山田祥寛が、AngularJS に目を付けたようだ。
本を出してる
Javascriptで文字コードの変換って出来る?
調べてもよその人が作ったencoding.jsっていうライブラリ使ってね〜
くらいしか出てこないんだけど
会社でjavascriptの業務アプリ作ってる。
ライブラリはいざ何かあった時にセキュリティに問題無いのか証明出来ないし、そもそもワザワザダウンロードしたらシステム部署から即連絡来るから全部素でコーディングしてる。
>>564
ブラウザやOSにセキュリティに問題がないことは
どうやって証明してるの? 自作の方が、有名ライブラリよりも、はるかに危険だろ
開発体制・レベルが違いすぎる
利用者が多いライブラリに限るけど、
一般的には自作するよりもライブラリを使ったほうが安全だよね
なんで自作したほうが安全って思い込むのかを考えてみたんだが
その根底にあるのは、メンテナンスするのが嫌ってっことなんじゃないだろうか?
他人が使ってるライブラリを使うと、そのライブラリは勝手にバージョンが上がっていく
最新版への追従をしたくない。と考えてるのではないか?
自分で作ったものならば、そんなことはおこらないからね
有名ライブラリならば脆弱性があれば発表される。
そして対応しなければいけない。それをやりたくない。
自分で作っていれば、脆弱性があっても発表されることはない。
だからメンテナンスしなくていい。メンテナンスの義務はない。
脆弱性に気づいてないから攻撃されても俺のせいじゃない。攻撃したほうが悪い。
それに俺は運は悪くない。攻撃されないだろう。とかそういう発想なんだと思う。
AngularJSとかVueとかいらんから
React一本に絞ってくれよ−!
10年以上も、エアバッグの破損を認めなかった、タカタは倒産した。
同族企業は、ろくに仕事なんかしない
自作する奴は、他人に間違いを指摘されたくないのだろ。
自作にはバグが無いという、夢を見てる
客観的に見ると、OSSの方が圧倒的に、確かめられていて修正もされている
>>565
ローカルだけで動かしてるから問題無しと思ってるんだけど…共有サーバーにも載せてない。それでもダメ? >>567
何故ライブラリは自作よりも安全か
という証明の手段を持ってないから。
ライブラリの中身のコードまでどんな動きしてますって分からないし説明出来ない。
純粋に聞いてみたいんだけど、皆はライブラリ使う時に、会社や客にライブラリの安全性の証明とか求められたらどうしてるの?
有名で皆が使ってるので安全です。とかじゃなくて。
そのライブラリが元で特にセキュリティ関係のトラブル起きた時にはどうしてる?
参考にしたい。 たぶん役所は、テストを外注する。カネも時間も(半年とか)かかるね
>>563
Encode/Decode APIがある
>>571
非常に難しいね
でも今の時代外部サービスを利用することがどんどん増えてきてるからなぁ
結局自分や相手が中小企業じゃ、自分たちのところにサーバたててしっかり管理していくよりも
多少のリスクがあるのかもしれないけれど委託した方がコスパ面で合理的なんだよね
まあ、論理的な回答は難しいんじゃない?
その客だって自身じゃできないから君のところを信用して任せてるわけだし、
ならどうして君のところに頼むという結論を出したのかを考えて、それを元に適当に回答してあげたら良いんじゃないの?
まあでも開発に携わってる人誰もライブラリの中身理解できませんは問題かもよ
場合によってはそれを改変したり、APIを真似して作ったりする手段も持っておかないと困ると思うよ >>573
APIがあっても追加のencodingってのが無くない?
CP932使いたかったんだけど結局そのAPIはあきらめたわ。 >>571
自前とライブラリ使用時の工数を出すだけ >>573
563だけども
Encode/Decode APIって調べたらライブラリ入れないと駄目なやつだよね
ライブラリ入れずに文字コード変えるのはやっぱり不可能なのか 違ったわライブラリじゃなかった
でもIE11だからどのみちEncode/Decode API使えない悲しい
>>571
> 純粋に聞いてみたいんだけど、皆はライブラリ使う時に、会社や客にライブラリの安全性の証明とか求められたらどうしてるの?
自分で書いたコードに、安全性の証明を求められたときとやることは一緒だろ?
自分でコード書いたから安全性はバッチリです!なんて言って終わらせないだろ?
自分たちは信じられないので第三者のセキュリティチェックをうけるわけで、
それをライブラリに対してやればいいじゃん? オブジェクト指向コンパイル言語にするって方向は間違ってない
とおもうよ、でも乱立する必要ある??
Coffee ECMA6 Type Babel
やりたいことは同じなのに別々の文法覚えて
Coffeeに基づいたフレームワーク
Typeに基づいたフレームワーク
Babelにもとづいたフレームワーク
それぞれ限定されたものしか使えなくなる
そのフレームワークも乱立して
Reactに基づいた拡張
Anuglarに基づいた拡張
全部文法がバラバラじゃん、いい加減にしてよ!
やりたいことは1つなのに、
テンプレエンジンもそうだよ、文法変える必要ある?統一してよ。
>>576
不可能じゃないよ
その為のjavaScriptなw >574-577
最初からこれというのが分かってれば自作することも十分に可能
大抵巨大な変換テーブルが要るからそれ見つけて来て
ちょっとパターン分け書いてやるだけで済む
メディアファイルのデコーダに比べたら遥かに簡単
TAの入門練習にちょうどいいと思う
>>571
ライブラリの安全性は求められるから、安全性が担保できるライブラリしか買えない/使えないな。
責任がはっきりする、外注の納品物でも品証がOK出すかわからん。
大体のEULAで割と序盤にお前らは別に保守契約しろよなって書かれてる業種だからちょっと特殊だけど。 WindowsもLinuxもMacもセキュリティホールだらけだから、自作OSでいくしかないな
>>582
> 安全性が担保できる
ライブラリじゃなくて、自分で作ったものの
安全性の担保はどうやってるの? ん?もしかして
× 安全性が担保できるライブラリしか買えない/使えないな。
○ 安全性の担保を丸投げできるライブラリしか買えない/使えないな。
と言いたいのかな?
これも
× 責任がはっきりする
○ 責任を相手に押し付けられる
こう言いたいんじゃないのか?
責任を相手に求めるのは間違ってるだろ?
ライブラリを使った責任は、使った人が責任を取る。
どうせ自分で作った場合は、作った人が責任を取るわけで
そこは変わらないはずだ。
作った人 = 責任を取る人 という固定観念があって
責任を取ってくれないからダメって言ってるんじゃないか?
使った人が責任をとるならば何の問題もないはずなんだが?
そもそも仕事だって作った人じゃなくて会社が責任を取るわけだし
「会社が責任を取るライブラリ」を社員が作ったか外部の人が作ったかにすぎないはずだよ?
>>583
半分ホント。
割とガチガチな枯れ切ったカーネルに自社で手を入れてるよ。
>>584
全条件分岐、直行表で試験するよ。
>>585
製品の瑕疵責任はうちが、部品の瑕疵責任は納品者が。
受け入れ試験するけど、受け入れでハネたものを修正するのはあっちだよ。 >>586
> 全条件分岐、直行表で試験するよ。
C1カバレッジでカバーできないC2カバレッジの範囲や、直交表から漏れたケースでバグがあるかもしれないよね
さぁ、どうする? >>586
> 全条件分岐、直行表で試験するよ。
セキュリティに関するものはそれで試験できないよね? >.586
> 受け入れ試験するけど、受け入れでハネたものを修正するのはあっちだよ。
自分で作ったものだって試験するだろ?
なら試験の量は変わらない。
修正は開発元に修正依頼投げれば良いんじゃない?
githubで提供しているならIssueを立てればいい。
障害はないはずだよね?
てか、ここJavascriptスレなんだけど、Javascriptの話なのか?
JavaScriptの話とは言えECMAScriptの仕様や技術的な話は
殆どされて来なかったどころか敬遠されてきたじゃん
私の代わりにコード書いてくださいという質問と
揚げ足の取り合いで成り立ってきたスレだよここは
>>591
とはいえ、組み込みの品質保証の話を始められても困るとは思わないか? >>587
分岐網羅、条件網羅で網羅できないならば、網羅できるようにするしかないわな。
品質都合でコード変えないといかん代表例だと思う。
というか、漏れてる時点でやる価値のないテスト。
>>588
どー言うこと?疑似環境自体作るから微妙なとこかと。
テストしてない、かつ証明できてないセキュリティっておかしいと思うけど。
>>589
するけど。試験の量も変わらんが。
発見した時、どーせパッチなんか待ってられないしこっちがコミットしまくるなら、もうそっからフォークして内製してしまったほうが良いってのが現状かなぁ。
だから、ハンドリングできる内製や外注の方が余程なん楽じゃん。
>>590
JSも最近やっと、まともに「安易に時刻を直接取らずにラッパーから取る」とか思想が広まってきてるし、良いと思うよ。
組み込みにだって、ウェブUIもありゃ、その上のJavaScriptだってあるんだから。 >>593
> どー言うこと?
どういうこともなにも、セキュリティっていうのは
客から要件定義される類のものじゃないので
セキュリティに対するテスト仕様書を作ることはできない。
そしてセキュリティというのは見逃しが原因で発生する。
そもそも見逃しているのだから、そこにテストが必要なことも思いつかない。
セキュリティはテストで担保できるものじゃない。 >>593
> するけど。試験の量も変わらんが。
試験の量が変わらないならば、
他人が作ってくれる分コストは下がるね。 10人以上死んでるけど、タカタは、10年以上、自社の破損を認めていない。
破産会見でも、自社製品は安全だと言ってる。
絶対に非を認めないから、自社の証明では無理
結局、トヨタ・ホンダは、5千億円ずつ払ってリコールして、
その費用をタカタに請求したから、タカタは払いたくないから破産した
結局、トヨタ・ホンダは、5千億円ずつ損した
自社の証明なんて、信じる人はいない。
OSSのように、外部の他人が監視しているものじゃないと、安心できない
netflixとか基幹で使ってるライブラリをオープンソースにして
検証してもらってるって感じだもんな。
ドキュメント読むと不具合見つけたらとにかく報告してくれって書いてる。
他者のライブラリのメリットというよりもOSSのメリットという印象だな。
自作ライブラリもOSSとして公開すれば、同様のメリットを享受できるわけで、論点がずれている気がする。
クローズなものは検証できないから、簡単にねつ造できる
橋下が言ってたけど、大阪の犯罪件数を減らそうと、目標を立てたら、
警察の方でねつ造して、数値だけが下がった
クローズでは、何か目標を立てて利益誘導すると、皆で数値をねつ造してしまう。
それで簡単にボーナスが増えるから
政治家の目標と官僚機構の、阿吽の呼吸で、即座に成功させてしまうw
つまり、ここでは当事者は2人で、ユーザーは無視されている。
なぜかというと、ユーザーはどうであろうと、常に税金を払うから、
政治家・官僚の仕事が減って、ボーナスだけが増えれば、それが正解だから
>>600
それは俺も思った。
OSSといっても実際にメンテしているのは限られた人数だけだし、よくある「世界中のエンジニアが見ている」の売り文句も机上の空論な印象。
実際のところ、品質を決めるのは、テストにどれだけコストをかけているかで自作/他作は関係ないと思う。
>>594の「セキュリティはテストで担保できるものじゃない」にしても、XSSとかSQLインジェクションとか攻撃法を想定してテストする事は出来ると思うんだが。 例えばlodashとかjqueryは普通に使ってるわけでしょ?流石に。
ossでちゃんと多数に使われてるなら信頼性はあると思うけど。
そこを嘘だと言うならv8も信用できなくなるわけだが。
>>601
うん。
目の数あっても、手の数は限られてるし、
手を使うなら、もう全部自分らでやろう、って発想になるよね。
>>594
の話。そんなインジェクションを想定していない訳がないからな。品証の前にテスターに出した段階で、テスターの方が「前提条件が足りないため不能」とか言い出すやつ。
一番面倒な乱数使う類の暗号も、ライブラリ側が正しく動作することが何らかの方法で単体テストできてりゃ、
C2カバレッジで各条件作ってるんだし。
>>602
うちのjQuery、jQueryにとてもよく似たライブラリになってる。テセウスの斧状態。 >>603
それはjqueryなのか?
特定のバージョンからのjqueryからforkしてきて独自メンテナンスしてるってこと?
それとも最初から互換ライブラリを作ったって話? >>601
> 自作/他作は関係ないと思う。
他作なら、ものによっては全世界レベルで何万何十万もの実稼働と呼ばれるテストが日々行われているわけだが >>605
これ。そもそもgithubのお陰でバグ報告の仕組みがだいぶ簡単になったし、
どんどんバグ報告して改善していってるよ。 >>605
> 他作なら、ものによっては全世界レベルで何万何十万もの実稼働と呼ばれるテストが日々行われているわけだが
それが幻想だといっているのだが、「何万何十万もの実稼働と呼ばれるテスト」とはどこから出てきた数だ?
「実稼働 = テスト」の図式はどこから出てきた? >>604
最初は互換ライブラリで、途中からフォークで、今はもはや独自、かな。正確に言えば。
>>605
エビデンスなきテストはテストではない。 まあ、未完成品を公開して利用者にテストさせるベータテスト的な考え方もあることはあるか。
だが、それは初版(ベータ版)の品質が悪い事を暴露しているようなものだし、ユーザの使い方が多様性を持っていて、しっかりとしたテストレポートが出てこなければ機能しない。
ほとんどのユーザは同じ使い方をしていて発見されないバグがあるかもしれない。
ユーザが報告しても環境起因や勘違いかもしれないし、本当にバグであっても曖昧な報告で再現出来ないかもしれない。
世界中のユーザがテストしてくれるってのは幻想に過ぎない。
テストはコードを理解している人物が行うものだ。
>>609
> ユーザが報告しても環境起因や勘違いかもしれないし、本当にバグであっても曖昧な報告で再現出来ないかもしれない。
github見たことないの? こんな感じだから日本人は海外に大差つけられるんだろうな
今はもうそんな時代じゃないのに
>>610
githubは知ってるが、あれはプログラマ寄りのユーザを対象にしてると思う。
「何万何十万もの実稼働と呼ばれるテスト」といわれるようなのはコードに触ったこともないような一般人よりの感覚だと思っているのだが、そうでもないのかね。
「実稼働=テスト」という感覚がどうにも信じがたいが。 あと、何度もいってるが、自作/多作に関わらず、githubに公開すればその恩恵は享受できるのだから「他作だから信頼性が高い」わけではない。
彼の主張を聞いていると「先発のライブラリが信頼性が高い。自作ライブラリ(後発)は信頼性が低い。」といっているように聞こえるが、そんな事はないだろう。
>>612
伽藍とバザールでは、あくまでユーザはデバッガ兼共同開発者では? こいつらの言うことを全部正当化するなら使ってるlinux鯖も全部ソース検証して手直しビルドということになるな
いきすぎると社畜の年寄り老害とかわんねーよ
>>608
> エビデンスなきテストはテストではない。
エビデンスあってもテストにならないものも多いけどね。
例えば、人によって解釈が異なるテスト、
エクセルに日本語が書いてあって読み手によって
実行するテスト内容に幅があるようなものはテストではない。
また実行結果画像も捏造が可能なので
こちらもエビデンスと呼べるものではない。
適当なテストやってるところは、
これをエビデンスとかいっちゃってるけどねw 結局社畜理論なんだよね
上から何か言われて責任逃れが言えるかどうかしか考えてない
「テストしました!検証しました!」
で?その検証が正しいという証拠は?
どこの馬の骨ともわからんライブラリ拾ってくるのはどうかと思うが、物事にはレベルってもんがあるだろ
jQueryに難癖付けて使わないレベルとさあほとしか言いようが
>>616
稼働実績ではなく、テストしているユーザの実数が問題なわけだが >>611
じゃあ半島に帰れよマジで
韓国人死ね
>>613
見りゃ分かるが明らかにエアプか?ってのも混ざってるだろ。
そういうのは無視でいいぞ。
GitHubがどうだとか、ここでグダグダ言わずとも、使えば分かる。
OSSについての過大/過小評価をしている奴は、要するにやってないだけ。
そんな奴らと話しても水掛け論にしかならない。
ただしインフラ系や組み込み系と比べたら、
Web系の検証なんてやってないに等しいくらい酷いぞ。
ただそれが一方的に悪いわけでもなく、それがニーズでもあるんだが。
そしてお前らマジで別スレ立てろ。
この手の話に食いつきがいいのは以前からで、
多分今のお前らには必要なんだよ、JavaScript中級者用雑談スレがね。
なお俺はそれには参加しないから安心しろ。 ちなみに実稼働とは別にもちろんjQuery側で用意しているテストもちゃんとある
https://github.com/jquery/jquery/tree/master/test
テストの数とかカバレッジは知らない(見つけてない)けど、
こういうテストを行っていることがはっきりわかるし
誰がやっても同じテストを行うことができる。
こういうのが正しいエビデンス
あと気になるのが、実稼働とテストコードどちらが信用できるか?
jQueryは両方あるので関係ない話だけど、一般論の話をすると
実稼働数が少なくて、十分なテストがされている場合は、使われてない機能も
ちゃんとテストされているはずとうことでテストコードの方が信頼性が高い。
だけど実稼働数が膨大であれば、テストされてないマイナーな使われ方を
発見することがあるという点で、実稼働のほうが信用できる。
特に特定のスマホだけに発生する問題とかあるからね
(実際jQueryにはその対策コードがいくつも入っている。)
実稼働の数が膨大であればエビデンスはなくてもテスト以上に信用できる。
エビデンスだけを求めている所は「政治的な理由」でこれがダメだと言うだろうけど
それは政治的な理由であって、正しく動くという事実を否定するものではない。 >>619
> 結局社畜理論なんだよね
> 上から何か言われて責任逃れが言えるかどうかしか考えてない
それだろうね。
「外部が作ったライブラリを使って責任は取れるのか?」
っていうのは実は、
「外部が作ったライブラリを使って問題が起きたらお前が責任は取れ!」
って言ってるのと同じなんだよね。
そして、責任取りたくないだろう?なら
「お前が作って、問題が起きたら、お前が責任を取れ!」
と言ってるのと同じことに気づいていない。
結局責任を取るのは「お前」なんだが、そこに気づいてないやつが
あ、自分で作れば責任取らなくていいんだ。って勘違いしちゃうわけw >>608
> 最初は互換ライブラリで、途中からフォークで、今はもはや独自、かな。正確に言えば。最初は互換ライブラリで、途中からフォークで、今はもはや独自、かな。正確に言えば。
jQueryをフォークしないと修正できない問題って
思いつかないんで無いと言わせてもらうけど、
フォークしたのは技術力不足とか発想力が
足りなかったとかいうこと?
フォークしなければ修正できない問題なんてないよね? そういや、どこかのスレでエビデンスとは
テスト作業をちゃんと行ったという証拠(エビデンス)として
求められているものであって、テストの内容については関知しない。
システムが正しく動く証拠ではなくて、
さぼってないかを証明するために必要なもの
みたいなことを聞いたことがあるなw
もちろん皮肉としていってるんだけど
>>623
> 自分で作れば責任取らなくていいんだ。って勘違いしちゃうわけw 自分で作れば責任取らなくていいんだ。って勘違いしちゃうわけw
分かるわーw
しかし、テスト使ってカバレッジとかやればそれでOKとか思ってる考えの浅いバカってホント多い
カバレッジは全ての引数パターン網羅してるのか?ん?
結局、テストしたという結果が欲しいだけ(それが最重要だと思い込んでる)
上司に出す報告書にそれらしい事がかかれていればそれでOK(そもそも上司に判断能力がない)の世界
そして重大なミスが起これば責任のなすりつけ&皆で土下座といういつものスタイル このように、ITという半分クリエイティブな仕事をゼネコン同様のツリー構造にしてしまってる日本の最低センス
全てが資本の食い物にされてるだけなんだよね
国内だけならいくら効率悪くても単価高くなっても、客にふっかければそれでOKでいままでやってきたんだよ
それがネット社会になって国際化が進んで他国と比較される機会がでてきて笑われてるというのがここ十数年の日本のIT
さすがにそろそろおかしいと気付けないもんかねえ
>>618
人によって解釈が変わるのはテストとして絶望的だわな。
「正常に表示されること」って文言見ただけで即却下の類。
結果のエビデンスに関してはどうとも言えんな…。捏造を疑い出すときりがない。 >>619
検証が正しいと言う保証は、首かけるぐらいしか無いだろ。
テスト上失格は仕方ないが、メクラ判ついたらクビだよ。
>>624
確かテストケースが組み合わせ爆発するのがあったはずで、その辺去勢した。
なんか勘違いしてるみたいだけど、本気でやってるからなぁ。 >>628
本当に必要なことと、政治的に必要なことが逆になってるからねw
テスト結果をエビデンスとしてキャプチャ画像を残すのは政治的な理由。
テスト結果なんて「All OK」の文字だけで本当は良いはずなんだよ。
本当に必要なのはテスト内容。テスト結果をいくら見たって意味がない。
テスト内容を見なければ意味がない。
でもエビデンスを求めてる方は、テスト内容が理解できない。
だからテスト内容の代わりに、テスト作業をやったという証拠を
もらうことで安心感を得られるw
だからテスト作業の内容が簡単であっては許せないんだよ。
安心感の根拠となってるのが
「こんな面倒なこと(画面キャプチャを取る)をやったんだ。
頑張ってるということは、ちゃんとやってるに違いない」
という思いなんだからw
本来はテスト内容は書くのが大変。テスト作業自体は簡単。テスト結果も簡単。であるべきなんだが
テスト内容がわからない人に、頑張ってる所を見せるため、テスト作業を大変なものにしてしまう。
そしてエビデンスを求めてる方も「俺らはキャプチャ画像をチェックした。ふぅ〜大変だったぁ〜」
と言いたいがためにキャプチャ画像を要求してるw
大変なことを頑張ってやり遂げた!偉い!感動した!
これが駄目なやり方の全てだよw >>629
> 確かテストケースが組み合わせ爆発するのがあったはずで、その辺去勢した。
だからそれを修正するのに、jQueryをフォークする必要はないと言ってんだけど? 強く建前を要求しその建前さえあれば中身糞でもOKなのが日本のITだよなぁ
まぁ実際に使いたい機能はほんのちょっぴりなのに
無駄にでかいフレームワークやライブラリ使うと
使わないロジック部分で変な影響あったらやだよねと思うことはある
最近は行儀のいいコードがほとんどなのでそういうことないけど
所詮は生産性を観点に於いて使えば宜しい
あとはオナニーの世界
>>630
テストケース作るのは大変だな。
シナリオ作って、なんやかんや。
チェックは後から確認するくらいで、普段は正直エビデンス画像見ないよ。見るだけで時間かかるし。
>>631
なんでしたんだっけ。
追従やめて内製にしたのは確か覚えあるんだけど。 情報公開が大切だって、常に橋下が行ってる。
公開していないものは、簡単にねつ造できる
教授になった医者の話を聞いたら、実験サンプルは、10個もあれば十分。
それを少しいじって、データを100以上に増やす
そういうやり方をすれば、他人よりも仕事が速く、材料費も安くつくから、出世できる
臨床実験など、外部から検証できないものは、ダメ。
皆で、数値合わせだけするから
真面目に働くのがイヤだろ。
しかも、まともに検査するにはお金がかかるけど、会社は出さないから、できない。
それなのに、上司はいじめてくるから、ねつ造せざるを得ない
>>630
> テスト結果なんて「All OK」の文字だけで本当は良いはずなんだよ。
ユニットテストならそれでいいがな >>623
ライブラリを使おうが、使わなかろうが、責任をとるのはコードを書いた本人。
ライブラリを使って書いても、書いたコードにバグがあれば不具合は発生するし、脆弱性が発見される事もある。
つまり、ライブラリを使うことは安全を担保する事にはならない。
セキュリティを意識するなら攻撃手段を知って対策をとる必要があり、「脆弱性対策でコードを修正するのが嫌」なんて意識の奴にはそれがないから安全なコードは書けない。
いい加減、「ライブラリの方が安全」という幻想は捨てろ。 >>639
もとまとそれは、
有名どころのライブラリーと同レベルの"安全"を構築するのに必要な知識と工数、それらの後々の保守
それを自分で行ってまで、ライブラリーは安全が確認できないから使わないとか言い出すバカへの反論だろ >>640
例えば、有名でgithubで配られてたなら良いんだ。無条件で何もかも信用すると。 >>641
おまえって文章の理解力はおろかコミュニケーション能力すらないんだな
そんな人間が客の要求するものを提供できるのか?ん?
で?640のどこに有名でgithubにあれば信頼すると書いてあるんだ?ん?
だいじょうぶか? 何勉強すればいいのかわからん
JavaScriptなのか
TypeScriptなのか
Node.jsなのか
io.jsなのか
CoffeeScriptなのか
Jadeなのか
Babelなのか
Webpackなのか
gulpなのか
Gruntなのか
>>640
いいたいことはそっちか。
まず、考え方のスタート地点からして間違っている。
計るべきは「安全」ではなく、「リスク」だ。
安全は定量的に計ることが出来ないが、リスクはテストで計測できる。
「有名どころはライブラリと同レベルの安全」なんてものは主観的なイメージでしかない。
具体的なリスクを想定するならテストは容易。
例えば、ipaはSQLインジェクション検出ツールというものを公開している。
https://www.ipa.go.jp/security/vuln/iLogScanner.html
XSSやDOSだってテストは可能だろう。攻撃手法は確立されているのだから、実際に攻撃してみれぼすむことだ。 >>644
本当にレベルが低いなおまえ
先日のレスのやりとりをもういちど読み返してみろよ
サラリーマンITドカタとしてならおまえの言うことも分かるがそれが原因で海外と大きく差が開いてるって話だろ
一生高みを目指すこともなく、社内でがんばりなさい >>643
まず何をしたいか(何を作りたいか)、どこまで行きたいかだろ >>643
勉強なんかすんな
好きなものを学習しろ >>638
> ユニットテストならそれでいいがな
レスの仕方間違ってるって言われない?
「ユニットテストはそれでOK」じゃなくて
NGな場合を言うべきでは?
ユニットテストがそれでOKってのは
最初からわかってることでしょ? >>639
自分で言うことを整理してから言おうよw
「ライブラリの方が安全」というのと
問題が起きた時に「責任を取るのはコードを書いた人(ライブラリを使った人)」
というのは両立できるでしょ?
責任を取るリスクを減らすために
より安全なものを使うんだよ。 問題が起きた時に責任を取るのが自分なのはどちらも同じだから、
問題が起きにくいものを選んでも
問題が起きやすいもの選んでも
リスクは変わらない
なんて思う人居ないよ?
なんか話が散らかってるな。
問題が何故問題かと言うと、テストケースとして無茶苦茶なパターン数になるものや、完全に使わない関数を削除して、品証通して出荷した物に、
次のバージョン入れたら同じ事せなならんでしょ。
そうなったら最早同じようにパッチを内製してしまう方が効率的だとは。
一回認証取ったらそれ改修する≒リコールに近い取り返しつかんものもあるんだし。
>>652
> 次のバージョン入れたら同じ事
「同じ事」って何? なぜか世の中には不思議な人が居て、
あるライブラリに自分でパッチを当ててバージョンを上げると、
テストが不要になると考えてる人がいるということ。
結局自分でパッチを当てるのはテストをしたくないからなのかな?
「勉強」って言うと具体的に何をするのかがわかりにくくなるんだよな
例えば「資料を集めて最新情報を頭の中にぶち込んでいく」とかならいいと思うね
>>653
うん、もう一回改修/去勢して、もう一回テストせなな。
>>654
何言ってるんだ…?テストするよ。
そのままVerUPするとそのタイミングと範囲が自分たちが使う範囲外であろうがなかろうが、テストケース自体切り直さないといかんくなるだろ。
パッチはその辺り、既存テストへの増分として考えればだいぶマシだし、デグレの原因わかりやすい。
テストしたくない、したい、ではないよ。
どうせするんだから。
有意義なテストしないと、意味ないじゃん。
内製≒ノーテストだと思ってるんだろうか? 客は、OSSを希望する。
外部から指摘されて、何回か修正されるから
内製のものは、指摘する人がいないから、まず自分から修正する事はない
ただで修正すれば、自分が損するだけだから、
わざわざバグがあったと報告する人はいない
だから、OSSでは修正されるけど、内製では修正されない。
つまり、よく修正されるものほど高品質
>>658
希望されないな。すごい世界だなーって思う。
内製に指摘する人?めちゃくちゃ居るよ。
ソフトウェアレビュー、製品レビュー、品証、製造、品証、改善委員会、社内仕様検討会、と、どこからでも無慈悲に飛んでくる。
指摘されて怒られるのは無意味だし、むしろ製品として出ちゃうとヤバいし、レビュー通っててもこっちから改善提案再検討願いみたいなの出せるし、出すよ。
自分で報告したら損になるって随分変わった会社だな。 ってか、OSSでももう俺が飽きてしまって、誰かやりたい人、フォークして俺本気でこれやる、ってイシューに書いて宣言してー。readmeに書くし、obsoluteつけてまわるよーって宣言したものもあるしなぁ。
誰かや、誰か達のモチベーションに頼る方が危ない。
さっきからossのライブラリは信頼できるかどうか?
でスレを消費してるが、スレ違いでは?
正直会社の方針次第なわけだから、
どうでもいい。
前の前の会社ではネット禁止でアプリのインストールも社内ネットワークで許可されているものだけ。みたいなことがあった。そういう状況では自作するしかないから。
それだけの話。
>>643
この中ではtypeScriptを主体に初めたらいいよ。
型があるって便利だよ。なんというかライブラリの使い方をコンパイラが教えてくれる感じ。
rxjsとか使うときとか返り値が何になるか推論した結果を教えてくれるから
凄く理解が進む。
ただしtypescriptをサポートしたライブラリじゃないものを使うと途端に茨の道に入るけどな。
あとwebpackとか意識しない方法はある。rectだったらcreate-react-app --scripts-version=react-scripts-ts を使う みたいな TSはJSで物足りなくなって来てからが良いと思うぞ
まずは普通にJS界に入った方が良い
あと型はまだまだ時間かかりそうだから今からTS始めるのもありだが
モジュール周りが仕様固まって実装が始まってるので
今からwebpackやらに頼って行くのは良くない
勿論当分は必要になるわけだけど、それはあくまで仕方なく変換するために使うわけで
まるで標準のように履き違えてはいけない
もう1,2年したら型周りも同じ、TSもCSと同じくあくまでJS界の肥やしとなるもので
まるで標準のように履き違えてはいけない
>>657
> 何言ってるんだ…?テストするよ。
> そのままVerUPするとそのタイミングと範囲が自分たちが使う範囲外であろうがなかろうが、テストケース自体切り直さないといかんくなるだろ。
> パッチはその辺り、既存テストへの増分として考えればだいぶマシだし、デグレの原因わかりやすい。
もしかして自分らで開発してるシステムのテストじゃなくて
使ってるライブラリのテストをやってるの?
例えば使ってるOSのテストを行うみたいなことをやってるの? まともなライブラリであれば、ライブラリのテストはライブラリ開発者がやっていて
修正履歴もわかるし、既存テストは存在するし、増分のテストもすでに存在してるよね?
それなのにライブラリのテストを自分らでやってるの?
>>660
> 誰かや、誰か達のモチベーションに頼る方が危ない。
そこだけは同意するわ >>663
俺はtypeScriptが先でもいいと思うよ。
例えばdom操作に限って言えば明らかにtypescriptのほうが楽
対応しているeditorならどんなメソッドがあるかわかってるから
曖昧な覚え方をしていると指摘してくれるし、例えば、querySelectorAllは配列で返ってくるから
addEventListenerをすぐには使えないのかってすぐ分かる。
試しにpaygroundを使ってみるといいと思う。補完が効くし変数にカーソルを合わせると
変数の型もわかる。
https://www.typescriptlang.org/play/ 勿論それはいい事だけど
Web業界にどっぷり浸かるとそういう綺麗事な効率性だけじゃなく
「つぶしが利く」必要がまだまだあると思う
だからそこはAllが配列返してaddが直接使えないこと程度は身につけるべきだと思う
ライブラリと同じで、しっかり身に着けた人が補助のため頼る方が「つぶしが利く」
>>650
何が整理されてないのか、分からんが俺が主張するのは2点だけ。
・安全で語るな、リスクで語れ
・どんなリスクがあるのかを検証しろ
「ライブラリの方が安全」と主張する奴は希望的観測で語るばかりで、某かを検証したデータがあるわけでもなく、信用できないといってる。
お前の主張を他者に認めさせたいなら、「他作ライブラリを使用することが自作ライブラリを使用するよりもリスクが低い事」を実証して見せろ。 そもそも、同じプロジェクトの他のメンバーだって他人でしょ
>>669
「自作ライブラリを使用することが他作ライブラリを使用するよりもリスクが低い事」は実証されてるの? >>664
うん?うん。
ライブラリが仕様通りか受け入れやってるよ。しないの?
OSテストするよwだから枯れたカーネル使ってんだし。
>>665
ライブラリ開発者がやるのは単体テスト。
そのテストコードがこっちの要求品質にあってなかったらテストするじゃん?
使う側は受け入れ試験と、製品に対してのテストの担保のために受入、ユニット、総合テストするじゃん。
>>670
他業種だけど、JDLなんかも未だに作ってるんじゃねえかな。
あそこもキーボード作ったり色々やっとるし。
>>672
それ俺が>>660で書いたように、飽きる飽きないという致命的にサポート体制がヤバいものもあるって問題の様に、OSSでも売り物でも程度問題かと。
.netの初期も酷かったしな。昔居た会社でMS何回呼んだかわからんぐらい色んな地雷踏んだ。
そういう意味では、テストが全体を網羅してて、かつ「使わない部分が無いライブラリ」ってのは割と盤石。 >>673
OSをテストするような環境は、特殊環境だと気づこう >>672
実証されてないし、俺はそんな事を主張していない。
俺が「テストしろ」と主張するのは「他作の方がリスクが低い」を主張する人がそれを確認するのに有効だから。
希望的観測や願望で適当な事を主張している奴に「しっかりと実証してからものをいえ」と指摘しただけ。 環境テストばっかりしてるとただの環境バグ発掘作業になる
組み込みやWebでも特定環境向けのシステムなら意味はあるが
そうでないのならそうなってしまうことは避けた方がいい
そもそもWebページってのはエラーがあったからと言って落ちたりするわけでもなく
HTMLを中心に頼るように構築することでプログラムの一部分の問題から復帰しやすいようにも作れるわけだから
俺は別に「自作の方がリスクが低い」と主張するつもりはない。
あえてリスクを計るならXSSだとかSQLインジェクションだとか、リスクに具体性を持たせてテストすることになるだろうが、自作/他作を集計してテストコードを書いて...そこまでやる意義が感じられないからやる必要すら感じない。「俺は」な。
だが、それを主張する奴は実証して証拠を持ってくるべきだ。
でなければ、説得力を失う。
XSSみたいに、まず試されそうな脆弱性に関しては自作の方が弱いだろうね
でも珍しい脆弱性になるほど、広く使われている物の方が弱くなる
ただしベータ版も広く使われて十分に検証されていると思われる
超著名なライブラリってのはやっぱりリスクは低いと見ていいと思う
まあダウンロードページが改ざんされてーくらいになると
それどころの話じゃなくなるからさ
>>667
TypeScriptはJSをある程度極めてからのほうがよくない?
生JSが分からないと他のコード読んだりで苦労して結局素人レベルで躓くよ
もしくは、そもそもJSなんてまじめにやる気がなく他の言語の知識で手っ取り早く何かを作りたいとか 質問でも何でもないんだけどES6の分割代入ってのを勉強不足で知らなくて面白そうだったので遊んでみた
const sum = ([x,...xs]) => !x ? 0 : x + sum(xs);
const a = [1,2,3,4,5,6,7,8,9,10];
console.log(sum(a)); // 55
const maximum = ([x,y,...ys]) => !y ? x : x<y ? maximum([y].concat(ys)) : maximum([x].concat(ys)) ;
const b = [22,56,13,53,89,72,64];
console.log(maximum(b)); // 89
const zipWith = (f,[x,...xs],[y,...ys]) => !x||!y ? [] : [f(x,y)].concat(zipWith(f,xs,ys));
const c = [3,5,8,100];
console.log(zipWith((m,n)=>m*n, a, c)); // [3,10,24,400]
const takeWhile = (f,[x,...xs]) => !x||!f(x) ? [] : [x].concat(takeWhile(f,xs));
const langs = ['C','Java','Python','JavaScript','Perl','C++'];
console.log(takeWhile(x=>x!=='JavaScript', langs)); // ['C','Java','Python']
うーん、先頭に追加したいだけなのにconcat使ってるあたりがダサいな・・・効率悪そう
でもパターンマッチの幅がぐっと広がるし再帰はともかく日常的に重宝しそうだ
>>673
> ライブラリが仕様通りか受け入れやってるよ。しないの?
しないよ?
ライブラリを使ってる自社開発システムが
正しく動くことをテストしてる。
だってそうでしょ?
中で何を使ってるかは関係ないでしょ?
自分で作ったものが、正しく動けばいいだけ
だから正確に言えばテストはしてる。ただしライブラリ部分は
ブラックボックステストになってるってだけの話
そもそもさWindowsやブラウザが仕様どおりかの受け入れテストする?
しないでしょ? ダブルスタンダードは良くないよ >>682
それからさ、あんた。
自分で下請けに開発してもらったライブラリと
汎用のライブラリを同じようにテストするべきって考えてるでしょ?
どっちも同じ「ライブラリ」だからね!とここで思考停止してる。
ライブラリという名前に騙されて、その2つの違いを考えてないでしょ?
下請けに開発してもらうライブラリは、
下請けに出すほうが仕様書やらテスト仕様書やら作るから
受け入れテストがあるんだよ。
じゃあ汎用のライブラリは? 仕様は開発会社が作るし
テスト仕様書も開発会社
受け入れテストをするためのテストなんて作れやしない
もしかして汎用ライブラリの仕様書やコードを読んで、
すでにある実装がエラーでないようなテストを作るの?
それ意味ないよねw >>680
ある程度の対処法を把握するくらいで十分だと思う。
今時jsだけってわけでもないでしょ。goとかswiftとか触ると思う
後フレームワークならRxJSとか。
例えばExpressのmiddlewareの仕組みをわかってれば
koaのmiddlewareとか
golangならgoaとかのmiddleware
reduxのmiddlewareとかもある程度どんなものか分かるようになるし
あとandroid開発してる時にcontextって出てきた時に
go系のwebアプリでもcontextが出てきて同じ役割だったりする。
関数型言語を学んだら普通にlodashのflatMapとかreduceとか使えるようになるし
ということで色々幅広く学習すると理解は同時並行的に進むし
多少曖昧でもコンパイラが教えてくれるから詰まることは少ないし。
ということで一つの言語に係る時間は短めなんだからコンパイラが教えてくれるならそれに越したことはない。
自分としてはIMEが漢字を変換してくれるのに似ていると思ってる
漢字は自力で書けなくなってるけど変換したときの正解はわかってるから支障はない。 > ただしライブラリ部分は
> ブラックボックステストになってるってだけの話
自己レス
ブラックボックステストって書いちゃったけど、
プライベートメソッドのテストって書いたほうが良いか?
プライベートメソッドは直接テストを行わない。
パブリックメソッド経由でテストを行う。
それと一緒でライブラリのテストは
自分で開発したプログラムのパブリックメソッド経由で
テストを行えばそれで十分
ライブラリのテストはライブラリの開発会社が
担当すべきところ
分割代入は90%
ary2 = [...ary]
ary3 = [...iterable]
のためにある
それにしてもびっくりだなw
あなたが作ったライブラリが私の仕様を満たしているか
受け入れテストを行います。これならわかる。
あなたが作ったライブラリがあなたの仕様を満たしているか
私が代わりにテストしてあげます。
とか意味不明w
まあ、あれだな。
自分が頼んで作ってもらったライブラリと、
汎用的なライブラリをごっちゃにしてたのが敗因
>>667
> 補完が効くし変数にカーソルを合わせると変数の型もわかる。
それはインテリセンスであって型の恩恵ではない。
型なしでもインテリセンスが利くエディタもあったはず。
>>681
それは分割代入ではなく可変長引数だが。
ただ正直、お前らそんなピント外れな事ばかりしてるから上達しないのだと思うぞ。
色々試すこと自体は悪いことではないが、
そのコードだと余計に話が面倒になってるだけだろ。
しかも末尾再帰にもなってないし。
お前らの周りには、「馬鹿かよ」と言ってくれる上級者は居ないのか?
他の奴にも言ってるが、今のお前らが上達したいと思うのなら、
とにかく大規模なコードを書け。
そしたら今のお前らのこだわりがどれだけ無意味なのか分かるようになる。
そういう小手先の技なんて全く必要ない。
car/cdrはLispに在ったはずだが、誰もLispなんて使わなかったし、今現在もそうだ。
関数型()の奴らが勘違いして色々大騒ぎしたようだが、
現実的に「新型」関数型は何も生み出せてないだろ。
あいつらやってることがずれてる。それは上級者になれば分かる。
car/cdrにして効率を上げるには、
インタフェースを揃えた事により複数の関数を同様に適用できるようにするか、
イテレータを揃えた事により複数のコンテナに対応できるようにするかしなければならない。
ただこの方向で最適化しまくってるのがむしろC++なのは皮肉だが。
あと何度も言ってるが、マジで別スレ立てろ。
お前らの間違いは多すぎて訂正する気にならないほどだ。
お前らと話したところで俺が得るものはなく、お前らが無理矢理居座るなら俺が出て行くしかないが、
それはお前らにとっても不利益なはずなんだがな。
お前らは近視過ぎだ。あと、韓国人死ね。 そもそもお前らは>>681のコードが何故駄目なのか指摘できないんだろ?
それでお前らが俺に噛み付いてくる理由が俺には分からんよ。
とはいえ、これまでのお前らの反応を見る限り、
お前らはお前らのコミュニティ内では上級者として振舞っているのだろうとは感じる。
しかし他言語経験者からすると、お前らフロントエンジニアはマジで糞だよ。
お前らが馬鹿にしているペチパーのほうが俺には数段マシに見える。
ただまあ、この際お前らが糞かどうかなんてどうでもいい。
問題はお前らの向いている方向が完全に間違っていることだ。
例えばC++のスレ、あれはあれでかなり異質だが、
仮に俺が同様の指摘をすると、奴らは「技術的な」意地の張り合いを仕掛けてくる。
具体的には、俺が指摘した「技術的」部分、
・話が余計に面倒になってるから糞(ネイティブで書いたほうが数段マシ)
・末尾再帰じゃないから糞
・car/cdrにした意味が無いから糞
について突っ込んでくるわけだが、お前らは基本的に俺の「人格が糞」って言うだけだろ。
俺の人格なんてどうでもいいだろ。
お前らはOSSのコントリビューターの人格なんて気にするのか?しないだろ。
そもそもお前らみたいに「人格」を気にするのならマジで「マトモな」フォーラムに行け。
俺みたいに「韓国人死ね」って言うやつなんて皆無だ。
そのかわり、「人格」が重視される分「内容」が軽視され、
結果的に2chみたいに「内容のみ」で判断される場所よりも技術的内容は酷い。
どっちを選ぶかはお前らの自由だが、他スレ見ても分かるとおり、
2chなら2ch的にしかならんよ。俺もそうだというだけ。
ただ、何度も言っているが、俺は止めろと言ってる訳じゃない。
今のお前らには「中級者用雑談スレ」が必要なんだよ。だからそれを立てろと言っている。 >>691
不快にさせてしまったようですみません
単に動きを確かめたかっただけです…
おっしゃる通り糞コードですし、真面目に再帰として使う気は毛頭ありません
ただ新機能をいろいろ試してみるのが好きなので…お目汚し失礼しました > 単に動きを確かめたかっただけです…
それは見ただけでわかるよ。
それなのに>>691はなにをそんなに
喚いているのかのほうがわからない >>692
IDとか違うが釣りか?
まあそれはいいとして、そういう問題じゃない。
お前らは色々表面的、面従腹背になってる。
事実として、糞な上司はいるし、デタラメなことを主張する馬鹿もいるだろう。
それに対してお前らなりに対応してきた結果だとは分かる。
脱線するが、俺がビビッたのは、姜尚中が
「東大の教授ってものすごい権力があるんですよ。
だって必修科目の評価を落とせば、任意の学生を卒業させないことが可能なんです」
の類のことを言ったこと。
東大に限らずどこの大学でも必修科目の教授はそうだが、
誰もそれを濫用しなかったから秩序があるわけであって、
だから韓国人は駄目なんだ、とは思ったね。
とはいえ、政治学科等ではゼミの教授の思想と一致する方向の論文の評価点が高くなる傾向があり、
お前らは学生時代からイエスマンとして振舞うことを強要されているという現実もあるとは聞くが。
ただな、2chはそういう場所ではない。
だから、お前らが俺に対してイエスマンになる必要はないし、その意味もない。
また、思うところがあるのなら堂々と反論すべきだ。
ただしそれは「技術的」なことにしろ。
あと、よくいる馬鹿は「糞コードだ」としか言わないが、
俺は自学できるように「何故糞コードなのか」ちゃんと書いてるだろ。
だから681に関しては少なくとも落とした意味(利益)があるようにしてる。
そうすると681は次もまたコードを落としてくるかもしれないだろ?
そうやっていい投稿者にエサ(利益)を与えて再投稿を促し、悪い投稿者や韓国人は無視して殺し、
スレを作っていくものなんだよ。お前らはここら辺のことをまるで分かってない。
とはいえこれらも経験だから、お前らなりにやって学ぶしかないんだよ。
だからやれといっている。雑談スレを立ち上げて、お前らなりにやってみろ。
韓国人死ね。 このスレでは雑談は禁止ではないが
煽りは最重要禁止項目だ 去ね
わざわざスレタイに「質問用」ってつけたら普通雑談禁止に決まってるだろ
>>682
受入しないなんてすごいな。
正しく動いてるように見えるのと正しく動いてるのは違うぞ。
「多分全部施錠した」と「全部施錠した」っての、前者はガバガバだよ。
Windowsとブラウザかどうかかわってくるかわらかん…納品物にはそいつら含まれてないよ。
強いて言えばブラウザはFirefoxのLTSのいくつで確認してますはあるけど。
>>683
だから、汎用ライブラリは要らないね。
スイスアーミーナイフでドヤ顔されるようなもんだし。
最後の段落意味がわからん。
本気でわからん。エッジ値周りのテストとかするだろ。
お前、実務経験無いだろ。 >>695
> 去ね
汁かよ。韓国人乙。死ね。
というかこれも既に言っているが、2chにおいてある程度の煽りは必要悪なんだよ。
やればわかるが、煽り無しではまったく秩序を維持できない。
ただしお前らがこれに反対する権利はあって、それなら実力を見せろと言っている。
つまり、このスレを乗っ取るのではなく、
お前らで「ぼくらのかんがえたさいきょうのすれっど」を立ち上げて何とかしてみせろ。
韓国人死ね
実際お前らが韓国人歓迎/初心者歓迎/煽り無しで良スレッドを維持できるのなら大したもんだ。
そしてその場合、このスレは死ぬんだから、お前らの望みどおりになるだろ。
ただ、これも何度も言っているが、俺はお前らにはその能力はないと見ている。
理由は簡単で、お前らはお花畑だからだ。
現状の2chがどういう力学で秩序を維持しているのかすら理解できていない。
お前らお花畑の理論なら、マトモなフォーラムの方がマシになるはずなのだが、
それならお前らがここにいること自体が矛盾するだろ。これも既に言ったが。
つってもどうせ納得するはずもない。だからやってみろ、と言っている。
そしてお前らの無能さを思い知るがいい。
ただ、マジで成功するようなら、それはお前らの勝ちだし、2chの雰囲気も変わるかもしれんよ。
いずれにしても、正しい競争というのは、よりよいものを提示しあって殺しあうものであって、
いいものに纏わりついて相手を貶めて自分達レベルまで落とす、ゴキブリ韓国人的競争は止めろ。
マジで誰のためにもならないからそれは。 >>697
> 受入しないなんてすごいな。
ライブラリの受け入れテストしないだけで
ライブラリを使ったシステムのテストはするからな。
何の問題もない。
それになんで汎用のライブラリ、つまり開発者が仕様作ってるのに
なんの受け入れテストするんだよって聞いたよな?
自分が頼んで作ったライブラリ(これなら受け入れは存在する)と
汎用のライブラリは違うっていったことは無視か?
> 正しく動いてるように見えるのと正しく動いてるのは違うぞ。
だからテストすると言ってる。何度でも言うぞ?w
> Windowsとブラウザかどうかかわってくるかわらかん…納品物にはそいつら含まれてないよ。
意識してないようだけど、結局それだよねw
動くことを保証するためにテストするんじゃなくて
納品するからテストするになってる。
それならライブラリも納品しなければ良いのでは?
Windowsやブラウザのように、お客様が設置するもの
とすれば、テストしなくてすむよw >>697
> エッジ値周りのテストとかするだろ。
だーかーらー、自分で作ったライブラリを使ったシステムのテストをすればいいだけ。
ライブラリ自体のテストは、開発会社がすでにやってるじゃん。 > お前、実務経験無いだろ。
頑張れば偉いと思ってる証拠。
(無駄な)努力をした。だからちゃんと
仕事してると思い込んでるw
無駄な作業に時間をかけるのが
真面目なのではない。
ただの馬鹿である。
そもそもさ、汎用のライブラリ=どこかの開発者が作ったものの
受け入れテストの内容ってどうやって作るんだよ?って話だな。
先に書いておくと、自分が作ってもらってないので
「受け入れテスト」は正しくない。
だけど普通はやらないテストだから名前がない。
さて、どうやって受け入れ(?)テストの内容を作るのだろうか?
開発者が考えた仕様をみて、そこからテストを起こす?
それ受け入れるためのテストじゃないよねw
開発者が仕様を考えるのだから、勝手に仕様を変えるのは間違い
開発者が考えた仕様に動きがあってないというのならバグだが、
開発者が考えた仕様に文句をつけることはできない。
「受け入れテスト」という用語を調べればわかるが、
これは" 委託して作ってもらった" システム(ライブラリ)のテストと書いてある
自分で何処かに委託して作ってもらったライブラリと汎用のライブラリは
性質が全く違うものなのである。
ライブラリは作ってもらうものだ。という固定観念
だからライブラリを使う時はテストが必要だ。という間違った経験
そのテストは受け入れテストだと言うんだよ!という間違った理解
(不要な)汎用ライブラリも受け入れテストしてる。これがプロの仕事だ。
とかいうアホ
システムが正しく動くかどうかじゃない。納品物に含めるからテストをする。
結局のところ本音はこれ。
なんのために、なにをすべきか、という思考が抜けてる。
思考停止した結果なのである。
なんで発狂してんだ?
検収印押してもらえなかった思い出でも出てきたの?
受け入れ試験は、委託に限らんよ。
社内でも、誰かが他の誰かの物を使うなら、やるべきもんだ。
そりゃ、違うスタンスで自分が作ったものを自分が使うときにすら言える。
ライブラリ作る方と使う方は立ち位置が違うんだから。
ライブラリ作る側が使う側のテストを行ったり、使う側が作る側のテストを行うなんて、頭おかしいとしか思えんな。
どっちの立場でも相手方に失礼というか「お前のやるべきことはこれだけど、やっといた」なんて調子乗った発言に近い。
> 受け入れ試験は、委託に限らんよ。
> 社内でも、誰かが他の誰かの物を使うなら、やるべきもんだ。
だから、他人が仕様を作ったライブラリの受け入れテストを
お前がどうやって書くのかって聞いてるんだが?
それに答えられないってことが全てを表してるんだが?
社畜ってこんなもんだよ
何一つ自分で判断できずに悪しき習慣も全て受け入れ守っていく
そうやって生きてる生き物なんだから仕方ない
ライブラリに、タスクランナー、Grunt 用のテストも付いてるだろ
ライブラリを修正したら、自動的に実行される
>>706
委託して開発してもらうライブラリの場合は
自社で仕様と受け入れテストを書いてそれが通ることを確認する。
これが何も考えてない馬鹿に手によっていつの間にか
「ライブラリは受け入れテストを行う」という部分だけが残って
悪しき習慣に成り果ててしまったという例だろうな
>>707
そう。有名なライブラリにはテストがついていて
開発元によってテストされているのだから、
受け入れテストなんてものは不要。
そもそも仕様を作ってないやつが、どうやって受け入れテストを書くというのか
その問に答えてない ライブラリの作者が、TDD などで、テスト仕様書を作っている
そもそも、作者以外がライブラリのソースコードを読んで、
テストを作るのは無料だろ
車輪の再発明
>テストを作るのは無料だろ
テストを作るのは無理だろ
>>705
どうやって書くのかって、ブラックボックスで渡しうる値のパターンのテスト作って、
次はホワイトボックスでカバレッジ満たすようテスト作って、
次はシナリオやって、やるプロジェクトならパラノイアテストだろ。
今パラノイアテストって言っちゃいかんのかな。
>>709
車輪の再発明って、全く以て悪い言葉みたいに捉えてるが、
車の車輪とトレーラーの車輪と、車の車輪を運ぶ台車の車輪はそれぞれ違うものなんだから、再発明して当然だと思うが。
タイヤで言うなら車のタイヤを出荷するタイヤメーカーのタイヤの試作試験と量産試験、出荷前検品、車メーカーがタイヤ買って自社の特定の車に装備するためのタイヤの評価試験、
試作した車のタイヤの試験、量産するときの購買品の抜き取り試験はそれぞれ違うものじゃん。全部タイヤの試験だけど。
どれがどう厳しいとかはケースバイケースだろうけど。
そーゆー話。 >>711
ブラックボックスで渡しうる値のパターンのテスト作って
それがどうだったらOKってやってるんだ?
何が正解なのか、それはお前にはわからんだろ
仕様は作ったものじゃないぞ?
テストがNGだったらお前のテストが間違いってだけだろ? こいつテストをしている気分を味わってるだけなんだよなw
目的がない。
なんで開発会社がやるべきテストで開発会社が実際に行っている物を
また自分で作ってるんだろうか?w
> そーゆー話。
そーゆー話とごっちゃにしてるわけねw
タイヤの話は全く的はずれなのは、
タイヤというのは規格というものがあって、
いろんなメーカーがあり、互換性があって交換可能なものだから
それに加えて、同じものであっても個体差があるから。
ソフトウェアには当てはまらない
有名ライブラリを導入する場合のテストには全く当てはまっていない。
意味のないテストやった気分を味合うのが目的となってるw
新人「受け入れテストってなんで必要なんですか?」
上司「検品と一緒よ。買った商品が正しく動くか一つづつ調べるんだ」
こんなアホな会話をしたことが容易に想像できる。
>>712
どうだったら、って何だ?
仕様通りなら、だよ。
ブラックボックステストってしらんのかな。
目的は簡単だよ。
人が死なんように物作ってるだけ。 >>714
違うよ。
有名ライブラリだろうが無名ライブラリだろうが、
信用ならないものを信用に足るものにするためには、
最終的に信用する側に、信用の方法が委ねられるって事。
その信用の方法が、お前は「相手方の言ってるテストが正しい、有名だから」で、
俺は「自分たちが確かめていないことは、相手が何を言おうが『確かめていないこと』以上の何者でもない」って言ってるの。 >>715
> 仕様通りなら、だよ。
汎用のライブラリの話をしてるって言ってるよな?
だからお前が発注して作ってもらったライブラリじゃないって言ってるだろ
仕様を考えたのはライブラリの開発者だよ。
お前はその仕様を知らんだろ。
お前が仕様を決めるわけじゃないのに、
何がどうなったらOKなんだって聞いてるんだが? >>716
> 俺は「自分たちが確かめていないことは、相手が何を言おうが『確かめていないこと』以上の何者でもない」って言ってるの。
だから相手が仕様を考えて、相手が開発して、相手がテストをして
そのテスト内容をお前が見れる状態で、
お前は何を確かめるのか?って聞いてるんだが? >>718
汎用ライブラリに仕様書、API定義書は無いの?
その仕様と、挙動が合ってるかを確かめんじゃん。
それ以外何と調べんの?
俺が決めるわけじゃないが、俺が確認する。そんだけ。
>>719
itmediaドヤ顔で貼られましても。
http://www.weblio.jp/content/受け入れテスト
の狭義側の方が近い。
>>720
テスト内容と結果が、本当に実施されたものか、再現ができるか、
テスト内容に不足が無いか、網羅度が閾値超えてるかとか、いくらでもあるかと。 目的がすり替わってるんだよなw
自分で確かめることが目的になってる
本来は正しく動くことを確かめればいいだけで
実際に使ってライブラリではなくて自分が開発した
システムが正しく動くことテストすれば、
ライブラリにも問題がないことは証明できる。
だけどライブラリのテストを自分でやることが目的となってしまってる。
ライブラリが用意したテストを読んで確かめることすらしない。
もはやライブラリが正しく動くかどうかにも興味はないのだろう。
ただ単に自分で確かめることが目的となってる。
Windowsやブラウザも確かめてないよね?w
>>721
> 汎用ライブラリに仕様書、API定義書は無いの?
> その仕様と、挙動が合ってるかを確かめんじゃん。
それは受け入れテストではない。
そしてAPIの定義どおりの動きであるかはライブラリの開発会社がテストしている。
どういうテストをやったかは公開されているし
そのテスト結果もわかる。自分でそのテストを実行することもできる。
それ(適切なテストがあるか)を確かめればいいだけ >>721
> 受け入れテストとは、納品されたシステムが、要求した機能や性能などを備えているかどうかを確認するテストのことである。
汎用のライブラリを使うということは「納品されたシステム(ライブラリ)」にはあたらない。
誰もお前の会社に納品してないのだから。
やっぱり前提からして成り立っていない >>722
できない。
システムが動いてるからライブラリは正しいに違いない、とか一番悲惨なやつになるぞ。
ライブラリで負の数になるバグがありました、サブシステムで負の数になるバグがありました、
システムは積を取っていました、だからテスト通過しました。
ライブラリ改修されました。誰も疑ってないのでパッチ当てました。データ不整合起こりました、データ保証できません、
バックアップからの書き戻ししかできません、賠償問題です。
そんなもん、動いてるって保証になるかバカ。
正しく動くことに興味があるから、テストすんだろ。
正しく動いてるから、正しくサブシステムが動くんだろ。
正しくサブシステムが動くから正しくシステムが動くんだろ。
木を見て森を見ないやつもバカだが、森を見て木を見ないやつはもっとバカだよ。 >>723
おまえズレてるわ。
「自分でそのテストを実行することも出来る」
→自分でやるんじゃん
「適切なテストがあるか確認する」
→無かったらどーすんの?
>>724
当たるわ。 >>721
> テスト内容と結果が、本当に実施されたものか、再現ができるか、
だからよく知られたライブラリには、テストがあって
それが本当に実施されるかっていうか・・・
お前、本当に知らんだろ?
ライブラリがやったテストっていうのは公開されていて
誰でも(お前でも)それを実行できるんだって。
テストは簡単に実行できるようになってるんだから、それを実行するだけだろ。
本当に実施されたか疑わしい、本当に再現できるか疑わしい
とか、お前テストの考え方自体がずれてるんだよ。
用意されたテストを実行すればいいだけなの
簡単な作業。
> テスト内容に不足が無いか、網羅度が閾値超えてるかとか、いくらでもあるかと。
テスト内容をレビューすれば? カバレッジもすぐに出せるだろ(ものによっては対応してるしCIで見れるかもな) >>725
> システムが動いてるからライブラリは正しいに違いない、とか一番悲惨なやつになるぞ。
> ライブラリで負の数になるバグがありました、サブシステムで負の数になるバグがありました、
> システムは積を取っていました、だからテスト通過しました。
え? バグでバグが打ち消し合って、正しい動きになるなら、
それは正しいんじゃね?w
お前が書いた、お前のシステムのテストに問題(不備)があるって言うなら
お前のテストの問題だろうさ。 >>727
用意されたテストが正当かどうか検証するなら、二度手間じゃん?
yumの署名を信用するが如く無防備になるか、もしくはちゃんと見るかみたいなそんな話じゃなくて、
そこまで馬鹿ならもう良いよ。 >>725
> ライブラリ改修されました。誰も疑ってないのでパッチ当てました。データ不整合起こりました、データ保証できません、
> バックアップからの書き戻ししかできません、賠償問題です。
それはライブラリを入れ替えた後に、
お前の、おーまーえーのシステムのテストを行ってないのが問題だねw
なんでお前、ライブラリを改修した後に、
お前の、おーまーえーのシステムのテストを再実行しないの?w
あれ? でもライブラリのテストはしてるんだろう?
その時にライブラリの挙動勝ちが言えば気づくはずだろう?
本当はしてないから、そういう問題が発生したのかな?(ニヤニヤ ふぅ、自分が作ったシステムのテストをしないやつが、
ライブラリを入れ替えたら、挙動が変わって問題が発生した。
ライブラリの挙動が変わらないことをテストしないといけない
自分の作ったシステムは修正せずに、ライブラリの方を変えよう!
っていう考えだったかw
いろいろ見えてきたね。上の方で言っていた、
なんで汎用のライブラリをフォークして使って、
改造しすぎて今では独自のライブラリみたいになってしまったかの答もこれだよ。
・ストーリー
バージョンが古い時にライブラリの導入することにした。
検品(?)が必要だ。ライブラリ開発者が行ってるテストは信用できない。
だから自分たちでライブラリAPIの仕様書・ドキュメントを元に自分たちでテストを書いた。
ライブラリのバージョンが上がった。導入したら自分たちが書いたテストが通らなかった。
それはそうだろう。古いバージョンへのテストだからだ。
テストの方をなおす? そんなことはやってはいけないことだ
それにどんだけ自分たちでテストを書く作業に時間を書けたと思っているんだ!?
ライブラリのバージョンアップで動きが変わることがけしからんことなんだ!
自分たちでそれを元に戻すパッチを作るぞ!
ライブラリがさらにバージョンアップした。これはもう手におえん
古いバージョンをフォークして使うぞ!
ライブラリのバージョンが更に上がって使いやすくなった。
だが、いつまでたっても古いテストをそのまま使うために
古いバージョンをフォークして独自に修正したライブラリを使い続けました。
ブラウザは代わります。そのたびに自分たちで修正を加えた結果
元とは全く違う独自のライブラリになりました。
>>731
違うよ。
ライブラリは正当だと証明されてるなら、システムテストを行うのは、ライブラリを使用したシステムを作成したときだよ。
ライブラリが信用に足りてるからテストはそいつが書いたそいつを信用したテストで済ませるんだろ?
ライブラリが正当だと証明されていないなら、毎度やるよ。
だから、毎度やってるんじゃん。
「おーまーえーの」とか馬鹿なこと言ってる割に、仮定の話、何を仮定しているか、何が問題だから大変なことになるかがわかってないのな。
半分だけ解決した気になってめでたいやつだ。
>>732
違う、それは方法論として正しいことも間違ってることもある。
当たり前だけど、間違ってる方を治す。両方間違ってるなら、両方治す。
最初はパッチ送っとったよ。 >>733
テストの方直すに決まってんじゃん。当たり前だけど、正しいと証明するためにテストしとる。
どんだけ時間と金をかけても、やる。
ライブラリのバージョンアップの挙動変更は良いんだよ。
不具合修正のパッチが遅すぎた。マージされたものもあったけどね。
なんか、一体何屋を想像してんだろう。 言っとくけど>>733は「ライブラリ」の話だからな。
そのライブラリを使った自分たちが開発ししている
システムのテストの話にまでは踏み込めていない。
・本来あるべきストーリー
ライブラリを導入した。利用者も多くテストもしっかり書いてあるようだ。
そのライブラリを導入してシステムを作った
もちろん自分たちのシステムに対するテストは書いてある。
(はい、もう自分たちが開発しているテストの話にまで来ましたw)
ライブラリのバージョンが上がった。
でも安心。なぜなら自分たちのシステムに対するテストがしっかり書いてあるから。
中身がどうなってるかは関係ない。システムが正しく動くことを示せれば問題ない。
ライブラリのバージョンが上がった。
自分たちが書いた自分たちが開発しているシステムのテストが失敗した。
どうやらライブラリの挙動が僅かに変わったようだ。
テストは修正する必要はない。自分たちが開発しているシステムを
テストが通るように修正しよう。問題なく最新のライブラリに更新できた。
ライブラリのバージョンが更に上がって使いやすくなった。
ライブラリに対するテストは書いていない。どんなにライブラリが改良されても。修正するべきテストは何もない。
使いやすくなったライブラリに合わせて、自分たちが開発しているシステムを
シンプルに可読性が高く修正しよう。中身が変わっても関係ない。
自分たちが書いた自分たちが開発したシステムに対するテストに通ればいいだけだ。 >>734
あれあれ? 汎用ライブラリの受け入れテストを
汎用ライブラリのAPI仕様を見て、自分たちで再実装して
テストをするって話はもう辞めることにしたの?w 膨大な開発費用がかかるから、ライブラリの再発明はしない
John Resig, Jeremy Ashkenas, TJ Holowaychuk とかを信用しないの?
彼らのライブラリは、漏れらの100倍以上、高品質だと思うがw
高品質かどうかが問題じゃないんだろう?
自分でテストしたことが問題。
目的は自分でテストすることにある
動くかどうかではない
じぶんで、がんばることがーじゅうようなんだー
CSSのtypoを見つけるので、ものすごい時間かかった。
<div style=“position: relative; …”>
って書くところを
position -> positon
って誤って、JavaScriptうまく動かん!
って事になった。
typoを発見する良いtoolとか無いっすかねぇ?
普通にatomやvisual studio codeなどの
まともなテキストエディタを使えば良い
>>743
atom vs VS Code
軽いのはドッち? このバカってブラウザの自体の受け入れテストとかやるんだろうか?
アプデがくるたびにそれを繰り返すんだろうか?
OSも 笑
こういうバカ(な会社)が日本のITをここまで遅らせて世界から落ちこぼれてるのにな
>>742
ブラウザでF12押して確認とかせんの? >>746
option + command + I@safari
でdeveloper tool起動したけど、エラー検出しないんだよねぇ。
chromeでも同じ。
IEだとF12らしいけど、一味違うのか? atom or VS Codeをinstallしようかどうか?思案中。
JavaScript + CSS + HTMLってエラー検出難しいってのに
気がついた今日この頃。
ちなみに今の環境は、macOS Sierra + Terminal.App + Vim + Safari
or Chrome
atom + linter + html linter + css linterってのがあるねぇ。
Vim plug-inにはsyntactica.vimだかなんだか?splell自信無しがある。
atomはファイルのopen/closeが遅いって評判。
けど、VS Codeはopen/close問題ないらしい。
>>747
これくらいの情報あれば分かるんじゃない?
>>753
コレコレ!
ChromeのDeveloper toolなのかな?
potiton, heighとかのtypoをちゃんと検出するか試してみる。 DevTools (Chrome 59)
良い感じ。
Dark Theme(黒い感じの画面)ってのもあって良い感じ。
ありゃ、safariでもtypoを検出してくれるのね。知らんかった。
最近は、イライラした時に、食い物で解消しない様にしてる。
太るとヤバいからね。
HTMLタグに直接CSSを埋め込んだ場合だとlinterじゃstyle属性の中身まではチェックしてくれないよね?
>>758
今まで、Swift書いてたのでXcode使ってたのだ。
小ちゃいコード片はVim+Quickrun.vimで実行。
JavaScript, CSS, HTMLはほぼ初心者なのだ。
秀丸でFortranを書いて居た事もあるけど、ごく一時期だな。 >>739
仮に彼らが悪意あるコードを仕込んでいたら? >>738
それもしてたけど、ならもうライブラリこれForkしちゃえばいいじゃん、誰だよオープンソースなら品質がとか言ったやつ、ってなったんじゃん。
お前ホントに話きいてねえな。
>>740
自分でテストした事じゃねえよ。
自分たちが信頼性を担保できるか、だよ。
担保できるなら、そりゃそれでいいよ。
>>745
ものによってはやるよ。特にイントラは。
IEのバージョンはまあほっといてもインフラ屋が整えるから、ものによってはFFのLTSやら、Chroniumの自家ビルド撒く。
>>760
最下行懐かしさすら感じた。
VSCodeはホントに良いな。ちょっと前はBrackets使ってたけど、早々乗り換えた。
売ってるか、VSの公式オプションとして勝手に入ってくりゃ導入しやすいのにな。 >>761
悪意あるコードである場合はほとんど無いが、悪意あるコードを実行するためのとっかかりになる事はあったな。 >>759
タグのstyle属性にCSSを埋め込むのは、良くやるけどなぁ。
チョイとhtmlを書くには、最初はstyle属性使うゾォ。 JavaScriptのお勧めの入門書ってどんな本になりますか?
よかったら教えて頂けますでしょうか?
MDNは入門には向かない
弁護士の入門に六法全書を勧めるようなもの
読み深めるのは入門が終わってから
>>765
HTML/CSS/javascript辞典でも買ったら良いんでね?初心者なら結構使えるかと。
javascript習いたいと言う事はやりたいことあるはずだから、その中からやりたいもの選んでコピりまくれ。 >>767
お前ちゃんと見て言え。入門編はハロワからだ。
ずぶの初心者なんてピリオドとコンマ/大文字と小文字間違えてハマったりするんだから、
変に写経する必要もなく、コピペで動くMDNが一番いいよ。
>>765
ちなみに対話形式の入門サイトがよければuhyohyoがまあまあ。
http://uhyohyo.net/javascript/
ここはある程度マトモなやつが書いている感がある。
JavaScriptに関しては検索すればいくらでも引っかかるが、
馬鹿が間抜けな方法でドヤ顔しているサイトが多いので注意しろ。
(MDNはこれがほぼないからいい。理由は多分、執筆者が複数だから)
つっても初心者が見分けることは不可能なので、
特にステマ臭感じなければ言われた事を信じるしかないね。
つか他言語って日経とかが先導して
一線か退きたての連中に執筆してもらっている記事があるけど、
JavaScriptってないよな?MDNに集約してあるからか?
(あれらは肩書き付きで書いているから初心者でも信頼できるか判定できる)
韓国人死ね 流動的に言語仕様が変化していく中
今おすすめのjs入門って言われるとなかなか難しそうだな。
今から習うならES2015を中心に学んだほうが、余計なゴミを学習する手間を減らせるかもね。
オレ個人としては以下の本がちょうどよかった。
プロになるためのJavaScript入門 ~node.js、Backbone.js、HTML5、jQuery-Mobile (Software Design plus)
入門書じゃないけど
HTML5 Web標準API バイブルは一回は読んどいた方がいいと思った
>>762
> 自分たちが信頼性を担保できるか、だよ。
> 担保できるなら、そりゃそれでいいよ。
あー、わかったわかった。
お前、何の信頼性を担保するかが分かってないんだ。
使ってるライブラリの信頼性を担保するのは必須じゃないんだよ。
お前が開発しているシステムの信頼性を担保すればいい。
お前が開発しているシステムが100%完璧に動く。
それをテストして確かめればいい。
そうすればライブラリも問題ないことが証明できる。
嘘だと思うか? お前が開発しているシステムはOSの上で動くだろう?
つまりOSの機能を使っているわけだ。だけどOSのテストはしていない
OSの機能を使ってるのにOSのテストはしていない。それなのに信頼性を担保しているだろう?
それができるんだからライブラリのテストをしなくても、お前が開発している
システムのテストをすればお前が開発しているシステムの信頼性を担保できるというわけだ
お前が本当にするべきはライブラリの信頼性の担保じゃない。
お前が開発しているシステムの信頼の担保だ。
無駄なことしていたね。 >>765-772
はじめてのJavaScript、掌田津耶乃、2013
オブジェクト指向JavaScript、2012, Stoyan Stefanov
この本は、図書館で読んだけど、内容は忘れた。
Stefanov の本は、わかりやすい。
とても、クールな外人 >>762が作ってる様なシステムって例えばIEのバージョン変えたらアウトみたいなそういうのなんだろうな
グローバルなら不具合があれば都度対応するもんだけど
イントラで納入したらそれきり変更しないみたいな >>776
多分効率ではなくて長く働いたら
残業したら偉いみたいな文化の会社なんだと思う
悪い意味で社畜なんだろう。 お礼が遅くなってしまいましたが、
答えて頂いた方、ありがとうございました。
プログラミングのプの字も知らないならまずはScratchみたいな疑似言語で
ループや配列あたりまで知っておくと導入がスムーズ
>>771
> プロになるためのJavaScript入門 ~node.js、Backbone.js、HTML5、jQuery-Mobile (Software Design plus)
ギャグなの? jQuery Mobileって二年くらい前から更新止まってなかったっけ?
>>780
まぁ2012の本だから、ライブラリ周りな話は古いのは認めるけど
jsの入門部分は読みやすくまとまっていておすすめ。Backbone.jsとかは俺も読み飛ばした。 >>766
Mozila Developer’s Networkの略かな?MDNは。
良さそうだね。
でも、俺は本で読みたいな。
俺が良かったと思う本は、O’raillyの開眼JavaScript。
薄くて、全容を捉えるのに丁度良い。枝葉末節に触れてないのがGood.
ただし、ES3の説明だから、最新ES2015にCatch Upするには、
別の本が必要だけど、基本はES3だからなぁ。 >>779
韓国人みたいな馬鹿ならそうなんだろう
韓国人死ね
マジレスするとそれは勉強のための勉強になってるからNG。
「JavaScript?ならそれはドキュメントを大量に読むことになるから
日本語と英語を勉強した方がいいね」と言っているに等しい。
そもそもループや配列を10分で理解できないような奴がプログラミングなんてやるもんじゃない。
安倍首相:「小学生にもプログラミングを」←おい止めろドアホ、でしかなかったろ。
プログラミングを知らない奴が頓珍漢なことを言うのは常で、
今ならAIについての過大な期待/過小な評価がそれだ。
CNNやMLを知っている奴からすると、いやそれはねーよ、が多すぎるだろ。
Scratchとかはwikiにもそのまま書いてあるが、モチベーションを維持するためのものだ。
JavaScriptに関しては初段階から高位記述が使えるから必要ない。
smalltalkベースでいいのかは俺には判定不能だが、それが役に立つとしたら、
smalltalkのリスト=JavaScriptのリストと理解出来る=抽象思考ができる
わけだから、そういう奴は最初から配列やループで引っかかることはない。
これがその手の教育用言語がイマイチ流行らない理由だ。
使うべき対象がせいぜい小中学生であって、
その段階なら国語/英語/数学をやったほうがよく、
抽象思考が出来る段階(高校生より上)なら実用言語の方がエコシステムが揃っていて有利だからだ。 勉強のための勉強はすべきだよ
もし今すぐjQuery使って何かをしたいというのがあるならjQueryから始めればいい
プログラミング自体に興味があるなら、
実用言語は学習環境(それこそモチベーションの維持も含む)としては向かない
>>786
朝鮮人らしいすり替え乙
韓国人死ね
俺はjQueryの学習を否定してない。それは明らかに実用環境だろ。
お前はどういう論理で反論しているつもりになっているんだ?
お前や韓国人みたいな馬鹿にも分かるようにもう一度言うと、
・Scratchの経験が生きるような奴は、最初からJavaScriptでも何の苦労もしない。
・Scratchじゃないと続かない奴がプログラミングを始めるのは時期尚早だ。
配列は数列やベクトルを習うと自然に理解できる。ゆとり以前では高2の範囲だった。
そこで引っかかるようなら、国語/英語/数学をきっちりやってからでいい、という意見だ。
LogoとかPascalとかも昔からある教育用言語だけど、使っている奴なんて皆無だろ。
意味ねーんだよマジで。
もちろんどっちが妥当かを判断するのは当人でいい。
お前との議論は空回りするだろうし、意味もない。 また質問をさせて頂きます。
ideoneの言語選択欄を見るとJavaScriptは2つあるんですが、
これはどう使い分ければよいのでしょうか?
私は記述ブラウザはgooglechromeを使っています。
>>788
SpiderMonkey(Firefox等で使われるJavaScriptエンジン)と、
Rhino(主に組み込み用でブラウザでは使われないJavaScriptエンジン)ですね。
ChromeのJavaScriptエンジンはV8で、これらとはまた違うものを使っています。
ではV8はないし、SpiderMonkeyの方を使えばいいのかというと、答えはNOです。
ideoneのはサーバサイドで実行されるので、ブラウザで実行されるクライアントサイドのものとは別物です。
なのでhtmlを作ってブラウザで試して下さい。
最低限<script></script>を書いて、この中にJavaScriptのコードを書けば動きます。
<script>
alert("Hello\nWorld");
</script> 「関数を実行している場所」ってどういう判断をすればいいの?
俺の中では、「何らかの文字列やドットでチェーンされたものの後に () 」
がついていれば、関数やメソッドがそこで呼ばれている。
という判断をしているけど、
コードをステップ実行しているとそれじゃ説明の付かないソースの
ジャンプの仕方がある。
もちろん for や ifの後の () は「関数実行の()」ではないし、
関数定義の 「funcition の後の ()」も関数実行ではない。
逆に onClick="callback" みたいに
「()がつかなくてもよくわからないけど関数が呼ばれる」みたいなのも
あるかもしれないし、そこら辺がよくわからない。
ステップ実行してて、思いもしたかったソースに急にジャンプすると
何が起こったのかわからなくなってしまう。
Call Stackの状態も関数名が1つずつ積まれたり降ろされたりするのではなくて
急激にスタックが変化しているから何が起こったのか見失ってしまう。
いつ実行されるのか不明といえば、非同期処理が思いつくが
非同期処理?のところでの動きがよくわからないのかな?
無名関数があるとよくわからなくなるっぽい。
コールスタックを見ると(anonymous) とか r l n i みたいな一文字だけの
関数名表示のところでわけがわからなくなる。
これらのコールスタック上の一文字関数名はソース上に
function として定義されている関数名と一致していないから
何なのかがよくわからない。
>>790
onClick=みたいなのは、実行してねという「登録」だから
それがいつ実行されるかはonClick次第としか言えない
関数も参照だから、あちこち渡っていく過程で別の名前になることもあるし、
内部的な直接見えない部分に紐付けされて呼ばれる場合もある
( )が付かなくともゲッターセッターは関数の呼び出し
もし圧縮されたJSをデバッグしたいとかなら
デバッガと併用して、整形したソースを目で見てそこが何かを理解する作業も必要
ライブラリを無視したいのであればデバッガの設定でスキップ可能 >>789
ideoneについて質問をした者です。
お礼が遅くなってすいません。
詳しくありがとうございました。 >>793
なるほど、関数って「定義」と「実行」だけで成り立っているかと思ったら
その間に「登録」が挟まれるものでもあるってことかなぁ
整形は {} で行ってるよ。
あまりコアすぎる処理はスタックトレースに乗らないようにBlaxboxing
した方がいいんだね。
ところで、「レスポンス」ってファイルなの?文字列なの?
オブジェクト的なものなの? >>789
それ毎回思うんだけど、お前らのalert信仰って何なん?
俺がJavaScriptを始めたとき、大概のサイトはalertを使っていて、
「これでデバッグかよきっついなー」と思っていた時期があって、
その後、console.logあるのかよorzだった。
だから馬鹿が書いたオレオレJavaScript入門ではなくMDNを読め、
と言いたい所だが、MDNもハロワはalertだときてる。
これって何なん?ブラウザで動くことを誇示したいのか?
どう考えてもconsole.logの方が使えるし最初に紹介されるべきなんだが。
現実的にalertなんて使うことないだろ?
韓国人死ね >>796
デバッグ用途だからな。
alertの方が文字数が少ない
それに画面上に表示されてくれる。
デバッグ用だからすぐに見たい時にすぐに見れる console.logは同時に実行する量が多いと拾いきれなかったと思うが
>>796
おまえは本当にばかなんだな
スマホ実機で確認したりと、確認方法は様々だろ
スマホにコンソールあるのか?ん あとな、アラートはそこで動作がいったん停止するんだよ
そもそもコンソールとは別物なの
それによる使い分けがあるんだよ
わかったかい?
最初にconsoleとかいわゆるdevtoolとかを説明するのが
めんどくさかったとかw
スマホのブラウザにコンソールがないからかもしれない
というかMDNでconsole.logのページとか見ると「非標準」の表示がしてある
hello worldをスマホで始めるやつは
なかなかたいしたタマじゃないかとも思うw
お前ら食いつきすぎで逆にびびるわ。
韓国人死ね
>>798
いやそれはない。
大量に吐いたらまとめて捨てられるだけで、ランダムに落ちることはない。
とはいえこの用途にはどのみちalertは使えないだろ。
>>801
MDNの入門ページは開発ツールの後になぜかalertなんだな。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Introduction
そして次ページ以降は全部console.logで二度とalertは使われないというちぐはぐさ。
>>その他
そこらへんがお前らのおかしい所でな、
console.logという「インタフェースが揃っていること」が重要であって、
その中身はどうでもいい、というのがオブジェクト指向なんだが。
なければ作ればいいだけだろ。
適当なdivをpositoin:fixedにしてinnerHTML += XXXX;で
オレオレconsole.logは簡単に作れる。
そうすればモバイルだからalertじゃないと駄目とか、関係なくなるだろ。
最悪console.logをalertに直結してしまってもいい。
いずれにしてもプラットフォーム依存の部分が見える状態でコーディングするのは得策ではない。
alertなんて同期UIでモーダルだし、通過判定くらいにしか使えない。
それならappendChildでいちいちテキストノード付けてもいいし。 プラットフォームによって切り分けるというのは、
お前らが嫌っている生Cの手続型プログラミングであって、
究極の実行効率を求める手段であり、JavaScript的ではないんだな。
生産性ガーなら躊躇なくconsole.logにインタフェース統一して、必要ならオレオレ実装だろ。
不要なときは空関数に接続しておけばソースを変更する必要もないし。
ただ、この辺のちぐはぐさはMDN書いている奴もそうで、
標準じゃないと言うのなら、chromeみたいに、
・型によって色が変わる
・オブジェクトはクリックすれば展開される
仕様のオレオレ実装console.logを「ポリフィル」と称してMDNに載せててもおかしくないわけでさ。
実際これがあれば助かる奴もそこそこいるんじゃないかな?
お前らが実機テストを重視しているのであれば。
なんつーか、この手の「お前ら意識高いだけで中身ねーよな」ってのは
JavaScript界隈では非常によく見かける。
お前らだけではなくMDNもだというのが終わっているのだが、
そのせいもあってお前らが間抜けであることに気づかないという悪循環だ。
何のために何をやっているのか考えてなくて、
○○をやりさえすればいいと暗記しているからこうなる。
そこはマジで、考える癖をつけたほうがいいと思うぞ。
韓国人死ね
必死に考えたごまかしがそれか?ん?
おまえは本当にあたまがわるいんだなぁ
アラートデバッグはスマホ実機での簡易確認に便利
アラートは動作をそこで一時停止させて各種確認が可能
要するにconsole.logとは使い分けなんだよ
バカがconsole.logが上位互換とかおもって↓あんなこと書いちゃってたけどさ
「 現実的にalertなんて使うことないだろ? 」
これ、どう落とし前つけんの?ん?
alertは視覚的にわかりやすい
開発ツールはブラウザやOSによって操作がちがい、スマホのように存在しない環境もある。開発者ツールの使い方をやる前のサンプルにはalertのほうが説明が少なくて楽
そして、同等に近いものは権限的にポリフィルでは書けない
・DOM構築前でも使える
・クロスオリジンのフレームでも出力可能
・Webサイト上から読み取られない
・DOM操作に影響しない
中途半端に再現したものを使うのは特に入門編では混乱のもとなので良くない。alertにつなぐのはライブラリとか拡張機能による出力があるのでどう考えても変
また、今後セキュリティの問題とかが出ればconsole.logが書き換えできなくなる可能性を否定できない。
大昔は間違って連続alert出しちまったら大事だったが
今は普通にそのタブだけ閉じれるからな
まあアラートでも何でもええと思うよ
別にalertとconsole.logは包括関係でもなんでもない
全く別の機能だし
説明が面倒だったとか、スマホ考慮したとか、全部正解なんですけど、
やっぱ視覚的にわかりやすいってところが一番ですかね。
console.logは地味で初心者の反応が悪いんですよ。
興味を持ってもらうにはalertのほうが効果的だと思います。
プログラムに手加えるのめんどいしブレークポイントで済ませちゃうことが多いかも
SPAの場合に
urlが実際のコンテンツ配信のエンドポイントになっているのかそれともjsによる擬似的なurl?
か区別つかないよね。
これってjsから検出する方法ありますかね?
locationオブジェクトを参照する範囲では区別つかないんですが
console 系は、本番のソースコード中に放置していると、
メモリリークするので、ツールで消すべし
>>812
ルーターに指定のURIが登録されてるかどうかチェックできたりしない?
フレームワークによるかもしれんけど performance.getEntries()[0].name == location
で分かる
>>807
姦流プログラミングではalertを使ってデバッグをする、まで読んだ
つかそれマジで言ってるんだろうし、かなりやばいぞお前
韓国人死ね
>>811
それは正解。
ハロワってのはCに対するリスペクトを示したものなのだが、
お前らもMDN執筆者もCを知らず、結果的に面従腹背になってる。
あれは「最も基本的な出力」としてprintfを使っているのであって、
それはprintfデバッグという最も汎用的なデバッグ方法に繋がっている。
標準がどうのこうの言い出したらCの方が酷くて、
画面なんてつながっていないのも多く、シリアルに出せればマシな方だ。
それでも「最も基本的な出力」としてのprintfというインタフェースは決まっていて、
とりあえずまずはそこを目指す、ということになっている。
だから最初のハロワはconsole.logでないと話にならず、
お前らは駄目な教科書を使っているから無駄なところで引っかかり上達してない。
blind leading the blindを地で行ってる。
お前らは被害者でもあるが、加害者にもなっている。
ただまあ、JavaScript界隈ではこれもよく見かける光景ではあるのだが。
ちなみにMDNのこちらのガイドはハロワはDOMでやっている。
https://developer.mozilla.org/ja/docs/Learn/Getting_started_with_the_web/JavaScript_basics
俺はこれはありだと思うよ。オレオレ実装console.logにつながるし。
見た目派手なのが欲しいのならこっちで行くべきだろう。 つかマジでお前らもうちょっと自粛しろ。馬鹿が馬鹿を再生産してる。ソースはお前ら。
「alertはデバッグに使える(キリッ」ではなくて、
「alertという効率が悪いデバッグ方法を使わざるを得ない事態に追い込まれている」
事自体が駄目なんだよ。それはお前らが目指す生産性ガーに明確に反するだろ。
お前らはファッションで生産性ガーを言っているだけであって、お前らの実際の生産性は低いよ。
少し考えれば分かるだろ。
似たような実例は福一の時バ菅首相がヘリで放水したことだよ。
見た目は派手だが全く意味ないというのは最初から分かってた。
あの采配の酷さはいまだに言われてるだろ。
お前らはそれをやってるんだよ。それで馬鹿が再生産されていることに気づけアホ共。
韓国人死ね
「alertは効率が悪いデバッグ方法である」が
そもそも間違いなので話にならない
ん?揚げ足取り乙。が、まあ、言い直しておこう。
・alertが一番マシなデバッグ方法だという状況でデバッグをする事態に追い込まれている
これでいいか?
俺個人はデバッグでalertを使うこと自体は否定しない。それが最適であれば使えばいい。
ただな、そういう状況自体がありえないように努力するべきであって、
console.logとalertを使い分けしてデバッグする(キリッってのは間違った方向の努力だ。
お前らはここらへんがまるで分かってない。関数型()な奴も割りとそうなんだけどさ。
向いている方向がまるであさってと言うか。
理由は多分、大規模なコードを扱ったことがないのと、マトモにデバッグしたことがないからだ。
だから俺の言い分が正しいと思う奴がいたら、上記を試してみろ。多分、上達する。
韓国人死ね
XSSの例示とかのサンプルはalertが基本になってるな
試行錯誤する際にも成立が視覚的にわかりやすいし、console.logと違って押し流されたり何らかのページ移動なんかで消えることもない
>>817
必死に考えたごまかしがそれか?ん?
おまえは本当にあたまがわるいんだなぁ
アラートデバッグはスマホ実機での簡易確認に便利
アラートは動作をそこで一時停止させて各種確認が可能
要するにconsole.logとは使い分けなんだよ
バカがconsole.logが上位互換とかおもって↓あんなこと書いちゃってたけどさ
「 現実的にalertなんて使うことないだろ? 」
これ、どう落とし前つけんの?ん? すみません、HTTPリクエストやレスポンスって
文字列なのかファイルなのかオブジェクトなのかよくわからなくなりました
プログラム上ではオブジェクト化されているけど
chrome devtoolではレスポンスはファイルとして認識されている。
(ローカルストレージにはファイルシステムとしては現れない)
「ファイル」でいいのかなあ、バイナリ画像もあるわけだし、
それを各言語で「オブジェクト化」しているの?
>>820
> ・alertが一番マシなデバッグ方法だという状況でデバッグをする事態に追い込まれている
全然理解してないじゃないかw
場合によってconsole.logを使ったほうが良いかalertを使ったほうが良いかは変わるんだよ。
ほんと融通がきかないやつだな。
なんでも同じ方法でやろうとすんなや alertはデバッグのためのものじゃない
デバッグという言葉を知って、意識する段階になったのならやっぱりブレークポイント置いたりすべき
ただ入門段階の練習、ましてや試し実行に『デバッグ』もクソもない
別に一番最初からデバッガを使っていく必要もない
その頃は取っ付き易いalert確認でもいいということ
Javascript初心者です。以下のドキュメントを参考に、zaifのAPIからビットコインの価格を取得するだけのプログラムを作ったのですが、実行しても何も表示されず困っております
どこが間違っているのかご教授願えればと思います
ws
http://kaworu.jpn.org/javascript/ws
Zaif Exchange APIドキュメント
https://corp.zaif.jp/api-docs/
////////test.js/////////
var WebSocket = require('ws');
var wss = new WebSocket('wss://ws.zaif.jp:8888/stream?currency_pair=btc_jpy');
wss.on('connection', function(ws) {
ws.on('message', function(message) {
console.log('received: %s', message);
});
});
実行
$ node test.js >>815
>>816
ありがとうございます。
> performance.getEntries()[0].name == location
これで行けそうです。
chromeExtensionをつかって不特定多数のコンテンツの解析に使いたいんで特定のフレームワークに依存するコードは使えないんスよ。
助かります。 >>826
これ確かzaif側のwebsocketのプロトコルバージョンが古かった気がします。
提供されてるclientライブラリ使ったほうがいい気がする >>827
拡張機能ならもっとスマートな方法があったかもしれない
コンテントスクリプトならその方法が一番楽だろうが var wss = new WebSocket('wss://ws.zaif.jp:8888/stream?currency_pair=btc_jpy');
console.log(wss);
これで、戻り値・エラー番号などを、見れるのでは?
戻り値が不適切なら、new WebSocket に失敗してるから、
エラー番号・エラーメッセージで検索すれば?
エラー番号・エラーメッセージも無いのに、漏れらにわかる訳ないだろ。
F12開発者ツールを起動して、デバッグすれば?
var wssってなんだよw
するならvar wsだろ
xhrのrはRequestだからxhrでいいが
wssの最後のsはSecure→Encryptedだぞ
Secureであることの区別を表す必要が本当にあるのか?
あったとしてもスキームとしてのwssをそのまま使うのはおかしい
せめてswsとかewsだろ
質問お願いします。
画像データををCSSにBASE64形式で置いたのですが、それを使用するボックス要素に合わせてサイズ変更したいのですが
どのようにすればいいでしょうか?よろしくお願いいたします。
>>832
WebSocketSessionとか?
いずれにせよ自転車置き場の屋根にガチャガチャ言わんでも。 >>831
一週間前の書き込みすら記憶に残らない、これが韓国人クオリティ
マジで韓国人死ね 数日前回答を頂いた者です。
ideoneのJavaScriptを選択して、教えて頂いたように
<script>
alert("Hello\nWorld");
</script>
と入力してもエラーになってしまいます。
なにかアドバイスを頂けますでしょうか?
アドバイスもなにもな
JavaScriptとはどういうものかとかHTMLのこととか微塵も分かっていない状態で
そんな身の丈にあっていないサイト使おうとするからそうなる
『餡』は『餡』でもこし餡、粒あんいろいろあるように、君がやってるのは
ideoneは『白餡』を欲しているのに君は『黒餡の饅頭』を与えてるような、論外ものなんだよ
そこは最悪でも饅頭と餡の違い、そして白餡黒餡の違いが分かる人が利用するとこなんだよ
産まれて初めて餡(しかもWeb上の黒餡)を知った人が一人で使うようなところではない
JS実行サイトなら他にもたくさんあるが、君くらいならメモ帳で書いていくので十分なんだよ
>>837
>>789をちゃんと読んで
ideoneじゃなくてhtml書いてブラウザーで動かすんだよ ideone使いにくいよな。
JavaScript以外なら仕方ないのかもしれないけど、
そうでないなら使いたくないわw
何かのアルゴリズムとかECMAScripを試したいときは便利だよ
そうじゃないときは使いにくいというより、使おうと考えるべきじゃない
答えて頂いた方、ありがとうございました。
>>838
はい、bracketsで書いていこうと思います。
>>839
すいません、htmlを書くの段階から分かりません…。
少し調べてみます。
>>840
改めてありがとうございます。利用したいと思います。
>>843
そうかもね。 一番いいのはね、Webサイトい興味をもってブログとかし始めて、
もっと自由な表現がしたくてHTMLとCSSをかじり、
やがてJSにたどり着くコースなのよ
そうするとね、JSの能力が低くてもHTMLとCSSの能力でカバーして十分に
作りたい物表現できるのよ、
そこから楽しみながら徐々にJSに重点置いていくのも容易
でもね、そういう基盤が全くないというのは、無理とは言わないけど
少なくともここで文字だけで教えるのは容易では無いわ
仮に教えるとしても結局、HTMLやCSS、
もしかするともっと基礎的な知識を身に着けろという話に終始するだけだろうし
JSって確かに簡単な言語だけどね、それはJSを始めようとする人は
HTMLやCSSの知識があるということが半前提でのことなのよ
そして、ブラウザの操作やその他のリテラシーもそれと同じくらい重要
君はまず地道にそういう知識をためていかないと無理があるよ
3日でマスター HTML5 & CSS3、鳥羽薫、2013
この本で簡単に、30ほどのHTML5・CSS3の主要タグが学べる
JavaScriptもHTMLもCSSも何も知らないまま入社2日目からWebサイトの改修を先輩への質問なしでさせられて泣きそうでした
API用のURL編集ツールとか
URLの解析ツールってあるの?
クエリストリングを作るのが難易度高すぎる。
配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
最終的にはエンコードされて汚ったなくなるし。
クエリストリングを作る?
そんなもんjQueryとかに任せればいいだろ?
> 配列や関数、JSONや コールバック、トークンとか絡んでくるとわけわからん
クエリストリングとは全く関係ない話だ
>>850
なんで?
$.ajax({ type: 'GET', url: 'http://', data{}, });
このurl: にクエリストリング引数を指定しないと行けないじゃん。 var url = "http://何々"
// 全体の設定
$.ajaxSetup({
data: {format: 'xml'},
timeout: 60 * 1000
});
$.ajax( url )
.done(function( data, textStatus, jqXHR ) { 処理 })
.fail(function( jqXHR, textStatus, errorThrown ) { 処理 });
こんな感じでも、書ける いや違うんだよ。>>854-855みたいに
クエリストリングを作る必要がないって話。
フォーム使うって手もあるしJavaScriptであれば
普通にパラメータをハッシュまたは配列で渡すだけで
組み立ててくれる。 それはそうするためのライブラリを使えばの話だろ
標準APIのxhrやfetchで使えるのは
Blob,BufferSource,FormData,URLSearchParams,USVString,ReadableStream
だけ
>>857
でもそこに書いてあるのって、特定のブラウザでしか使えないから
結局Polyfillライブラリいれることになるじゃん? それに>>851の段階でjQuery使うってのは明らかだよね? Polyfillは将来的に外せるものだし、性能差もあるからjQueryと同列に語るのは違和感があるな
ところで、>>851は一例じゃなかったのか
質問者はすべてのコードでjQueryを使って、ajax以外(a要素とか)でURLを組み立てる事がないなら、そうなんだろうな jQueryの話だったのにJavaScriptであればって話を広げたのは他の誰でもなく君じゃんよ
jQueryならちゃんとjQueryであればって書いてよ
「広げた」とは何の話だ?
>>851ではjQueryのコードが出たが、元々の質問はjQueryに限定された問題ではないと思っただけだが
別解が出るだけで取り立てて騒ぎ立てる事でもあるまい ごめん、よく読んだら>>861は俺宛ではなかったな
>862は忘れてくれ... URLSerchParamsや URLコンストラクタなんてのがあるのか。
クエリストリング構築関係って統一した手法が確立されて、
どうしてもフレームワーク依存になってやり方は人によってバラバラ
な感じが否めない。
結局「xx使えばいい」以上のことはいかんとも言い難いことって結構
あるよな、特にJavaScriptはそればっかだ。
APIのURLとAPIじゃないURLの違いって何ですか?
JapaScriptのthisって今でも使われてんの?
それとももう使うのは非推奨になっている?
>>867
つかわなかったら何もできないでしよ?
どうやってクラス内からメンバにアクセスするつもり? 何もできない事は無いな
手続き型で書くか、プロトタイプベース駆使してクラスシステム作り直せばね
thisって使いやすい?
thisと言う文法だけで何通りもの解釈がでてきたから
それぞれ新しい文法が新たらに出てこないのかな?
アロー関数が追加されたりasys/awaitが出てきたみたいに
使いにくい点はあるよ、
個人的な一番は
this.hoge this.fuga this.piyo
とくどく書かないといけないこと
勿論今なら分割代入あたりで展開したり、Object.assignでまとめて代入したりもできるが、
それでも昔っからあるプロポーザルのように
::hoge ::fuga ::piyo
などと書ければなとよく思う
あと直接はthisとは関係ないけど、
プライベート関係で新しい構文は入るだろうね
Math.random().toString(34).slice(2)
このコードってどういう意味だと思う?
34ってなんなんや。
>>875
基数なのはわかるよ。でもその場合は
0-9a-zで36が基数じゃないの? 間違いか、34*34通りあれば十分だったんじゃないの?
他人のコードなのに奇数なら36のはずだと勝手に決めつけ思い込む脳神経ってどうなってるんだろうね
質問です。
変数を宣言する際に記述するvarは省略することが出来るのでしょうか?
私の買った本だと、書かれていたり、省略されていたりして
混乱気味なのですが…。
出来るけどグローバル変数になるのでよっぽどの場合以外は使わないようにしましょう
>>880
ありがとうございます。一応出来るのですね。
っていうかあの本ダメだぁ。そういう必要な説明も端折ってる…。 >>881
クロージャ内変数を掴みに行っているのが見えてないだけだろ。
韓国人死ね
てかマジで他もいろいろ酷いがデタラメ答えるな。
スレのレベルが下がっているのはお前らにも分かるだろアホ共。
もう既に間違いも大量に放置されている。こういうのはお互いに利益無いと知れ。
馬鹿な韓国人には何度言っても通じないようだが。マジで死ね。 >>882
ありがとうございます。
ところでなんでそんなに韓国人が嫌いなんですか?
イボミとか良い人もいるじゃないですか? XMLHttpRequestとクロスドメイン参照と
JSONPとcallbackを
郵便屋さんで例えてください。
>>879
この両者には僅かな違いがあります。
varを使って宣言する(var a = 10)とその変数はグローバル変数となり
varを使わずに宣言(a = 10)するとまずスコープチェーンを
辿ってaを検索し、aが存在すればaに代入を試みて、
aが存在しなければ、グローバルスコープにaプロパティを追加します。
(グローバルプロパティの生成)
開眼!Javascript
p81
https://jsfiddle.net/jseja/6Xyh3/ >>881
悪書は追放するから
タイトルと筆者を書いて欲しい。 WebでのJSの実行環境は
with(window){}
で囲まれているようなものだからね
でも今からはModuleの時代だしそういう癖つけないほうが良いよ
>>886
ありがとうございます。基本的には付けた方がいいんですよね?。
>>887
筆者が気の毒なので一応伏せておきます。
悪書まではいってない気がするので。 >>890
情報共有するきがないなら参加するなよ
おまえと同様にその本を買ってしまって混乱する犠牲者ふやしたいのか? >>890
そういう体質が悪い方向に向かわせているんだが
これが親切のつもりらしいから呆れる。 こっちは有料の本の中身の情報を
タイトル名、ページ番号
その中身の一部引用までして
書き込んでいるのに
こちらの要望は軽く無視された・・悲しいわぁ・・・
>>886
var 無しだと、グローバルプロパティだから、
スコープチェーンをたどるから、ややこしい
チェーンをたどって見つからなければ、最終的にグローバルプロパティで、
グローバル変数とは別のもの
こんなややこしい仕様を作った、JSの作者は、頭おかしい letが使えないブラウザ向けに作ってる人もいるんです!
>>894
グローバルプロパティとグローバル変数は同じものだよ
グローバルオブジェクトがグローバルスコープになってるわけだからね
with文を使ったときと同じ いや、var付きかどうかには違いがあるけど、
グローバルオブジェクトのプロパティとグローバル変数は同じものだよ
スコープにはオブジェクト型ってあって、with文のスコープとグローバルスコープはそうなってるから
だからそれはvarの効果であって、グローバルスコープは
グローバルオブジェクトのオブジェクト型スコープだから
そこに対する参照は全てグローバルオブジェクトへの参照へリダイレクトされるんだよ
つまりグローバル変数とグローバルオブジェクトのプロパティは同じもの
varで宣言すれば属性が変わるが存在するのは同じ場所
じゃあ他人のコードをレビューする時、
deleteは無視しても挙動は変わらないんだな?
なぜイライラしたかわかった
多少の挙動など気にしない>>879この本の作者と同じ考えのやつだからだ
質問者が細かい違いを気にしてたのに
>>901はそんな細かいことを気にせずテキトーでいいんだよと返してたんだからな。
こっちはきっちりしただけだっちゅーねん。 お前の書き込みが俺をイライラさせる件についてはどう思うんだ
>>904
おれがいつそんな細かいことを気にせずテキトーでいいと言った?
俺はここの住人の中でもっとも細かいことが気になる人間だぞ?
だからむしろ、お前はスコープと変数の扱いの仕様レベルのことが分かっていないんだから、
言い回しに気をつけろと超細かいことを言ってるんだよ
いいか、グローバル変数とグローバルプロパティに差なんてない、両者は同じもの
ただvarで宣言するとconfigurableがfalseになるからdeleteできない、それだけなんだよ グローバルオブジェクトは、唯一無二のシングルトン
グローバル変数は、グローバルな変数
グローバルプロパティは、グローバルなプロパティだから、delete で削除できる
これら、3つは別のもの
要するに、普通のオブジェクトでのルールをグローバルオブジェクトにも適用して例外をなくしたからぱっと見で意味が分からない仕様になってるんだろうなぁ
全てがグローバルオブジェクトの中の出来事と思えばさほどおかしい仕様ではないが他言語からは理解しがたい不思議な世界かもしれない
仮にグローバルオブジェクトの外からそれらを見ることがあるなら、グローバルプロパティと変数の差はもっとわかり安いだろう
とにかく開発時には、verもしくはthis(orなにかしらのオブジェクト)にドットで繋いで変数宣言しないとだめって事だな
それ以外の宣言だとぱっと見だと判断のつかない所属の変数になってしまう事がある
それはJSとしては正しい挙動だが、わざわざそんな事を狙ってやるやつは居ない
大抵はミスでそうなるケース
JSが難しい理由は、var, new の有無で、意味が変わってくる所。
ちょっとした書き間違いで、動作が異なる
しかも、コンパイルエラーにならないで、
しばらくしてから違う箇所で、実行時エラーになる
実装者向けの機能が、むき出しで、一般のプログラマーまで、
それを習得しないといけなくなってる
すごく、インタープリター内部の話まで、しなければならない。
それで、Ruby よりも、かなり難しい
JSはフリーダムすぎるんだよね
誰も使わないような自由があちらこちらにあって、それがケアレスミス時の落とし穴になるという
いろいろ作ってて理解不能なエラー挙動に直面して、ウォッチで追って行って「そんな仕様だったのかよ。。。」とあとから気づくことも多かった
まあnew演算子の挙動は理解しとかないといけないだろうな
旧クラスシステムは、関数にデフォでprototypeメソッドが生えることを除くと
完全にnew演算子の力だけで成り立ってることを一旦理解すれば
newの有無で〜とか言う発言はなくなる
だってそもそもnewは演算子なんだから、そりゃどんな演算子でも飛ばせば動作が変わって来るのは当然だし
ここにいる人たちってeslintとか使ってないんか
勉強にはなったと思う
しかしグローバルプロパティを
deleteしようとすることは
俺の仕事内容的にはまずないだろうな……
new Number()
Number()
new を付けると、オブジェクトで、
無しだと、プリミティブになるとか、
ちょっとした変化を付けているから、困る。
ちょっとした書き方の変化で、色々と出来るようにしているから、ややこしい
取り敢えずクラスはクラス構文で書けばいい
そうすればnew無しでは呼べない
>>907
違う違う、いい加減仕様読みなって
グローバルに変数作ろうとするとグローバルオブジェクトのプロパティを作成することになるの
その時var宣言付きだとconfigurableがfalseになるからdeleteできない
ただそれだけでグローバル変数とグローバルプロパティに区別はない >>918
自分で言ってて矛盾してると思わないの? >>920
なぜ変数とプロパティの違いすら分からないの?
両者は全然ちがうだろ
グローバルだけはスコープチェーンの最終地点だから使用する際の挙動に違いがほとんど無いだけ
これはたまたまそうなってるだけであり、「区別がない」なんて無知にもほどがあるだろ >>907
つまり、こういう事か?
- delete演算子で削除できるものが「グローバルプロパティ」
- var 宣言したものは「グローバル変数」
オレオレ定義にしか思えんのだが、該当する仕様のURLを教えてくれ。 >>921
var宣言してもグローバルオブジェクトのプロパティになるからでは?
<script>
var a = 1; // グローバル変数
console.log(this.a); // グローバルオブジェクトのプロパティ
</script>
だから、これは「グローバル変数でもグローバルオブジェクトのプロパティでもある」という認識が正しい。
彼が指摘しているように、仕様を読んだ方がいい。 トップレベルでObject.getOwmPropertyDescriptor(this, 'v')
すりゃ>>918が正しい事が確認できる スレ違いだったらすみません。
JSの勉強として既存のスクリプトを読んだりしているのですが、どうしても理解できない点がありまして、
よろしければご教示お願いできないかと思い書き込ませていただきました。
読んでいるのは以下のプロジェクトの /lib/marked.js となります。
JSの勉強に加えて、似たような処理をするスクリプトを組む参考にもなると思い選びました。
https://github.com/chjj/marked
当該スクリプトの下部で定義されている replace という関数に含まれている以下の文が、何を目的として存在しているのかが分かりません。
val = val.replace(/(^|[^\[])\^/g, '$1');
もしお時間ありましたら、どなたか解説お願いしても構わないでしょうか? var str3 = str.replace(/(^|[^\[])\^/g, '$1');
g フラグは、一致するだけ、複数にマッチする
$n は、( )で囲んだ部分に、一致した部分。
$1 は、1つ目の( )、$2 なら、2つ目の( )
^ は、文字列の先頭に一致する。^A なら、先頭がA。
ただし、[ ]の先頭にあると、否定の意味になる
[abc][a-c]は、a, b, c のどれかの1文字に一致するが、
[^abc]は、a, b, c のどれかの1文字に一致しない文字を表す
\ は、特殊文字をエスケープする。
特殊文字の意味をなくして、通常の文字として扱う。
\^ なら、^ の特殊な意味をなくして、単に、^ 文字を表す
\[ なら、[ 。
[ ] の中で、[ を使えないから、\[ と書いている。
つまり、[^\[] は外側の、[ ] を外すと、^\[ となり、[ 以外の文字
| は、どちらかの文字を表す。A|B なら、A か、B
(^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
2文字目が、^ にマッチする。
$1 で、( )内は、1文字目だけを取り出す
var str = "a^^b";
var str2 = str.match(/(^|[^\[])\^/g);
var str3 = str.replace(/(^|[^\[])\^/g, '$1');
console.log(str2, '\n', str3);
str2は、a^ で、$1 は、( )内だから、a だけを表す。
replaceでは、a^ を、a で置換するから、str3は、a^b となる
>>921
順を追って書いていくからどこで引っかかるか教えてくれ
変数はEnvironment Recordという構造体に保存される
Environment RecordにはObject型があって、そこでは変数はオブジェクトのプロパティとして保存される
グローバルスコープのEnvironment RecordはグローバルオブジェクトをベースとしたObject型だ
グローバル変数はグローバルオブジェクトのプロパティとして保存される >>925が超初心者と想定した説明を。
例えば入力された電話番号をチェックしたい場合、有効な電話番号を10桁の数字とすると、
if (phoneNumber == "0000000000" || phoneNumber == "0000000001" || ......)
と書いていては現実的に不可能です。
正規表現は文字列の法則を示したもので、replace関数の親戚のmatch関数で、
if (phoneNumber.match(/[0123456789]{10}/))
と書けば、"0000000000"〜"9999999999"までをカバー出来ます。
[0123456789]はより単純に[0-9]と書くこともでき、この部分は0〜9の数字1文字を示しています。
その後に続く{10}はそれを10回繰り返したものという意味です。
実はこれでは不完全で、この正規表現では10桁の数字さえあればよく、
例えば11桁以上の数字や、"0123456789A"や"A01234567890"みたいな文字も通ってしまいます。
そこで先頭に^をつけることによって、数字から始まることを示し、
最後に$をつけることによって、10桁で終了することを示せば、期待通りになります。
if (phoneNumber.match(/^[0-9]{10}$/))
さて本題ですが、上のmatch関数もそうですが、replace関数の1番目の引数は""で囲っていなく//で囲っています。
これは文字列ではなく、正規表現オブジェクトを渡していて、matchやreplace関数ではそうするもんだと思って下さい。
文字列変数valにある、(^|[^\[])\^という正規表現で示される部分を、(2番目の引数の)$1に置き換えるという意味です。
$1というのは、正規表現の後方参照と呼ばれるもので、正規表現の1番目の丸括弧()の中を指しています。
(^|[^\[])\^という正規表現なので、(^|[^\[])の部分が$1になります。
(^|[^\[])\^を(^|[^\[])に置き換える。つまり、丸括弧の外にある\^の部分を削りたいわけです。
/(^|[^\[])\^/gと書いてますが、このgというのは、正規表現のフラグの1つで、一致したもの全てを置き換えるという意味です。
もしgがない場合、一致した最初の1つしか置き換えられません。
大文字小文字を区別しないフラグなど、フラグは他にもいくつかあります。
初心者に正規表現は難しいので、(^|[^\[])\^がどういう意味なのかは時間をかけて勉強してみて下さい。 >>928
というかその正規表現はおかしいだろ。
JavaScriptではエラーにならないし、
よくあるサイト上でのチェックでも実際のJavaScriptで動作させているから動いてしまうが。
チェッカーを探したがいいのが無いね。
> (^|[^\[])\^ は、1文字目が、^ または、[ 以外の文字で、
意味的におかしいだろ。^ は [ 以外の文字なんですがそれは?
君が勘違いしているのは下記か?
/(\^|[^\[])\^/
が、まあ、これが意味ないのは上記の通り。意味があるようにするとしたら以下か?
/(^\^|[^\[])\^/
韓国人死ね >>932
『「行頭」か「[以外の文字」』に続く^じゃないの?
^
[^
にマッチさせたいのでは? >>933
え?それってありなん?
まあ俺は正規表現のプロではないが。
そして試してみた結果、確かにそのようだが、ものすごく気持ち悪い。
'^'.replace(/(^|[^\[])\^/g,'$1'); // ''
これってマジでありなん?しかもカッコ内じゃないのに置換されてるし。
韓国人死ね var str = "xabc";
var str2 = str.match(/(^|a)b/g);
console.log(str2);
ab と一致する。
^ これどういう意味?
行頭または?
はあ?
間違いか?
var str = "xabc";
var str2 = str.match(/(^|a)b/g);
console.log(str2); // ab
str = "bc";
str2 = str.match(/(^|a)b/g);
console.log(str2); // b
行頭が、b または、
ab
すまん、935のカッコ内云々は俺の勘違いだった。
ただ、行頭をキャプチャして置換に使うってのがなあ。これって合法なん?
韓国人死ね
>>941
確かに以下を見る限り合法のようだ。
https://abicky.net/2010/05/30/135112/
やりたかったことは replace(/(?<!\[)\^/g,'') なんだろうけど、
JavaScriptでは否定後読みは使えないからああなったという感じか。
Perl使いがキモイ正規表現を使うとは聞いていたが、遭遇したことは無かったのだが、これか。
あくまでマッチ+バッファであり、型の感覚が無いから、プログラマからするとキモイわけだ。
とはいえこれに関してはPerl使いのほうが正しいのだろう。
韓国人死ね 925に対して回答ありがとうございます。
わざわざ詳細な説明いただき助かりました。
申し訳ありませんが、その上で何点か再確認よろしいでしょうか?
まず $1 だとマッチした内容に置換されるが、当該のコードは '$1' なので単なる文字列と見なしてよろしいでしょうか?
ならびに [^\[] は行頭文字ともマッチするので記述が冗長だと思うのですが、いかがでしょうか?
当該の一文が出てくるのは小さな関数なのですが、何のためにこのような処理をされているのかが全文を読んでもさっぱり見えてきません。
何を目的としてこのように書かれているのか、どなたか分かりますでしょうか?
>>944
行頭か、[以外で始まる^でしょ?
^abcde //マッチする
[^abcde //マッチしない
abc^defg //マッチする
abc[^defg //マッチしない
行頭とマッチするかは/m次第だろうけどマッチするのは、改行文字かと。 >>945
前者に関しては確認したところテストコードに誤りがありました、申し訳ありません。
後者に関しては記憶違いだったみたいです。改めて正確な挙動を調べなおします。
>>946
ああ、オプションの m で挙動が変わるのですね!
完璧に失念してました! >>927
の「正規表現 - MDN」を熟読すべき 文字へのマッチとは別に、位置へのマッチがあることが分かれば難しいものではない
質問お願いします。
要素にクラスを追加する場合、id指定だと下記のようにするとできるのですが、
var e = document.getElementById("abc");
e.classList.add("xyz");
クラスにクラスを追加する場合、どのようにすればいいのでしょうか?
var e = document.getElementsByClassName("abc");
e.classList.add("xyz");
これだとエラーになってしまします。
よろしくお願いします。
getElementとgetElementsの違いを理解しよう
中学校(最近は小学校?)で習ったはずだぞ
idは一意で、同じidはないはずなので(あった場合それは正しいドキュメントではない)、
getElementByIdは指定idの要素オブジェクトを1つだけ返すのに対して、
classはそういう制限はなく、同じclassが何個も出てくるのを想定しているので、
getElementsByClassNameは指定classのイテレータブルなコレクションを返します。
すなわち、e[0]、もしくはe.item(0)のようにアクセスするのが正しいです。
>>953さん
お教え頂いた通り、以下のように設定すれば希望通りにできました。
本当にありがとうございます。
e[x].classList.add("xyz"); △イテレータブル ○イテラブル ということは置いといて
何をもってイテラブルと言ってるのかによるだろう
HTMLCollectionは
ESで言うイテラブルは通常@@iterableを持つということなのでそれとは違う
DOMで言うイテラブルは通常NodeIteratorなどのことなのでそれとも違う
ただ「列挙可能」という意味で言ってるなら問題はない
@@iteratorの間違いだよ それくらい察して
それにイテラブルだなんて汎用的な言葉とも取れるし、そんな突っつくことでもないと思うよ
// テストデータ
var dataAry = ["xabc", "bc", "ac"];
var re = /(^|a)b/g;
function testFunc(elem, index, array) {
var myArray = elem.match(re);
console.log(elem, '\n', myArray, '\n');
}
dataAry.forEach(testFunc);
結果は、ab, b, null
つまり、
1. 行頭がb
2. ab を含む文字列
このテストデータで実行してみ
var dataAry = ["xabc", "bc", "ac", "cb", "^b"];
結果は、ab, b, null, null, null
JSの質問か際どいんだけど誰か良い案あればおしえてほしい
番組表のようなものを作りたくて、縦軸で時系列、横軸でチャンネル区切りを表したい
テーブルタグを用いるのが良いかと思っていて、複数の時間帯をまたぐものはrowcolを指定することでいい感じにできないかと考えてる
肝心の番組情報だが、常に何かの番組があるわけではないのでところどころに抜けのあるjson形式のデータが返ってきててそれを使う想定
こういう感じなんだけど各番組が複数のセルをまたいだり空白の時間があったりでいい感じにテーブルを動的に構築するのが面倒くさいなと思うんだけど良い案ないだろうか
フレームワークとかはなんでもいいけどVueを使おうかなと思ってる
そこを丸投げしてしまったら貴様のやる事は何も無いではないか
>>963
いい感じにテーブルも何も、最初から3分毎くらいにテーブル切っといて、やってる時間分rowspanかけるか、
それか透明テーブルにoverflow:visibleで放送時間分の高さ持ったdivタグおいといたら楽では? >>965
後者のほうが楽そうな印象はあるけどどうも構造的には前者のほうがきれいに感じる
前者のテーブルって最初に数分ごとに区切られた空のテーブルを作っておいて、JSONを取得したタイミングでテーブルに書き込む関数を呼ぶみたいなアプローチでいいんだろうか もう一分ごとに区切れば?
所詮1440×チャンネル数分のテーブルでしょ?
エクセルに比べれば楽勝w
>>969
すまん、区切りをどうするかってのは特に問題じゃないんだ >>970
1分ごとに区切れば簡単になるってことに
まだ気づかない? >>971
得られる番組の開始終了時刻が5分区切りなんだけどそれでも1分区切りのが簡単になるの? >>968
前者でch×3分なり、5分毎のテーブル作って、
そのセルにoverflowを表示するdivタグで1セル(5分)の高さのワク作って、
そこに放送時間分の高さの番組情報のdiv入れれば良いのでは? >>973
色々見たらその方式で実装してるところが多いんだけどなんか個人的に気持ち悪いというか…好みの問題かもしれない
でも最終手段として残しておくことにするよありがとう >>963
感覚的にはタイムテーブルのような長さを計るものはtable要素向きではないと思うが、横にHH:00のヘッダを付けるなら二次元構造といえなくもないか。
とはいえ、レンダリングコストが高くつきそうなので、俺なら適当なブロックボックスを時間の長さ分作って放り込むと思うが。
>>968
JSONデータの事なら {"番組名":"XXX","開始時刻":"2017/07/15 19:00+09:00","終了時刻":"2017/07/15 20:00+09:00"} でいいんじゃないかね。
ISO 8601拡張形式で時刻を表せば、時間を計る方法はいくらでもある。 >>974
まあ、表では無いからな。
divをabsoluteで配置して、インラインスタイルでtopを放送開始時間、bottomを放送終了時間にして、チャンネルのクラスつけて、
チャンネルのクラスはleftとwidth持ってりゃわりと綺麗かな。 >>975
列挙可能とは、反復処理にかけて次の要素、次の要素、次の要素、と取り出していける事を言う
enumerableは「要素が列挙される」ことが可能かどうか
ここで言ってるのは「要素を列挙する」ことが可能かどうか、つまり@@iteratorを持つのと同分類
HTMLCollectionはlengthとitem()を備えるので要素を列挙していくことが可能
よって広義にイテラブルと呼ぶことは可能
原文でもコレクションがイテラブルだと言っている
つまりitemなどを備えるコレクションだということを強調するために使われているので問題はない 話を戻すけど、俺は最も自然に感じる意味がそうだと言うことに異論は唱えていないよ
ただ@@iteratorを持つものしか「イテラブル」と呼べないというのには異論がある
俺は彼の用語の使い方が超えちゃいけないラインを逸脱しているとまでは思わないし、
そのニュアンスを捉えないで字面だけ見て揚げ足を取ろうとする行為の方が問題だと感じる
それは言語仕様として「class」が無かった頃、形態としての「クラス」という表現まで弄ってたおかしな人と同じだよ
>>983
まず、あなたの投稿はどれだ?
俺がレスした相手に (スププ Sd70-wcQn) は存在しないのだが。
> 953 デフォルトの名無しさん (ワッチョイ 8bf3-z+eH) sage 2017/07/14(金) 12:54:26.06 ID:yf7LD5Sw0
> 957 デフォルトの名無しさん (ワッチョイ 6e0b-EdWd) sage 2017/07/14(金) 17:21:23.89 ID:IlK8Z/pQ0 国語の話とか収集つかないので静観してたけど、なんか荒らしちゃったようで申し訳ない。
反復することが出来る(ループ文を使う)という意味で言ったので、そんな深い意味はありません。
反復という言葉がとっさに思いつかなかったので英語で言ったのですが、イテレータブルも日本語でしたね。
>>984
957とかが俺だ
俺もあっちこっちから書き込んでるからね >>953,985
あなたがそういうスタンスならそれはそれで良いと思う。
俺が危惧したのは「仕様にある用語(iterable)」と解釈されかねない書き方になっていたこと。
それが仕様上のiterableとは別意の「便宜上の言葉」である事が明確になっていたなら問題はなかった。 >>957,983,986
あなたは初め、仕様に言及した書き方をしていた。
>>957,979がそれだが、主張している内容が矛盾だらけだった。
>>980-982に対してもレスは未だない。
> 原文でもコレクションがイテラブルだと言っている
原文でiterableと書いてあるのは4回だけ。
NodeList と DOMTokenList しか iterable なものはなく、HTMLCollection は該当しない。
https://dom.spec.whatwg.org/#interface-htmlcollection
> それは言語仕様として「class」が無かった頃、形態としての「クラス」という表現まで弄ってたおかしな人と同じだよ
ES5時代のクラスは説明の道具として有用だった。
ただし、iterableは仕様に存在する単語であり、それが「仕様としてのiterable」と解釈されてしまうと誤解が生じる。
簡単に書けば、「誤解が生じかねないオレオレ用語は使うな」
>953の後に>>985が出てきたのなら、文意が誰にでも分かるので良いと思う。
が、あなたはiterableで問題ないと何度も主張しているので、そのままでは誤解が広まってしまう。 一般用語のコンテナ・入れ物で良い。
複数のオブジェクト・要素を入れる、複合物
コンテナは、反復可能
その反復可能を英語でいったらどうなるのさ?
日本人だから英語は技術用語とできるかもしれんが
英語圏の人にとっては英語で説明するんだぞ
>>988
よく読め、俺は最初から仕様としての言葉としてはふさわしくないが、
汎用的な言葉としては有りというスタンスしか取っていない
現にカタカナの「イテラブル」としか言っていない
そして原文とは『彼のレス』のこと
あとそんな誤解をわざわざするのは君くらいだ
別に大した意味で使われていないことくらい分かる
君はね、俺のレスも、彼のレスも、全然きちんと読んでなさすぎじゃないか?
それで誤解だ何だ言われてもね
ただいちゃもん付けるためにあら捜ししたいだけじゃん > 現にカタカナの「イテラブル」としか言っていない
それ何の違いがあるの?
すみません。質問です。if文どちらの結果もでません。
どなたか教えてください。
<form action="" id="weightform" name="weightform">
<input type="text" id="weightvalue" name="weightvalue">
<input type="button" value="Here we go">
</form>
<script type="text/javascript">
function onButtonClick(){
document.write(weightform.weightvalue);
var num1=parseInt(document.weightform.weightvalue.value);
if(num1>99){
document.write("<h2>あなたはヘビー級です</h2>");
}
else{
document.write("<h2>あなたはジュニアヘビー級です</h2>");
}
ブラウザのF12開発者ツールを起動して、デバッグすれば?
onButtonClick という関数が呼ばれないだろ
それに、document.write は使うな。
HTML全部を書き換えてしまうから
こういう質問は、web制作管理板の方に書き込んで。
向こうの方が、答える人が多いから
ヘイトスピーチの発信源と化してるしもう落ちていいよ
rm
lud20170913234957ca
このスレへの固定リンク: http://5chb.net/r/tech/1491147085/ヒント:5chスレのurlに
http://xxxx.5ch
b.net/xxxx のように
bを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「JavaScript の質問用スレッド vol.123 [無断転載禁止]©2ch.net->画像>11枚 」を見た人も見ています:
・+ JavaScript の質問用スレッド vol.123 +
・+ JavaScript の質問用スレッド vol.143 +
・+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.129 +
・+ JavaScript の質問用スレッド vol.127 +
・+ JavaScript の質問用スレッド vol.129 +
・+ JavaScript の質問用スレッド vol.105 +
・+ JavaScript の質問用スレッド vol.121 +
・+ JavaScript の質問用スレッド vol.131 +
・+ JavaScript の質問用スレッド vol.134 +
・+ JavaScript の質問用スレッド vol.122 +
・+ JavaScript の質問用スレッド vol.129 +
・+ JavaScript の質問用スレッド vol.144 +
・+ JavaScript の質問用スレッド vol.124 +
・+ JavaScript の質問用スレッド vol.142 +
・+ JavaScript の質問用スレッド vol.124 +
・+ JavaScript の質問用スレッド vol.126 +
・+ JavaScript の質問用スレッド vol.124 +
・+ JavaScript の質問用スレッド vol.141 +
・+ JavaScript の質問用スレッド vol.141 +
・+ JavaScript の質問用スレッド vol.136 +
・+ JavaScript の質問用スレッド vol.138 +
・+ JavaScript の質問用スレッド vol.139 +
・+ JavaScript の質問用スレッド vol.132 +
・+ JavaScript の質問用スレッド vol.131 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.129 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.121 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.129 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.119 + [無断転載禁止]
・+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
・+ JavaScript の質問用スレッド vol.122 + [無断転載禁止]©2ch.net
・+ JavaScript & jQuery 質問用スレッド vol.7 +
・+ JavaScript & jQuery 質問用スレッド vol.7 +
・+ JavaScript & jQuery 質問用スレッド vol.8 +
・+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止]
・+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]
・+ JavaScript(ECMAScript)質問用スレッド vol.122 + [無断転載禁止]©2ch.net
・JavaScript ライブラリ総合質問所 vol.5
・Civilization6 (CIV6) 質問スレッド Vol.3 [無断転載禁止]©2ch.net [無断転載禁止]
・Civilization6 (Civ6) 質問スレッド Vol.13
・Civilization6 (CIV6) 質問スレッド Vol.1 [無断転載禁止]
・jQuery 質問スレッド vol.8
・ソフトウェア板 総合質問スレッド Vol.5
・Civilization6 (CIV6) 質問スレッド Vol.4
・Civilization6 (Civ6) 質問スレッド Vol.7
・Civilization6 (Civ6) 質問スレッド Vol.8
・Civilization6 (Civ6) 質問スレッド Vol.5
・ソフトウェア板 総合質問スレッド Vol.6 [無断転載禁止]
・Civilization5 (CIV5) 質問スレッド Vol.28 [無断転載禁止]
・Civilization5 (CIV5) 質問スレッド Vol.30 [無断転載禁止]
・パソコン一般板総合質問スレッドVol.102
・★★Java質問・相談スレッド172★★
・★★Java質問・相談スレッド182★★
・ブックマークレット【 JavaScript】 [無断転載禁止]
・★★Java質問・相談スレッド176★★ [無断転載禁止]
・JavaScriptに詳しいやつに聞きたい リンクをクリックするブックマークレット作りたいんだけど
・【DTM】悶絶★初心者質問スレッドVol.76【5歳児】
・★★Java質問・相談スレッド180★★ [無断転載禁止]©2ch.net
・【DTM】悶絶★初心者質問スレッドVol.77【3歳児】
・【DTM】悶絶★初心者質問スレッドVol.76【6歳児】
・【DTM】悶絶★初心者質問スレッドVol.83【5歳児】
・【DTM】悶絶★初心者質問スレッドVol.76【8歳児】
・【DTM】初心者質問スレッドVol.80ワッチョイ有り
・【DTM】悶絶★初心者質問スレッドVol.81【5歳児】
17:03:28 up 27 days, 3:27, 0 users, load average: 7.41, 8.12, 8.33
in 0.066059827804565 sec
@0.066059827804565@0b7 on 010807
|