+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/03/22(日) 16:19:45.75ID:nW67tQ7U
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。


+ JavaScript の質問用スレッド vol.123 +
http://peace.2ch.net/test/read.cgi/hp/1423915644/

(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
93デフォルトの名無しさん
垢版 |
2017/06/10(土) 23:47:05.80ID:ZRXNskxD
>>92
[5,2,6,2,6,5,4].map(aIndex => a[aIndex]).join("");
2017/06/10(土) 23:47:27.24ID:TJyr+hnH
>>92
今回はlodashを使うまでもないな。残念。

var a = [ "a", "i", "u", "e", "o", "k", "s" ];
var b = [5, 2, 6, 2, 5, 4].map(function(i){ return a[i] }).join('');

これでできるよ。

最近のブラウザだけとかbabel、typescriptを使うのであれば、以下のようにもっと短く書ける

var b = [5, 2, 6, 2, 5, 4].map(i => a[i]).join('');
2017/06/10(土) 23:51:08.45ID:pLUZQjiK
>>93-94
ありがとうできました
96デフォルトの名無しさん
垢版 |
2017/06/11(日) 13:46:05.02ID:QGjh7z3B
アンスコJS使えよ
2017/06/13(火) 23:29:09.86ID:LBkAuNWW
このためだけにアンスコを使うということはありえないと思う
既にアンスコが導入されている場合であれば当然使うべきだと思う
何も前提の無い単発の質問では備考程度に遠慮すべきだと思う
2017/06/14(水) 01:03:55.89ID:pO0H9gtO
webでの動画閲覧環境を作っているのですが、
今動画を選択するたびにサーバにリクエストしてswfを毎回ロードしています。
swfオブジェクトをJavaScript側にロードさせておきたいのですが、swfオブジェクトは3つあります。
動画形式Aを再生するplayerA.swfと動画形式Bを再生するplayerB.swfと、
動画形式Cを再生するplayerA.swfのプラグインであるplayerC.swfです。
AとBは単純にswfを呼び出すだけなのですが、CはAに引数としてswfのpathを渡さないといけません。
ソースにすると、
<object data="playerA.swf">
<param name="FlashVars"plugin=playerC.swf">
</object>
こういう感じです。
playerCのバイナリをメモリにロードさせて、playerCという識別子を与えて、
js://playerCみたいにして呼び出したりする仕組みがあったりしませんか?
2017/06/14(水) 11:51:09.40ID:cht2PpgI
BlobURLがあるが、Flash側で受け付けてくれるかは分からんし、そんなことしなくても普通はキャッシュが効く
問題になるはずのないことが問題になっているのなら、何かが根本的におかしい
2017/06/14(水) 12:05:55.97ID:pO0H9gtO
>>99
なるほど、ありがとうございます。
ようは304を返せばいいということですね。
簡単なwebサーバでいいので自前で実装していました。
適当に200返してたのが問題だったというわけですね。
2017/06/15(木) 20:07:26.70ID:ZfWiPaVQ
var aaa = {bbb:{ccc: null}};
function foo(objname) {
 let objname = eval(obj);
 let newvar = .........
 return newvar;
}
eval("aaa.bbb.ccc="+foo("aaa.bbb.ccc"));

こういうコードでevalを使わないやり方は可能でしょうか?
単にaaa.bbb.ccc = newvar;
でいいじゃないかと思うかもしれませんが、
実際は変更したいオブジェクトを列挙してforで同じ関数(foo)を使って変更します
102101
垢版 |
2017/06/15(木) 20:20:50.53ID:ZfWiPaVQ
function foo(objname)のところ訂正です

let objname = eval(obj);

let obj = eval(objname);
2017/06/15(木) 21:25:31.60ID:rHqMsizD
function getValue(obj, objname){
return objname.split(".").reduce((o,p)=>o[p],obj);
}
obj = getValue("bbb.ccc", aaa);

実際にはnullチェックとか必要かもしれんが
2017/06/15(木) 23:27:35.55ID:ZfWiPaVQ
>>103
ありがとうございます
ありがたく使わせていただきます
2017/06/23(金) 09:16:19.02ID:v3IWYTSm
無名関数をやっぱ使いまわしたくなった時、みんなどうしてる?
2017/06/23(金) 09:49:10.65ID:UGEgTjVj
名前つけるだけじゃん
2017/06/25(日) 10:27:56.52ID:qM6DTshc
質問させて下さい
webアプリを作ってるんですが、なぜかiOSだけがセレクトボックスを選択直後にフリーズします。
エラーが出るのは以下のコードになります。
エラー回避策はエラー用の変数を作ってfor文の後でアラート表示させるようにしました。
これはiOSの仕様なのかコードの問題なのかどちらなのでしょうか?
ちなみにMac、Windows、アンドロイドは問題ありませんでした。


function selboxOnchange(){
var sel = document.getElementsByClassName('selelements');
for(var I = 0;i < sel.length;i++){
if(sel[I].selectedIndex == hoge[I].selectedIndex)
{
alert("コメント");
}
}
};
108107
垢版 |
2017/06/25(日) 10:29:12.22ID:qM6DTshc
すみません。
一部、"i"が大文字になっていますが全て小文字です^^;
2017/06/25(日) 11:31:45.65ID:ErWDHGCB
onchangeからワンテンポ置いてやってみたら?
2017/06/28(水) 10:06:12.99ID:+O8L6XqQ
瑕疵担保責任(かしたんぽせきにん)

瑕疵担保責任のポイント

民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない

http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
2017/06/28(水) 10:06:47.78ID:+O8L6XqQ
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744

367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/

372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する

Railsはマイナー、メジャーのアップデートが半年以内に必ずある

客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく

気づいてから1年以内に通知すれば、5年間無料保証ゲット

つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな

376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
2017/06/29(木) 02:40:28.92ID:xsuY0QwQ
1年リースにするなり、売り切り型にしなきゃ良いだけなんだよなぁ
2017/06/29(木) 04:37:42.46ID:iEm4e1Xa
質問です。次のコードはエラーになります。
var hoge=1;
if(true){
let hoge=2;
if(true){
let hoge=hoge;//エラーになる
console.log(hoge);//2が出力されて欲しい
}
}
グローバルでない、参照できる位置関係にある、同じ名前の変数を
参照することは可能ですか。どんな方法がありますか。
2017/06/29(木) 04:50:52.34ID:SZfALoS9
不可能です。そんなコードを書かないでください。
そしてlintツールを使ってください
そのようなコードを書いたら警告が出るようにできます。
2017/06/29(木) 06:29:52.69ID:xsuY0QwQ
基本的には不可能
ブロックを抜けたときにもとに戻したいのなら
入ったときにtmp変数にでも保存して出るときに書き戻すとかはできるよ
116113
垢版 |
2017/06/29(木) 06:59:55.73ID:iEm4e1Xa
>>114-115
ありがとうございました。
117デフォルトの名無しさん
垢版 |
2017/08/16(水) 23:44:42.21ID:B52P9TPV
ajaxでcors対応されていない他サイトのHTML取得したいんだけど、
jsonpで取得してもHTMLで返ってくるから
「Uncaught SyntaxError: Unexpected token <」
ってなるんだけど、回避方法って何があるの?
どなたか教えてください
118デフォルトの名無しさん
垢版 |
2017/08/17(木) 08:41:36.11ID:XHT+AQOf
オフラインのローカルのみのjavascriptだけでは、
txt,tsv,csv,jsファイル等の読み込みは出来るようですが?
更新、書換え、上書き、書出しは出来ないのでしょうか?
2017/08/17(木) 12:28:20.03ID:Q7A+EFnW
>>117
jQuery の設定項目を参照。色々できる

$.ajaxSetup({ // 全体の設定
data: {format: 'xml'},
timeout: 60 * 1000
});

jQuery で、Yahoo Query Language (YQL)を使って、
他のサイトにアクセスする方法もある

この板にはあまり人がいないから、web制作管理板で聞いて

>>118
Local Storage, Node.js, Electron とか?

この板にはあまり人がいないから、web制作管理板・WEBプログラミング板で聞いて
120デフォルトの名無しさん
垢版 |
2017/08/18(金) 07:13:33.61ID:r9Ad8ntQ
ふだんExcelのVBA使いでこれならかなり本格的なこともできるスキルがあります。
でもWebに興味が出てきたのでJavascriptをメモ帳ではじめました。

不便なのはExcelVBAのような
・コード書くときのインテリセンスでの入力補助
・ブレークポイントを使ってF8のコマ送り
・F8のコマ送りのときに変数の値を見る
ことなどなど、メモ帳だから当然そんなのできません。

Javascriptの入門書はいつくか読んでますがそんな便利なことができる開発環境のことには全くふれていません。
Javascriptやってる人は開発ツールは何を使ってますか?
その使用率みたいな円グラフみたいなのもないでしょうか?
2017/08/18(金) 07:19:31.99ID:WJ2Inw/Y
>>120
vs.code で開発して chrome で確認の組み合わせが最強だよ
やりたいことはそれで全て可能だと思う

最近作ったゲーム
https://hasemonmon.net/df5/

オールJavascriptだよ
これからはJavaScriptの時代だから勉強しといて損は無いと思う
2017/08/18(金) 08:38:59.20ID:MkY1nhvU
IE11, Edge でも、F12 を押すと、「F12 開発者ツール」が起動する。
ブラウザで右クリックして「要素の検査」でも、起動する

F12 開発者ツールの使い方を参照

コンソール画面の下に、ソースコードを書いて、
「Ctrl + Enter」で実行できる
123デフォルトの名無しさん
垢版 |
2017/08/18(金) 09:39:41.35ID:r9Ad8ntQ
>>121-122
ありがとうございます。研究してみます。
2017/08/22(火) 22:08:26.05ID:oX6Q/c4t
特定の文字({}等)で囲まれた部分 以外 の文字列を処理したい。replaceと正規表現で頑張ったのだけど、囲まれた部分まで文字列処理が行われてしまう。
どうしたら良いでしょうか?
2017/08/23(水) 02:28:01.91ID:CbozNT9/
"abc{123}abc{123}".replace(/(.+?)({.+?})/g , "[$1]$2"); // -> "[abc]{123}[abc]{123}"
126デフォルトの名無しさん
垢版 |
2017/08/23(水) 05:26:51.23ID:3TTPCtU/
'abc{12{3}} abc{}'.replace(/([^{}]+?)({.*?})/g, '[$1]$2') //-> "[abc]{12{3}}[ abc]{}"
あとは後ろを関数にしてうまく行きそうです。ちょっとやってみます。
ありがとう
2017/08/23(水) 21:31:19.08ID:3TTPCtU/
'abc{123}abc{123}abc'.replace(/(.+?)({.+?})/g, '[$1]$2') //-> "[abc]{123}[abc]{123}abc"
'abc123abc123abc'.replace(/(.+?)({.+?})/g, "[$1]$2") //-> "abc123abc123abc"

めっちゃ漏れるぅ
2017/08/23(水) 22:26:45.25ID:ztktxeFn
"{123}abc{{abc".replace(/(\{.*?})|(.+?(?=\{.*?})|.+)/g, (不特定, 特定, 非特定) => 特定 || `<${非特定}>`);
改行を跨ぐなら.を[\s\S]に
2017/08/24(木) 21:10:27.75ID:xgssE3PG
正規表現は奥が深いですね……。これで入れ子でないキャプチャができるようになりました。
ありがとうございます。
入れ子はさすがに再帰しないと無理みたいですね。やってみます。
130デフォルトの名無しさん
垢版 |
2017/08/24(木) 21:29:44.67ID:LiUup8WI
>>129
PEG.jsを使うって手もある。そっちの方が簡単かも。
あんまり正規表現で頑張っても可読性下がるしね
2017/08/29(火) 00:56:58.36ID:87zhIwVV
//ボールクラス
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}

