トップページ⇒tech
986コメント349KB

JavaScript 3

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/09/26(木) 15:34:20.26
( ^ω^) 初学者・迷子・ロリ幼女はこちらで
  _、_    
( ,_ノ` ) プロフェッショナルはECMAScript デス 4へ

【前スレ】
JavaScriptスレ2
http://toro.2ch.net/test/read.cgi/tech/1330477388/l50

【関連スレ】
ECMAScript デス 4
http://toro.2ch.net/test/read.cgi/tech/1325448978/
+ JavaScript の質問用スレッド vol.109 +
http://toro.2ch.net/test/read.cgi/hp/1379772045/
【jQuery】JavaScript ライブラリ総合質問所 vol.3
http://toro.2ch.net/test/read.cgi/hp/1369444026/
【node.js】サーバサイドjavascript 2【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1358937029/
むしろjavascriptでゲーム作ろうぜ
http://toro.2ch.net/test/read.cgi/gamedev/1048171505/
Canvasについて語ろう
http://toro.2ch.net/test/read.cgi/hp/1305093769/
0002デフォルトの名無しさん2013/09/26(木) 15:41:43.87
< `∀´>ニダー
0003デフォルトの名無しさん2013/09/26(木) 17:22:27.98
■関連スレ■
CoffeeScript
http://toro.2ch.net/test/read.cgi/tech/1320949260/l50
0004デフォルトの名無しさん2013/09/29(日) 01:10:32.44
【ボイド】JavaScriptとHTML5で『群れ』をシミュレーションしてみよう【プログラミング】
ttp://ottati.hatenablog.com/entry/2013/09/28/125953
>ボイドを知っていますか?ボイド(Boids)はCraig Raynoldsによって発表された人工生命シミュレーションプログラムです。

あーこういうので合戦ゲーム作りたいと思ってたんだよなー
0005デフォルトの名無しさん2013/09/29(日) 17:32:17.92
サイ本ってリファレンスも買わなきゃだめなもの?
0006デフォルトの名無しさん2013/09/29(日) 17:49:37.63
サイ本なんて買わなくていい
それよりもJavascriptパターンを買いなさい
0007デフォルトの名無しさん2013/09/30(月) 12:22:33.53
サイ本なんて買わなくていい
それよりサイを買いなさい
0008デフォルトの名無しさん2013/09/30(月) 15:17:02.86
シロサイ買ってきました
次は何をすればいいですか
0009デフォルトの名無しさん2013/09/30(月) 16:41:56.97
クックブック一冊、手打ちしたらいい思う
0010デフォルトの名無しさん2013/09/30(月) 19:25:33.47
次はキリンだな。動物園の影の人気もの。外せないね
0011デフォルトの名無しさん2013/10/01(火) 01:50:42.38
質問失礼します。
javascriptのcanvas上の矩形内にhtmlを表示したいです。
しかもそのhtmlが貼られた矩形を回転したいです。
可能ならばhtmlを画像化せずに表示したいのですが、可能でしょうか?
よろしくお願いします。
0012デフォルトの名無しさん2013/10/01(火) 03:32:42.30
>>11
canvsでというのは無理だと思う。cssで同じ効果を狙うのは頑張ったら出来るんじゃないかな?
質問は↓の方がいいかも
+ JavaScript の質問用スレッド vol.109 +
http://toro.2ch.net/test/read.cgi/hp/1379772045/
0013112013/10/01(火) 08:47:19.64
>>12
ありがとうございます。
教えていただいた先で聞いてみます。
0014デフォルトの名無しさん2013/10/01(火) 10:23:24.60
C++からjavascriptに移行してきたんだけど
{}でスコープが区切られないとなると、名前の衝突を防ぐには
細かく関数化するのが定石ですかね?
0015デフォルトの名無しさん2013/10/01(火) 12:59:22.21
>>14
function地獄
0016デフォルトの名無しさん2013/10/01(火) 13:32:39.49
(function () {
ょぅι゛ょ
})()
(function () {
ょぅι゛ょ
})()
0017デフォルトの名無しさん2013/10/01(火) 13:41:35.12
functionを ()で括る意味がいまだに分からない
0018デフォルトの名無しさん2013/10/01(火) 15:06:18.69
即時関数だよ。ググレカス
0019デフォルトの名無しさん2013/10/01(火) 16:16:33.56
>>17
function式として解釈させるためだよ
だから括弧じゃなくても !function () {}() でもいい
0020デフォルトの名無しさん2013/10/01(火) 19:23:46.45
いくない!(`ヘ´)
0021デフォルトの名無しさん2013/10/01(火) 19:45:29.44
>>16
書き込んでしばらくしてそれも思いつきました
それってスコープとして有効なんですよね?
0022デフォルトの名無しさん2013/10/01(火) 20:07:30.55
即時関数って言うのね,ググったら何となく分かったよ
戻り値が無いんなら>>19のでもいいんだね
自分の場合は使う事無さそう
0023デフォルトの名無しさん2013/10/01(火) 21:37:01.32
varの代わりにletを使えばブロックスコープになる。
ただし、今はまだ使えないブラウザが生き残ってるから、
ブラウザを指定できる場合か、
サーバーサイドでのみで使うことになる。
0024デフォルトの名無しさん2013/10/01(火) 21:44:16.90
let てBASICかよw
0025デフォルトの名無しさん2013/10/01(火) 21:49:56.39
>>24
その発想はなかった。

lisp, scheme, haskell, python, ml などにもあるから
知っている人にとっては、そんな発想は絶対に浮かばない


あ、分かりやすく言うとお前BASICしか知らんのか、ザコめって
言ってるんだからねw
0026デフォルトの名無しさん2013/10/01(火) 21:55:47.91
ズラズラ言語並べてるけどお前は基本(BASIC)がなってないんだよw
0027デフォルトの名無しさん2013/10/01(火) 21:56:58.46
みなさん、笑うところですよ?(棒)
0028デフォルトの名無しさん2013/10/01(火) 22:04:33.26
HA HA HA HA!
0029デフォルトの名無しさん2013/10/02(水) 00:55:30.09
関数のオーバーヘッドがーっていうのが納得できない。内部で最適化しろよって思う
0030デフォルトの名無しさん2013/10/02(水) 01:02:01.97
その最適化をする時間が、オーバーヘッドなんだろ。
っていうかいきなり何の話だ?
0031デフォルトの名無しさん2013/10/02(水) 02:23:53.51
言葉がスベってて痛々しい
0032デフォルトの名無しさん2013/10/02(水) 03:11:23.92
例えば、var a = new Array(); と var a = []; は同じだけど[]の方が推奨とか
じゃあ内部で完全に同じ処理にすればいいじゃん
という話
0033デフォルトの名無しさん2013/10/02(水) 04:57:04.28
Arrayが隠蔽されてないか確認が必要なんじゃね?
0034デフォルトの名無しさん2013/10/02(水) 07:58:27.62
>>32
new Arrayと[]は同じじゃないぞ。

配列の初期化をするのに[]を使うのが推奨な理由は
new Array(5) を実行してみればわかる。

この答えは[ undefined, undefined, undefined, undefined, undefined] だ。

new Array(5, 6) の答えは [5, 6] なのにな。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array

引数の数で最適化の仕方を変えればいいと思った?

違う。君は速度のことしか頭に無いようだが、
[]が推奨の理由は、Arrayコンストラクに一貫性がなく
勘違いする可能性があるからだよ。

そしてもう一つの理由はArrayコンストラクタは書き換えることが可能だからだ、
Array = function() { ・・・ }
そんなことせんだろうが、出来る以上new Arrayは実行時に処理するしかない。
それに対して[]はコンパイル時に処理する。動的なものはコンパイル時に最適化出来ない。
0035デフォルトの名無しさん2013/10/02(水) 12:04:20.83
backborn.js、、、 難しいな。 javascriptが難しいのか、設計思想が難しいのか、、、 やはり、馬鹿には無理みたい。
0036デフォルトの名無しさん2013/10/02(水) 13:47:24.66
haha, koyatume
0037デフォルトの名無しさん2013/10/02(水) 21:46:57.71
>>35
backbone.js以外のMVCフレームワーク使ったことある?
ないならそれは難しいだろうね
0038デフォルトの名無しさん2013/10/02(水) 21:48:34.61
$ってよく見るけどどういうふうに使われてるの?
なんかライブラリごとに別々の意味があるっぽく見えるんだが
0039デフォルトの名無しさん2013/10/02(水) 22:10:51.83
$はprototype.jsもしくはjQuery、またはその互換ライブラリが
タイプするのが簡単な1文字の関数(クラス・オブジェクト)名として使ってるもの

$を関数名として使うとか一文字とか普通はやるべきではない使い方だけど、
俺的には準標準レベルの汎用ライブラリと言ってもいいものだから許容する。

jQueryにおいては$()を使って、jQueryオブジェクトにラップしたオブジェクトを
入れる変数に$から始める名前をつけるという規約が
オライリーのどれかの本に乗っている。

prototype.jsにおいては、$の仲間として$$や$Fを使用している。

> ライブラリごとに別々の意味があるっぽく見えるんだが
というのはよくわからない。

思い当たるとしたらjQueryは
$(selector) ・・・ セレクタにマッチしたjQueryオブジェクトを返す使い方
$(html) ・・・ HTMLからDOMを生成する使い方
$(function(){...}) ・・・ $(document).ready()の短縮形
$.each等 ・・・ $オブジェクトとしての使い方
などのように引数によって複数の使い方がある。
0040デフォルトの名無しさん2013/10/02(水) 22:18:08.46
>>39
おあ、詳しくありがとうございます
なるほど、とりあえず有名なライブラリのお決まりとして解釈しました
ライブラリごとというのは、アドベのjavascriptでは$オブジェクトがまた別の意味で定義されていたので
そう思った次第でした
0041デフォルトの名無しさん2013/10/02(水) 22:34:10.89
adobeでも使ってるのか?

$はjQuery、_はunderscoreっていうかlodashに
くれてやれw

どうするだけの十分な理由がある。
0042デフォルトの名無しさん2013/10/05(土) 13:48:16.68
github、RubyとMVCの限界を悟りC#とMVVMに全面移行 / オープンソース界に激震
http://engawa.2ch.net/test/read.cgi/poverty/1380941226/
0043デフォルトの名無しさん2013/10/07(月) 02:18:44.37
>>11
SVGの<foreignObject>内にHTMLを埋め込めるからそれを描画する
0044デフォルトの名無しさん2013/10/11(金) 09:37:16.73
質問
htmlドキュメントに動的にelementを加える場合
var elem = document.createElement("div");
var child = document.createElement("a");
...
elem.appendChild(child);
...
などすると思いますが、この子要素の追加がやや大変です
例えば
var elem = document.createXHTML("<div><a href="...">...</a></div>");
などhtml書式を直接入力するような方法はないでしょうか?
0045デフォルトの名無しさん2013/10/11(金) 09:41:42.66
innerHTML
0046デフォルトの名無しさん2013/10/11(金) 09:47:04.60
>>45
ありがとうございます、調べみます
0047デフォルトの名無しさん2013/10/11(金) 09:59:12.89
>>45
var elem = document.createElement("div");
elem.innerHTML = "<a href='...'>...</a>";

できました、ありがとうございます
0048デフォルトの名無しさん2013/10/16(水) 12:02:31.90
asm.jsって重たい処理ではFirefoxで効率が250%、
Chromeでも110%くらいになるのが凄い好感触だけど
軽い処理はFirefoxではオーバーヘッドが凄い大きいのな

Chrome 32.0.1671 と Firefox 27.0 が同環境
↑重い
http://jsperf.com/fib-asm-js/2
http://jsperf.com/fib-asm-js/1
http://jsperf.com/fib-asm-js/3
http://jsperf.com/fib-asm-js/5
http://jsperf.com/fib-asm-js/4
↓軽い

ベンチは沢山のを総合して見ないと本質は見極められないな
あとFirefoxは関数コールや再帰が高速という常識はもう通用しないみたいだ
0049デフォルトの名無しさん2013/10/16(水) 12:31:48.08
効率が250%…

悪くなってんじゃねーかw
0050デフォルトの名無しさん2013/10/16(水) 13:08:13.74
???
0051デフォルトの名無しさん2013/10/17(木) 04:26:43.71
http://wiki.ecmascript.org/doku.php?id=conventions:safe_meta_programming
ここのトリプルバインドテクニックは感動したわ……

var bind = Function.prototype.bind
var uncurryThis = bind.bind(bind.call)

['1','2','3'].map(parseInt) //[1, NaN, NaN]
['1','2','3'].map(uncurryThis(parseInt)) //[0, 1, 2]
0052デフォルトの名無しさん2013/10/17(木) 08:55:54.97
???
0053デフォルトの名無しさん2013/10/17(木) 09:13:27.82
プログラミングが出来ても日本語が不自由なやつが多い
0054デフォルトの名無しさん2013/10/18(金) 19:29:48.84
asm.jsっぽく書くことも総合的になかなか有効みたいだな
http://jsperf.com/fib-asm-js/7
http://jsperf.com/fib-asm-js/8
0055デフォルトの名無しさん2013/10/20(日) 06:08:17.10
>>51
古すぎ。一体いつの話題をしてるのか。

http://stillpedant.hatenablog.com/entry/2012/01/30/011816
0056デフォルトの名無しさん2013/10/20(日) 06:28:51.25
>>51
感動したのはいいが、使い方わかってないじゃん。
馬鹿かお前。parseIntでインデックス番号取り出してどうするんだか。
0057デフォルトの名無しさん2013/10/20(日) 14:11:40.97
なんでforEachってネイティブ関数なのに
糞みたいに遅いの?

http://jsperf.com/jquery-each-vs-each-vs-for-loop/3
0058デフォルトの名無しさん2013/10/20(日) 17:50:53.10
その話はJavaScript質問スレで全く同じように
lodashとの比較としてこの前出たが同一人物か?

lodashは配列の穴なんて気にしないでforloopのように
ただ0から最大インデックスまで回すだけ
ネイティブforEachはin等で要素が存在するか確認する

だから[0,,2,3,,,6,7,,9]みたいなのでは根本的に動作が違う
その仕様差のオーバーヘッドの問題
0059デフォルトの名無しさん2013/10/20(日) 18:25:53.22
なるほど。
実質違うものの動作を比べているわけか。
差が出るのも当然だな。
0060デフォルトの名無しさん2013/10/20(日) 21:18:09.60
> in等で要素が存在するか確認する
これって具体的には何してるの?
0061デフォルトの名無しさん2013/10/20(日) 21:38:24.31
要素が存在するか確認してるんだろ?

これ以上具体的にって
何が聞きたいんだ?
0062デフォルトの名無しさん2013/10/20(日) 21:40:02.31
要素を確認してどうするの
なければ結局undefinedがコールバックに返るのに
0063デフォルトの名無しさん2013/10/21(月) 00:40:18.62
undefinedを引数にコールバックが呼ばれるのと
コールバックが呼ばれないのでは、
動きが全く違うだろ。
0064デフォルトの名無しさん2013/10/21(月) 07:56:22.67
>>58を試せばすぐ分かるようなことをなぜ聞くのか
0065デフォルトの名無しさん2013/10/21(月) 07:59:37.36
[0,,2,3] だと 0,2,3 しか渡らないのに
[0,undefined,2,3] だと 0,undefined,2,3 が渡るのってなんでだっけ?
0066デフォルトの名無しさん2013/10/21(月) 08:30:04.20
undefinedとnullは別ものだから
0067デフォルトの名無しさん2013/10/21(月) 12:37:25.61
javascript側からflashで設定出来る変数の変数名って取得可能ですか?
例えば、ニコニコ動画の動画プレイヤーのコメント入力部分の変数名など
0068デフォルトの名無しさん2013/10/21(月) 12:57:59.19
>>65
11.1.4 Array Initialiser
>
> Array elements may be elided at the beginning, middle or end of the element list. Whenever a comma in the
> element list is not preceded by an AssignmentExpression
> (i.e., a comma at the beginning or after another comma),
> the missing array element contributes to the length of the Array and increases the index of subsequent elements.
> Elided array elements are not defined. If an element is elided at the end of an array,
> that element does not contribute to the length of the Array.

これかな
省略すると length だけ影響を受ける
0069デフォルトの名無しさん2013/10/21(月) 21:54:59.55
>>65

[0,,2,3]
↓
{
0:0,
2:2,
3:3
}

[0,undefined,2,3]
↓
{
0:0,
1:undefined,
2:2,
3:3
}
0070デフォルトの名無しさん2013/10/22(火) 23:25:52.36
nullとundefinedが別々にあることでメリットある?
0071デフォルトの名無しさん2013/10/23(水) 00:23:37.23
データベースのフィールドに値を入れる。
値がある場合、nullを代入する場合、省略された場合
が表現できる。
0072デフォルトの名無しさん2013/10/23(水) 17:13:23.67
以前はundefinedにmatch使ってもerrorにならなかったのにerrorになるようになって
いちいちチェック入れないといけなくなったのが不満
0073デフォルトの名無しさん2013/10/23(水) 18:52:18.21
undefined以前にmatchは文字列型のものだろ何言ってんだこいつ
0074デフォルトの名無しさん2013/10/24(木) 10:35:56.13
>>69
なんでわざわざオブジェクトに変換すんだ?
だから遅いのか
なんでこんな糞みたいな実装を選んだのかも謎
0075デフォルトの名無しさん2013/10/24(木) 21:57:55.88
そもそもjavascriptだと配列⊂オブジェクトじゃないっけ
0076デフォルトの名無しさん2013/10/25(金) 13:57:21.14
わざわざオブジェクト?
何言ってんだか
JavaScriptの配列はlengthをハックした特殊なオブジェクトだろ
それに全くもって遅くねえ
JSエンジンが配列の最適化にどれほど力を入れてると思ってんだ
0077デフォルトの名無しさん2013/10/25(金) 14:54:34.11
なぜそんな言い方しかできないのかしら
0078デフォルトの名無しさん2013/10/25(金) 16:53:37.97
>>77
知りもしないものを糞呼ばわりしてる方が悪いと思うが
0079デフォルトの名無しさん2013/10/26(土) 02:57:10.71
ここはあの殺伐としたふいんき(ryで有名な2ちゃんねるだぞ
半年ろむって刮目して相対しやがれ
0080デフォルトの名無しさん2013/10/26(土) 03:21:36.73
配列がオブジェクトであるくらいは知っておこうぜ……
0081デフォルトの名無しさん2013/10/26(土) 09:30:57.11
はやくES6来ねえかな
0082デフォルトの名無しさん2013/10/28(月) 09:48:16.37
半年後には結構実装されてそう
0083デフォルトの名無しさん2013/10/31(木) 10:31:32.55
個々の記事が全然正しくないと、JS質問スレで教えてもらったのですが、
詳しくは教えてもらえませんでした。
http://compute-taso.blogspot.jp/2013/04/objectcreate.html
少しでもどこが良くてどこが悪いのか教えてもらえませんでしょうか?
0084デフォルトの名無しさん2013/10/31(木) 13:05:37.69
>>83
全て悪い。仕様を読め
0085デフォルトの名無しさん2013/10/31(木) 13:48:52.78
>>84
説明できないのなら無理しなくていいよ
0086デフォルトの名無しさん2013/10/31(木) 13:58:42.56
Object.create って全部のブラウザで使えるの?
0087デフォルトの名無しさん2013/10/31(木) 16:33:52.37
使える
IEは確か9から
0088デフォルトの名無しさん2013/11/06(水) 09:23:19.78
ie6のシェアが増えたというニュースをみましたが
原因は何ですか?
もはやgoogleも対応してないですよね
そんなブラウザで不便を感じないのか
0089デフォルトの名無しさん2013/11/06(水) 15:41:15.85
中国人に聞いて来いよ
0090デフォルトの名無しさん2013/11/06(水) 19:43:56.07
>>89
ちょっと面白いじゃねえか(´・ω・`)
0091デフォルトの名無しさん2013/11/10(日) 13:02:45.23
>>88
元々の統計がいい加減なんではないか
0092デフォルトの名無しさん2013/11/10(日) 13:15:18.39
せやな
0093デフォルトの名無しさん2013/11/10(日) 13:23:28.09
>>88
憶測でデマ流そうとしてるようだけど新機能には対応してないけど検索するのに支障ないくらいには対応してるから
0094デフォルトの名無しさん2013/11/10(日) 22:20:25.29
https://www.dartlang.org/performance/
ついにdart2jsがaltJSとして覚醒しました
0095デフォルトの名無しさん2013/11/14(木) 17:57:13.13
死ねバカwwwwwwwwwwwwwwwwwwwwwwww

死ねwwwwwwwwwwwwwwwwwwwwwwww


死ねwwwwwwwwwwwwwwwwwwwwwwww


死ねwwwwwwwwwwwwwwwwwwwwwwww

ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww

ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww
死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww
死ねコラゴミwwwwwwwwwwwwwwwwww


ゴミwwwwwwwwwゴミwwwwwwwwwwwゴミwwwwwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwww
ゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0096デフォルトの名無しさん2013/11/14(木) 20:42:13.31
PromiseがES6に入ってもうすぐV8にも入りそうだけど
実際どのくらいPromise使って知ってる?
https://chromiumcodereview.appspot.com/71713002/
0097デフォルトの名無しさん2013/11/14(木) 21:12:56.14
新しいAltJS見つけた
http://eleks.github.io/js2js/
0098デフォルトの名無しさん2013/11/16(土) 07:38:56.18
>>97
クソ笑ったw
0099デフォルトの名無しさん2013/11/17(日) 04:57:57.71
https://developer.mozilla.org/ がリニューアルされてなんか微妙
0100デフォルトの名無しさん2013/11/17(日) 11:53:52.73
トップページがちょっと変わっただけじゃん
0101デフォルトの名無しさん2013/11/20(水) 17:16:48.72
MDNにアクセスできなくなってたと思ったんだが
■ このスレッドは過去ログ倉庫に格納されています