// 移動後の座標を求めて、呼び出し元のoldPosの値を更新したい
Ball.prototype.move = function(position, move) {
position += move;
}

var ball = new Ball();
ball.move(this.x, this.dx);//X方向の移動
ball.move(this.y, this.dy);//Y方向の移動

こんな感じで、クラスのメンバ変数の組を入力引数に
特定処理(この例ではmove)をして、その結果でメンバ変数の値を更新しようと思っています。
が、上記のmoveメソッドだとpositionが値渡しなのでBallのx, y, zは更新されません。

プリミティブ型でなくオブジェクト型をmoveに渡せばいいかな、と思って
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move({position:this.x, move:this.dx});//X方向の移動
こんな感じで改造してみました…が、moveに渡した無名オブジェクトのpositionは
更新されているようですが、その元ネタのBallのthis.xは更新されません。
(無名オブジェクトを作る際に、this.xはただの値渡しであって
「無名オブジェクトのposition」とのつながりは無い?)

this.xを複数回書かずに済む、なにかスマートな方法は無いでしょうか?
2017/08/29(火) 02:54:17.65ID:XtumNqBw
なんでthis側に座標を持つの?
133131
垢版 |
2017/08/29(火) 07:35:23.49ID:87zhIwVV
上記Ballが複数あって、それぞれが自分の座標をメンバ変数として
持ってるイメージなんですが、設計上変なのですか?
2017/08/29(火) 10:22:05.85ID:s3JZZVoh
Ball.prototype.move = function() {
this.x += this.dx;
this.y += this.dy;
}
ball.move();//移動

普通はこうする
2017/08/29(火) 10:31:34.54ID:sgTDSrY2
今時はES2015はどのブラウザでも動くんだからclass構文使いなよ
2017/08/29(火) 10:45:59.23ID:+5r2zOXc
たとえば select にonchange つけたとき
selectで何が選ばれたか はイベントオブジェクトに入っていない?
137デフォルトの名無しさん
垢版 |
2017/08/29(火) 11:48:45.92ID:sgTDSrY2
>>133
>ball.move(this.x, this.dx);//X方向の移動
>ball.move(this.y, this.dy);//Y方向の移動
上記のコードのthisはballを指してない。実体はwindowだからundeifnedが入ってると思われる。

だからあえて踏襲するなら
ball.move(ball.x, ball.dx);//X方向の移動
ってことになる。
thisがそれぞれの文脈でどこを示しているかは勉強しなきゃいけないけど
thisがballのインスタンスになるのは今回はmoveの実装内だけ。
2017/08/29(火) 12:54:23.72ID:M5SL5GoR
ゲームエンジンの、Cocos2d-x(JS版)では、
cc.Sprite(画像クラス)は、cc.Node から、派生しているけど、
cc.Node のメソッドも使える

getPosition(), getPositionX(), getPositionY(),
setPosition(newPosOrxValue, yValue), setPositionX(x), setPositionY(y)

getPosition()の戻り値は、cc.Point。
setPosition の引数は、(x, y)か、cc.Point(_x, _y)

this.setPosition(this.getPosition().x + 10, this.getPosition().y)

JavaScript版Cocos2d-x かんたんゲーム開発、2015
原題:Learning Cocos2d-JS Game Development
Emanuele Feronato 著
http://www.emanueleferonato.com/

著者のサイトでは、Phaser の作品が多い

Phaser(フェイザー)は、Pixi.jsをコアにして、
サウンドとか衝突判定とか物理演算を追加した2Dゲーム開発フレームワーク。
マルチプラットフォームで、オープンソース(MITライセンス)
139131
垢版 |
2017/08/29(火) 20:54:57.78ID:87zhIwVV
皆様ありがとうございます。
結局、
var Ball = function() {
this.x = 0;//X座標
this.dx = 0;//X方向の速度
this.y = 0;//Y座標
this.dy = 0;//Y方向の速度
}を
var Ball = function() {
this.xParam = {position: 0, move: 0};//X座標(現在値、速度)
this.yParam = {position: 0, move: 0};//Y座標(現在値、速度)
}
と、各変数をオブジェクトに格納するよう変えて
Ball.prototype.move = function(positionAndMove) {
positionAndMove.positon += positionAndMove.move;
}
ball.move(ball.xParam);//X方向の移動
ball.move(ball.yParam);//Y方向の移動
のような感じでmoveを使用することで解決しました。
140131
垢版 |
2017/08/29(火) 21:07:56.73ID:87zhIwVV
>>134
サンプルくらい単純ならそうしたのですが、実際の処理はボール移動ではなくもっと複雑です。
x, y…に該当する概念が7個くらいあり、
moveメソッドで見る変数も各々5種類くらいあります。
なので、そのやり方だと感覚的には
Ball.prototype.move = function() {
this.x += Math.min(this.constX * this.dx , this.minX) + this.adjustX…;
this.y += Math.min(this.constY * this.dx , this.minY) + this.adjustY…;
(以下5行以上コピペして一部だけ書き直し)
}
みたいなコードになってしまいます。
>>135
たしかに、class構文を使った決めた方が保守性がよくなりそうですね。
>>136
すみません、即席サンプルの単純ミスです。
>>138
誤解与えてすみません。「ボール移動」はただの単純化説明用サンプルです。
実際のコードでやっていることは全く関係ないです。
141デフォルトの名無しさん
垢版 |
2017/08/30(水) 06:20:41.18ID:CwX8twwO
プログラミングしていくうちに、
Unity, UE4, Cocos2d-x(JS版), Godot などの、
ゲームエンジンへ移行していくはず

日本人の開発者は、jsdo.it でも作っている。
他人のソースコードも見れる
2017/08/30(水) 19:39:07.01ID:ewso/TS4
エロ画像ブログ巡回してると画像の下に
「二次元画像詳細検索 Google画像検索」
とあって画像の詳細を知らんべることができる
これはJavaScriptで作られているようだが、詳細がよく解らない
どういった感じで作られているのでしょう?
2017/08/30(水) 19:40:02.10ID:ewso/TS4
>知らんべる
調べる
144デフォルトの名無しさん
垢版 |
2017/08/31(木) 17:02:29.19ID:wDdLgKjd
高騰中の仮想通貨Liskがこれで作れるらしいんだが、詳細教えて
2017/09/02(土) 13:56:45.51ID:JUCPFkwW
JavaScript の勉強を始たばかりです。
言語のリファレンスになる本を探しているのですが、ないでしょうか?
いくつか買ってみたのですが、ブラウザオブジェクトの使い方ばかり書いてあります。(まあ仕方ないですが)

with文って何?とか、名前空間どうなってるのとか。昨日知ったのですが、セミコロンの自動挿入とか。そんなのが分かると嬉しいです。
よろしくお願いします。
2017/09/02(土) 14:41:59.39ID:RyZz2Z0y
mozilla developper network
2017/09/02(土) 15:30:33.15ID:rpkOHCdV
でかい本屋行ってサイか蝶が表紙の本をレジに持ってけ
2017/09/02(土) 18:52:24.90ID:KtcnwiAx
>>146-147
ありがとう。
ちなみにサイは買った。蝶は見て見るわ。

ECMA Script の仕様書が分かりやすいかも。
JS やってる人はどうしてるの?細かい仕様とか気にならないのかな。
2017/09/03(日) 12:00:03.28ID:xFesh8nH
mdn以上に正確に書かれている書籍はない
あるなら教えてくれ

ECMS scriptの仕様書は実装者向けで難解だ
mdnで曖昧な時に頑張って読む
2017/09/03(日) 12:01:25.10ID:DIhXI1rF
JavaScriptは仕様以外の部分が多いので
仕様だけをみても使い物にならんからな。

例えばブラウザの機能はすべてJavaScriptの仕様の範囲外だ
2017/09/03(日) 13:05:04.70ID:uToqw/FJ
関数呼び出しで戻り値を受け取らなければ
その関数は今呼んだ関数が終わってから実行されるんですか?
2017/09/03(日) 13:18:23.42ID:xFesh8nH
no
2017/09/03(日) 14:50:30.58ID:xFesh8nH
>>150
アホか?
どんな言語だって、開発対象への知識が必要なのは変わらない javascriptが特別なわけじゃない
2017/09/03(日) 15:00:42.17ID:DIhXI1rF
つまりどの言語でも
仕様だけを見ても使い物にはならないと言ってる
2017/09/03(日) 15:25:00.82ID:qkpMKllN
>>150
そう。
なのに、「JavaScript 入門」はDOMの話。おかしいだろ。
2017/09/03(日) 17:39:25.34ID:xFesh8nH
> 仕様だけを見ても使い物にはならないと言ってる
そうは言っとらん

> JavaScriptは仕様以外の部分が多いので
> 仕様だけをみても使い物にならんからな。
javascriptが特殊だと言っている
2017/09/03(日) 21:39:39.67ID:cT8O4Ek3
つまり、

韓国人死ね

だろ
2017/09/04(月) 09:16:19.32ID:WrS0lJ8W
うむ、助詞は日本語ネイティヴ以外には難しいと言い訳はできるな

「javascriptも」のつもりで「javascriptは」と書いてしまった
朝鮮人ならありえる
2017/09/04(月) 23:45:53.39ID:ERq8KL0N
違うぞ。
指摘されても認めてないだろ。本質的に分かってないんだよ。
間違ったんじゃない。間違っていることを認識出来てないんだ。

そして在日韓国人は「日本語が下手糞なこと」を絶対に認めない。
なぜならそれは彼等の存在意義に関わるかららしい。
(日本語が上手いというのが唯一本国韓国人に対するアピールポイントらしい)
だが実際はここで見れば分かるとおり、日本語も韓国語も駄目駄目だ。
だから彼等はまともな(厳密な)議論をしたことがない、というか成立しない。
つまり彼等は議論が出来ない、というか、
彼等内で行われている議論は全く正確さ/厳密さを欠いている物でしかない。
そして彼等はそれで議論が出来ていると勘違いしている。声闘の文化もあるしね。

これが本質的な問題で、いわゆる日本人の議論下手とは全く異なる方向なんだ。
日本人のは単に場慣れしてない、
或いは色々面倒になることを避けて意見を言わない、またはオブラートに包む、
みたいな感じだが、こちらが言ったことは確実に通じていて、
下手すれば助詞の一つで揚げ足を取られたり、いきなりブチ切れられたりする。
これなら放置しておいても場数を詰めば上達するし、
2chに来ている連中はそこそこ出来る奴が多いのも事実だ。

韓国人のは本気で通じてないんだよ。その知能がないんだ。
だから厳密な/正確な議論が出来る人達にとっては邪魔でしかない。
ところが彼等はそれで出来ていると勘違いしている。
というかそれ以上の厳密さで議論する場に参加したことがないから、
そういうまともな議論が出来る(存在する)ことを知らないんだよ。
だから自分たちのレベルが低いことを認識出来ない。
当然ここと同じ事を彼等が得意な(つもりの)韓国語でもやっているはずだし、
同様に本国韓国人にも嫌われるのは自然な成り行きだ。
もちろん他の理由も多々あるにしてもね。

韓国人死ね
2017/09/04(月) 23:46:16.66ID:ERq8KL0N
しかしこれは本当に本質的な問題で、ここでプチ日本語講座をやったところで解決しない。
馬鹿が馬鹿であることを自覚出来ないってのは常だからね。
短期的な解決法はとにかく韓国人というか
「議論が成立するレベルの日本語が使えない奴」を排除していくことだ。
これについては俺は何度も「お前ら自身が損をするから発言を慎め」と言ってきたが彼等は聞かない。
(まあ彼等は上手いつもりだからそうなるのも自然ではあるのだが)
だからどうにもならないよ。

レベルの低い奴が混ざるだけで迷惑だ、ということを彼等は認識出来てない。
そして彼等(というか在日韓国人コミュニティ)はこの理由で
「正統に排除」されるのを差別だといってゴネてきた連中だ。
東大が入試で馬鹿を「正統に排除」するのは区別であり、差別ではない。
同様に、2chで2chに不十分な日本語の奴を排除するのも区別でしかない。
彼等にはこれを理解する知能すらないんだ。
マジで彼等は腐っているし、本国韓国人からもゴミ扱いされて当然だ。

マジで韓国人は死ね

一朝一夕には解決しない。話しても通じない。
となると、「在日韓国人はいるだけで迷惑だ」ということを地道に彼等に教えてやるしかない。
在日韓国人が全員自殺してくれるのが一番助かるんだが。

なんつーか、彼等は迷惑行為を行っているのだが、その自覚がないんだよ。
そりゃ今後とも在日韓国人は死ねと言われ続けるだろうし、至極当然の成り行きでしかないのだが、
彼等はそれを差別だといってゴネるだろうし、
それに対して余計にブチ切れる奴もでるだろうしで、悪循環だね。

在日韓国人が全員自殺してこの悪循環を断ち切ることを切に願う。
つか、ゴキブリは半島に帰れマジで。
2017/09/05(火) 00:05:35.88ID:de0tAs+m
書き込み増えてないのに更新来てると思ったらそういう事か
2017/09/05(火) 02:35:39.68ID:v/8MOc6/
>>159
詳しすぎw
韓国人博士の商業を授けよう
2017/09/05(火) 02:36:12.97ID:v/8MOc6/
× 韓国人博士の商業
○ 韓国人博士の称号
2017/09/05(火) 23:21:08.39ID:aMThYtmb
俺は韓国人について詳しいのではなく、単純に状況を分析出来るだけだけどな。
匿名掲示板では不思議なことは起こらない、俺はこの点が気に入っている。
在日韓国人が本国でも嫌われているのは、在日韓国人自体がマジで糞だからだよ。
あらゆる点でね。ここに挙げたのも一つ。

C#のスレでも暴れてるだろ。
http://mevius.2ch.net/test/read.cgi/tech/1492843013/783

だが他の連中が呆れている。理由は、
1) そもそも日本人なら脳内補完されてしまう(気づかないかも、程度の誤字)
2) C#userなら当然何のことを言っているのか分かる
だからそこをあげつらうのはなんの為?って感じになってる。
ところが当の本人は本気で分かってなくて、煽って答えを出させようとしている。
マジで糞だろ。死ねでしかない。

在日韓国人みたいな馬鹿はいるだけで迷惑だ。
だから彼等が嫌われるのは当然であり、これは区別であり、差別ではない。
ということを周知徹底し、韓国人を無視するようにしていかないといけない。
つーか、そうしないと議論が進まない。

韓国人死ね

つっても結局は非韓三原則、これが一番分かりやすいのだが。

韓国人に対しては、
助けない、教えない、関わらない

しっかりと韓国人がクズであることを指摘しつつ、(攻撃されたら反論)
後は放置して勝手に死ぬのを待て、ってことだね。(助けない、教えない、関わらない)
韓国人に対してエネルギーを使うこと自体が勿体ない。
165デフォルトの名無しさん
垢版 |
2017/09/20(水) 21:50:19.54ID:ZyDsW00i
文字数制限の為、二回に分けて書き込ませていただきます。
各テーブルの背景色を条件に処理を分けたいと思い、いろいろと試していますが上手くいきません。
テスト用に書いたもので、背景色(#000000または#ffffff)ごとに合計値をresuleBまたはresultWに合計していきたいのですが、
背景色の取得がうまくいっていないようです。
今後別の処理を記述するため、できれば背景色をキーに分岐を行いたいと思っています。
解決の為、アドバイスをいただければと思います。
よろしくお願いいたします。
166>>165
垢版 |
2017/09/20(水) 22:01:50.45ID:ZyDsW00i
>>165
NGワードに引っかかってしまいコードが書き込めないのでまた、後ほど書き込ませていただきます。
167>>165
垢版 |
2017/09/20(水) 22:33:57.96ID:ZyDsW00i
function testForm(){
var table = document.getElementsByName("table");
var sumB = 0;
var sumW = 0;
for(i = 0 ; i <= 1 ; i++){
var line = table[i].parentNode;
var result = getComputedStyle(line,'');
if(result.background == "#000000"){sumB = sumB + parseInt(table[i].value);
}else{sumW = sumW + parseInt(table[i].value);}
}
var B = document.getElementById("resultB");
var W = document.getElementById("resultW");
B.innerHTML = sumB;W.innerHTML = sumW;
}

<table border="1">
<tr id = "line1" style="background-color:#000000">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
<tr id = "line2" style="background-color:#ffffff">
<td><input type="text" name="table" value="0" onBlur=testForm()></td></tr>
</table>
<table border="1" style="width:30px;">
<tr id = "resultLine">
<td id = "resultB"></td>
<td id = "resultW"></td>
</tr>
</table>
</form>お願いいたします。
2017/09/20(水) 23:57:51.37ID:VZIyuCp2
>>165
まず背景色をキーにするのはダメ
なぜなら色をどうするかはCSSの仕事だから。
背景色の代わりにクラスを使う

document.getElementsByNameで table を取ってくるのが意味不明
この場合だと tr だろう?

ループの終了判定が1固定なのがだめ。trの数にするべき
2017/09/20(水) 23:59:37.05ID:VZIyuCp2
訂正。読み間違えた。ここはとりあえずOK。とりあえずだが

> document.getElementsByNameで table を取ってくるのが意味不明
> この場合だと tr だろう?
2017/09/21(木) 00:21:05.95ID:ZVbKGIwn
id = "line1" とか id を付ける理由がわからん。
サンプルコードなら余計なものは消すべし

tableは複数変えてくるのであれば、
tablesとかいう変数にする。
が、そもそも変数名が適切じゃない。
とりあえずfield(fields)に解明する

.parentNodeじゃなくて、.parentNode.parentNode

でここまでは序の口
2017/09/21(木) 01:12:09.67ID:ZVbKGIwn
ここまでの途中結果
https://jsfiddle.net/52qcoLt7/3/

resultB と resultW の2つを一つのループで計算してるから
処理がわかりづらくなってる。
別々に計算する。そのための関数を作る
https://jsfiddle.net/52qcoLt7/4/

細か不要なところを削る
https://jsfiddle.net/52qcoLt7/5/

これ以上短くするにはjQueryがないと逆に面倒なのでjQuery化
https://jsfiddle.net/52qcoLt7/6/

sum関数を使って少しわかりやすくする
https://jsfiddle.net/52qcoLt7/7/

sum関数などというものを自分で作るよりlodash使ったほうがいいや
https://jsfiddle.net/52qcoLt7/8/

ES6のアロー関数を使う
https://jsfiddle.net/52qcoLt7/9/

もう関数の中にまとめちゃえ
https://jsfiddle.net/52qcoLt7/10/

見づらくなったので修正
https://jsfiddle.net/52qcoLt7/11/
2017/09/21(木) 01:16:29.67ID:ZVbKGIwn
修正後
$(document).on('blur', '[name="input"]', function() {
 const toInt = el => parseInt(el.value);
 const getValues = selector => $(selector).find('[name="input"]').get().map(toInt);
 $('#resultB').text(_.sum(getValues('.classB')));
 $('#resultW').text(_.sum(getValues('.classW')));
});

<table border="1">
 <tr class="classB">
  <td><input type="text" name="input" value="0"></td>
 </tr>
 <tr class="classW">
  <td><input type="text" name="input" value="0"></td>
 </tr>
</table>
<table id="result" border="1">
 <tr>
  <td id="resultB"></td>
  <td id="resultW"></td>
 </tr>
</table>

.classB {
background-color: #000000;
}
.classW {
background-color: #ffffff;
}
#result {
width: 30px;
}
173>>165
垢版 |
2017/09/21(木) 21:43:40.32ID:+hyTnlbF
>>168
ご回答ありがとうございます。
無事解決しました!

結果vbaで作り直すことになりましたが……
今回のことも一つの経験として、次につなげたいと思います。
174デフォルトの名無しさん
垢版 |
2017/09/26(火) 17:15:57.30ID:UanF2VW9
・「DOM要素」「JavaScriptオブジェクト」
 「文字列」ってどういうふうに認識を分ければいいですか、
・どういうときに、「DOM要素」をいじり、
・どういううときに「JavaScriptオブジェクト」で処理し
・どういうときに「文字列」として扱うべきなのか教えてください。
175デフォルトの名無しさん
垢版 |
2017/09/26(火) 17:18:46.94ID:UanF2VW9
・具体例

> $0
<div class=​"guide">
​<a 略> </a>​"
|"<a 略> </a>​"
|"<a 略> </a>​"
|"<a </a>​
</div>​

------------------------------------------------------------------------------

> dir($0)
VM22805:1 div.guide
accessKey: ""
align: ""
assignedSlot: nullattributes:
NamedNodeMap {0: class, length: 1}
baseURI: "https://www.2ch.net/";childElementCount: 4
childNodes: (9) [text, a, text, a, text, a, text, a, text]
....

------------------------------------------------------------------------------

> $0.innerHTML
"
​<a 略> </a>​"
|"<a 略> </a>​"
|"<a 略> </a>​"
|"<a </a>​
"
2017/09/27(水) 12:23:59.68ID:p2MS+Nsv
山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版

この本を読め
2017/10/04(水) 18:54:10.62ID:QAubw1tX
http://www.myu.ac.jp/~akizuki/sct/js/picture/pc_size.htmlみたいに
入力して指定した要素(div等)の大きさをリアルタイムに変えられるようにしたいけど、コードうまくできない
Chromeとかのデベロッパーツールを使えばいいじゃんと言われるオチだけど、cssとか詳しくない人に入力してチェックしてもらうためなので
ググっても関係ない情報ばかり引っかかるお
2017/10/04(水) 18:57:08.16ID:oEKHra+I
愚痴だけならよそでやってくれ
2017/10/04(水) 20:37:27.97ID:XYwgRbbh
>>177
一行目から行くぞ。
今時DOCTYPEを使わないのはありえない
META HTTP-EQUIVが大文字だったり小文字だったり、意味もわからずコピペしている証拠
今時Shift_JISとかありえない
languageは古い属性いまどき使わない
関数の中の変数にvar(もしくはletやconst)がない
evalは使うな
; の前にスペースはいらない
document.size.value_xなんて参照はいまどきしないgetElement○○を使え
bgcolorなどの物理属性は使うなcssを使え
centerなどのタグも使うな
brは連続して使うな
tableじゃない場所にtableを使うな
20年ぐらい前に素人が書いたコードにしか見えない
2017/10/04(水) 22:11:21.81ID:9uS2wtG9
概ね同意だが……br連続って駄目なん?
181デフォルトの名無しさん
垢版 |
2017/10/04(水) 23:54:58.26ID:AL97hIHS
jqplotで凡例の項目の一部をデフォルトfalseにしたいのですが
どのようにすればできるでしょうか?

例えば以下のサンプルサイト様の凡例「花子」を
初期起動時にはデフォルトでfalseにするイメージです
http://alphasis.info/2012/04/jquery-plugin-jqplot-line_charts-legend-numberrows/

よろしくお願いします
2017/10/05(木) 01:58:15.39ID:RWFlOlgJ
web制作管理板の、jQuery スレに、書き込んだ方が良さそう
183183
垢版 |
2017/10/05(木) 06:42:50.41ID:lUKxKZuz
すみません、自分一人ではどうしても解決できないことが有ってご質問させていただきます。

【やりたいこと】
任意の数の制御点(0=≦x =<511、0=< y =<1000)を格納した配列を基に、三次Bsplin補完を実行し、
生成された曲線の座標からx=0からx=511までをインデックスとして、y座標を出力したいのです。

任意の数の制御点を生成して、昇順に並べる関数は作りました。
また、Bsplin補完を実際に生成する関数もネットから拾ってきて既に出来ているものがあります。

次にコードを載せます。
184183
垢版 |
2017/10/05(木) 06:51:04.01ID:lUKxKZuz
function interpolation(top_elements){

var sp = new Spline();
sp.init(top_elements);

var t = variation;/* any value as parameter */ ;
var val = sp.culc(t);

}


このようなものです。top_elementsは私が作った[x,y]を任意個格納した二次元配列です。
Spline()がBspline補完をする、外部から拝借した関数になります。

tの値を変えたりして何度かやっているのですが、曲線を生成した、ということは、
xもyも連続的なはずですよね?xが512個のインデックスだとしたら、それに対応するyは
当然滑らかにはならないでしょうが、それでもいきなり飛び出た値が出るとか、そういったことはないと思います。

今のままだと、ほとんどxの値に対してランダムというか、作っている人間には突飛な値ばかり出力されてしまいます。
ようするに滑らかな曲線にならないのです。

どなたかご教授お願いします・・・Spline関数に間違いはないと思います。
185183
垢版 |
2017/10/05(木) 07:23:50.95ID:lUKxKZuz
補遺:二次元配列top_elementsは、xの昇順になっています。
2017/10/05(木) 15:39:58.45ID:SUARUJDC
アルゴリズム調べて自分で書けよ
十数行で書けるんだからさ
2017/10/05(木) 18:06:29.65ID:awWISc0p
>>182
jquery寄りの投稿でした
出直してきます
188183
垢版 |
2017/10/05(木) 18:50:12.30ID:lUKxKZuz
>>186

そうします。
そもそもスプライン補完とスプライン曲線を混同していました。
制御点の間を結ぶのがスプライン補完なんですね・・・

勉強不足で失礼しました。
2017/10/05(木) 21:37:12.37ID:mF/3dliN
学校の宿題は自分でやってください
2017/10/05(木) 21:48:37.53ID:k7vHxPO6
先生です。見てますよ。
2017/10/05(木) 22:47:29.02ID:SUARUJDC
別に宿題でも良いんだが
この手のアルゴリズムはちょっと調べたらCやJavaなんかでの実装が山ほど見つかるじゃん
コピペ手直しならまだ宿題やったってことで良いと思うけど
そこまで人にさせるのはちょっとね
192デフォルトの名無しさん
垢版 |
2017/10/06(金) 00:12:32.57ID:gy3l/p8u
すみません質問なのですが
HTMLファイルを IE11 でローカルで開いて遊ぶゲームの制作中で
データを保存する機能の部分でエラーが出ます。

Chromeだと問題ないのですがIE11だと動きません。
(未定義または NULL 参照のプロパティ 'setItem' は取得できません)

var storage = localStorage;
storage.setItem("item1", "soda");
console.log(storage.getItem("item1"));

IE11の仕様でローカル書込できない場合
何か回避方法はありますでしょうか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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