トップページ⇒tech
1002コメント375KB

+ JavaScript の質問用スレッド vol.118 + [転載禁止]©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2015/04/22(水) 01:35:08.20ID:TQI/XWNo
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-5のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0002デフォルトの名無しさん2015/04/22(水) 01:41:28.83ID:TQI/XWNo
■質問テンプレート
【環境】OS, 実行環境をバージョンと共に記入してください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■前スレ
+ JavaScript の質問用スレッド vol.117 +
http://peace.2ch.net/test/read.cgi/tech/1404146244/

■過去スレ全集(Web制作)
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■テンプレ案(Web制作)
http://fiddle.jshell.net/fH4cC/167/show/light/

■関連スレ
ECMAScript デス 4
http://peace.2ch.net/test/read.cgi/tech/1325448978/
JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
CSS初心者スレッド=13th=(c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423959729/
Canvasについて語ろう
http://peace.2ch.net/test/read.cgi/hp/1305093769/
0003デフォルトの名無しさん2015/04/22(水) 01:42:40.40ID:TQI/XWNo
■FAQ
http://fiddle.jshell.net/vSqKr/43/show/

■開発者ツール(Developer Tools)の基本的な使い方 (全部は http://fiddle.jshell.net/vSqKr/43/show/#Browser-Developer-Tools )
◆諸注意
- 本説明では Google Chrome の開発者ツールの名称に従います。他ブラウザで使う場合は適宜読み替えて下さい。
- IE9- でコンソールを使うには予め開発者ツールを起動しておく必要があります(開発者ツールを起動しないと console.log() が機能しません)
- Safari はデフォルトで開発者ツールが無効な為、有効に設定する必要があります。
  https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html
◆要素を検証
1. ページ上で右クリックして [要素を検証]
2. [Elements] パネルが開き、対象のDOMノードが選択される(選択対象が目的の要素でなければ [Elements] パネル上で選択し直す)
3. 右側のサイドバーから知りたいステータス名のタブを選択する
  - [Styles] タブ … CSSプロパティの指定値を表示 (※カスケードによって上書きされたプロパティは取り消し線で表示される)
  - [Computed] タブ … CSSプロパティの算出値を表示("font-size: 1em" を指定していても算出後の "*px" で表示される)
  - [Properties] タブ … 選択したDOMノードのプロパティを表示
◆コンソール
1. JavaScript コード上で console.log('Hello, World!'); と入力
2. [Ctrl] + [Shift] + [I] キー(IE は [F12])で開発者ツールを開き、[Console] パネルを開く
3. [Console] パネルに "Hello, World!" と表示される
(※window.alert() は String 型に変換されますが、console.log() は Object 型の中身をそのまま表示してくれます。)
0004デフォルトの名無しさん2015/04/22(水) 01:44:12.20ID:TQI/XWNo
■各種仕様 ( http://fiddle.jshell.net/vSqKr/43/show/#Link も参照 )
◆ Standard ECMA-262
http://bclary.com/2004/11/07/ (ECMAScript 3 HTML版)
https://web.archive.org/web/20140715002617/http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
http://www.ecma-international.org/ecma-262/5.1/ (ECMAScript 5.1 HTML版)
http://tsofthome.appspot.com/ecmascript.html (ECMAScript 5.1 和訳)
http://people.mozilla.org/~jorendorff/es6-draft.html (ECMAScript 6 有志HTML版)
http://kangax.github.io/es5-compat-table/ (ECMAScript 5 compatibility table)
http://kangax.github.io/es5-compat-table/es6/ (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://momdo.s35.xrea.com/web-html-test/spec/WD-html51-20130528/Overview.html (HTML5.1 部分訳)
http://www.hcn.zaq.ne.jp/___/WEB/WebStorage-ja.html (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard (DOM4) 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/uievents/ (UI Events)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-ja.html (CSSOM 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.hcn.zaq.ne.jp/___/WEB/File_API-ja.html (File API 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
https://developer.mozilla.org/ja/docs
◆ MSDN Library
https://msdn.microsoft.com/en-us/library/ie/hh828809 (Internet Explorer API)
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
0005デフォルトの名無しさん2015/04/22(水) 08:35:00.62ID:z+J4CGLI
テンプレ多すぎィ
0006デフォルトの名無しさん2015/04/22(水) 10:26:00.49ID:oUgI0BBb
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなーこたーない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0007デフォルトの名無しさん2015/04/22(水) 16:03:41.91ID:TQI/XWNo
■各種仕様 (続き)
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html

■諸注意
vol.115でlodashを不必要に推奨して啓蒙する行為が多く確認されており、ライブラリ系の質問はvol.116から禁止されました。
vol.115,116ではライブラリ禁止する発言が見られた直後にライブラリを許可する意図で次スレを立てる行為が確認されています。
本スレッドでライブラリ許可を求める発言が確認された場合は不要な争いを避ける為、スルーすることを推奨します。
ライブラリの質問はライブラリスレへ誘導し、誘導行為への反論はスルーしてください。

しかも連投規制食らったまま5個目を忘れてた
0008デフォルトの名無しさん2015/04/22(水) 16:09:06.24ID:iwbaaLY9
>>7
いや、もういらねぇよそんなテンプレ。
誰も読んでないし、読む気もしないし。
0009デフォルトの名無しさん2015/04/22(水) 16:17:58.88ID:oUgI0BBb
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなーこたーない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0010デフォルトの名無しさん2015/04/22(水) 17:00:38.11ID:xopYwg3O
つーかそれライブラリ厨の愉快犯がこっちに立てる前の
HP板にあるスレのテンプレだしな
0011デフォルトの名無しさん2015/04/22(水) 18:00:14.69ID:sdnJBf1e
ここまで有名になってんだなぁ

lodash, あなたが既に使っているJavaScriptライブラリ
http://www.infoq.com/jp/news/2015/04/lodash-utility-library

> JavaScriptユーティリティライブラリのlodashがバージョン3.5に達して,
> npmパッケージリポジトリの中で最も多く参照されるライブラリになった。
> もはや代用品などではなく,信頼できる選択肢のひとつだ。
0012デフォルトの名無しさん2015/04/22(水) 18:22:43.13ID:lQwgm9jn
node.jsとかそんな小さい世界の中で話されても・・
0013デフォルトの名無しさん2015/04/22(水) 18:54:54.84ID:hD+i2F7G
>>11
Web制作板からコピペするならライブラリスレでやればいいのに
0014デフォルトの名無しさん2015/04/23(木) 08:04:33.64ID:MOJZs/rD
>>10
ろくなことしねぇな。ライブラリ馬鹿は。

そんなにオナニー見て欲しいのかね。質問者はそんなもの期待していないのに。
0015デフォルトの名無しさん2015/04/23(木) 11:56:07.65ID:RLLS8SFj
なぜお前が質問者の気持ちを代弁してるんだ?
質問者が何を期待しているかなんかわかるはずがないだろ。
0016デフォルトの名無しさん2015/04/23(木) 12:18:02.71ID:MOJZs/rD
>>15
失せろライブラリ馬鹿。
0017デフォルトの名無しさん2015/04/23(木) 12:35:20.77ID:j3fI+4i+
触んじゃね
0018名無しのプログラマー2015/04/23(木) 20:48:28.22ID:tP06eUm0
JavaScriptってこの先も生き残るかな??
0019デフォルトの名無しさん2015/04/23(木) 20:49:22.72ID:RLLS8SFj
>>16
痛い所つかれたからって
キレルなよw
0020デフォルトの名無しさん2015/04/23(木) 22:39:53.24ID:ggn/ga9m
生き残らせるためにどんどんキメラ化してるからな
人が読めなくても構わないレベルまで落ちてきてるし
0021デフォルトの名無しさん2015/04/23(木) 22:47:06.65ID:o7dMQAWl
そうか?
0022デフォルトの名無しさん2015/04/23(木) 23:40:57.87ID:ggn/ga9m
言語仕様や周辺環境、そして実装の話をごっちゃにしてすまないが
トランスレータはもちろん
asm.jsなどコンパイラも出てきてるだろ
0023デフォルトの名無しさん2015/04/24(金) 08:30:44.51ID:5wjekFJo
>>22
普通は仕様で決まると思うが、実装を出した理由は如何に?
asm.js の普及率はJavaScriptに影響する程のものなのか?
0024デフォルトの名無しさん2015/04/29(水) 01:49:58.38ID:UaqR1ge/
>>16
今はライブラリ馬鹿と言うのか。
0025デフォルトの名無しさん2015/04/29(水) 08:51:50.03ID:AtVl8T9u
>>24
ライブラリ使って勝手に回答する奴を馬鹿以外になんと呼べば良いのか。
質問スレッドに来るような奴らは、そもそも初心者なのであって、ライブラリ
で書いて回答し、自分に酔ってるような

まぬけの三流プログラマ

は馬鹿そのものだろww 
C#で言えば、解答者が質問者無視して、勝手にラムダ式で書いてみたり、
頼みもしないコンストラクタを用意してこう書くべきだなんて言ってるような
もの。

標準で実現できるのだから標準で書くのがこの手のコミュニティの原則だ。
海外でも同じ。なのに2chの専門板はww そりゃ海外から陰湿なオタクの
集まりって揶揄されるわけだ。
0026デフォルトの名無しさん2015/04/29(水) 08:51:58.72ID:X/8/xdqx
Javascriptでスタンドアロンアプリはできますか?
0027デフォルトの名無しさん2015/04/29(水) 09:12:52.25ID:AtVl8T9u
>>26
HTML5 + CSS + JavaScriptでアプリで検索すればいろいろ手段が
出てくるだろうよ。

Visual Studioでも作れるしな。

もはや、ネイティブアプリの時代は終わりを迎えつつあるよ。
0028デフォルトの名無しさん2015/04/29(水) 10:06:13.38ID:k4chRKqa
「2015年4月29日(水) 13:00」という文字列を日付型に変換する方法で何か良い方法あれば教えてください。
自分の頭だと「『年』より前に書かれた文字」「『年』と『月』に挟まれた文字」「『月』と『日』に挟まれた文字」を
抜き出してそれぞれ年月日とみなすみたいなやり方しか思いつかないのですが
もっとスマートな方法ないですかね
0029デフォルトの名無しさん2015/04/29(水) 10:14:34.20ID:AtVl8T9u
>>28
そういう日付の付け方を辞める。

そもそも、表示用とベースになる日付のデータは分けるのが当たり前ですよ。
まさか、その形式でDBなどに格納してるんですか?

プログラミングの基礎がまるでなってませんね。
0030デフォルトの名無しさん2015/04/29(水) 10:25:07.67ID:k4chRKqa
>>29
この文字列は外部から取得するものなので、その前提は変えられないんですよ
0031デフォルトの名無しさん2015/04/29(水) 11:17:08.00ID:240jFMt2
こう言う役に立たない事書いて「俺マジスゲー!」って悦に入ってる可哀想な人多いから気にしない方がいいよ。

普通に正規表現使って分解してDate型作る、正攻法じゃダメなの?
0032デフォルトの名無しさん2015/04/29(水) 11:22:08.63ID:AtVl8T9u
>>31
だから、それがスマートじゃねぇって言ってんだろ。
文章読めない三流が、正攻法とか言ってんじゃねぇよタコw
0033デフォルトの名無しさん2015/04/29(水) 11:32:37.74ID:240jFMt2
>>32
じゃあ貴方がその「スマートな」やり方答えてあげては?
0034デフォルトの名無しさん2015/04/29(水) 11:39:53.21ID:k4chRKqa
>>31
レスありがとう
正規表現で分解、、よく考えたら数値と数値以外で分解すれば良かったんですね
自分が最初に考えてたソースよりはよっぽどシンプルに書けました

var str = "2015年4月29日(水) 13:00";
var arr = str.split(/\D+/);
var dt = new Date(arr[0] + "/" + arr[1] + "/" + arr[2] + " " + arr[3] + ":" + arr[4] + ":00");
console.log(dt); //Wed Apr 29 2015 13:00:00 GMT+0900 (東京 (標準時))
0035デフォルトの名無しさん2015/04/29(水) 11:47:47.47ID:5jNnBy90
>>32
momentjsを使う

http://momentjs.com/

一応これでパースで来た
console.log(moment("2015年4月29日(水) 13:00", 'YYYY年MM月DD日 hh:mm'))
曜日の指定はやらなかったが(なぜか)動いている。

たぶん、水を水曜日としみてなしてちゃんと解析し
不正な文字が入ったらinvalidにするとかちゃんとやるなら
localeかCustomizeの設定が必要になるはず。
http://momentjs.com/docs/#/i18n/
http://momentjs.com/docs/#/customization/
0036デフォルトの名無しさん2015/04/29(水) 13:21:48.68ID:i8bdmTNt
>>34
通りすがりだけど

var str = '2015年4月29日(水) 13:00';
var dt = Date.parse(str.replace(/[年月日]/g,'/').replace(/\([日月火水木金土]\)/,''));
console.log(new Date(dt).toLocaleString());
// 2015/4/29 13:00:00

俺はjavascriptに詳しくないから、細かいところに問題があるかもしれないけど、
見た目動けばいいのならこれでいい。
javascript にはDateTime構造体はなく、変換はお手軽に出来るから、
数値型でもっていた方が取り回ししやすい。

そして>>31の指摘通り、他のjavascriptスレも含めて、雰囲気がおかしい。
0037デフォルトの名無しさん2015/04/29(水) 14:02:41.00ID:i8bdmTNt
>>36 (修正)
日曜日、月曜日だとバグるからこれで。
replaceの順番を入れ替えてある。

var str = '2015年4月29日(水) 13:00';
var dt = Date.parse(str.replace(/\([日月火水木金土]\)/,'').replace(/[年月日]/g,'/'));
console.log(new Date(dt).toLocaleString());
// 2015/4/29 13:00:00
0038デフォルトの名無しさん2015/04/29(水) 17:13:19.14ID:ei5YAMam
日本語WindowsのJScriptでtoLocaleStringは年月日という文字で区切られるのが普通だから意味がない。
0039デフォルトの名無しさん2015/04/29(水) 17:26:46.67ID:ei5YAMam
確実に yyyy/MM/dd にしておくのが良い。
つまり月日は必ず0先行2桁で。
日時属性があるデータなんて少なからぬ場面でCSV化するだろう。後でADOに処理させる時にデータ型は文字列オンリーなので、ソートに支障なきよう桁を揃えておくのが定石かと思う。

あと、おまえら正規表現がオリジナルすぎてびっくり。
日時なんて、ごくごく簡単に、match(/\d+/g) の戻り値の配列でやるんじゃねえの?
0040デフォルトの名無しさん2015/04/29(水) 18:23:52.12ID:OOEft19h
質問者は>>34で解決したと言っているけど、今は何が論点なの?
0041デフォルトの名無しさん2015/04/29(水) 18:47:25.04ID:5jNnBy90
より良い方法は何か?だろ?

>>39
> あと、おまえら正規表現がオリジナルすぎてびっくり。
> 日時なんて、ごくごく簡単に、match(/\d+/g) の戻り値の配列でやるんじゃねえの?

それはお前オリジナルだろ?

違うというのなら、オリジナルではないという証拠を書いてくれ
0042質問2015/04/30(木) 16:54:41.94ID:YotAoLtT
訪問したWebページのinput要素を、自分の書いたスクリプトで操作する方法はありますか?

Webページ側で用意されているたくさんのフォームに、csvなどから一括で値を入力したいのです
できればラジオボタンなども操作したいため、スクリプトの形で記述できると助かります
0043デフォルトの名無しさん2015/04/30(木) 17:07:23.85ID:bhA6qPWK
ユーザスクリプト
0044質問2015/04/30(木) 17:26:16.95ID:YotAoLtT
ありがとうございます!

やってみます
0045デフォルトの名無しさん2015/05/01(金) 21:03:56.08ID:k6ZOfYKO
javascriptの学習のため、Windows8.1で他の言語の学習でも使っているVisual Studioをそのまま使おうと思い、
ttp://neue.cc/2010/05/24_260.html
を参考にファイル→新規作成→Webサイト→ASP.NET 空のWebサイトを選び、
ソリューションを右クリックから新しい項目の追加でHTMLページを追加しました。
とりあえずそのままデバッグでHTMLのページが表示されるはずだと思い、Internet Explorerを選択してデバッグを開始しましたが以下のエラーが出ます。

>HTTP エラー 403.14 - Forbidden
>
>Web サーバーは、このディレクトリの内容の一覧を表示しないように構成されています。

IEの、「スクリプトのデバッグを使用しない」のチェックは外してあります。
アドレスがhttp://localhost:53466/になっているので、サーバーを動かしていることが前提なのでしょうか?
でもサーバーを動かすにしても該当ディレクトリに置く必要があるはずだし、
どこかで大きな間違いをしている気がするんですが・・・
0046デフォルトの名無しさん2015/05/01(金) 22:02:13.15ID:k6ZOfYKO
うーん、IIS Expressが自動で起動しているようだけどだめだ
コントロールパネルのプログラムと機能からIISを有効化したらlocalhostが表示される(バージョン表示はない)
だけどvisual studio 2013のデバッグは同じエラーが表示されたままだ
0047デフォルトの名無しさん2015/05/01(金) 22:21:46.13ID:k6ZOfYKO
自己解決しました
新しい項目の追加で右クリックする場所が間違っていたようです
0048デフォルトの名無しさん2015/05/02(土) 09:04:15.48ID:pz2OiV6C
JS全然関係ないけどまあ解決してよかったな
0049デフォルトの名無しさん2015/05/02(土) 13:34:21.30ID:eE6530td
Win10に備えて俺も始めとくかな
0050デフォルトの名無しさん2015/05/15(金) 13:09:24.27ID:tYsnvpej
Javascriptでwindowsプログラミングが本当にできるのだろうか
C++やC#じゃないとだめなこともあるのかな
0051デフォルトの名無しさん2015/05/15(金) 13:29:34.44ID:WcwFSYk5
JScript.netやnode.jsなら出来るんじゃね
0052デフォルトの名無しさん2015/05/15(金) 14:16:51.26ID:B4UGt06z
nodejsでは苦しいと思われる。
該当する構造体や .dll について隅々まで精読して調べて正しく動作させるまで慣れ次第で数時間から数週間かかるだろうな。
つうかこんな普通の手順が通用するかどうかさえ怪しい。
元も子もない話になるがvc++使えって結論になる。
0053デフォルトの名無しさん2015/05/15(金) 14:45:48.66ID:Itot55/0
今ならNode-WebkitやElectron、ManifoldJS使うのが丸いんじゃない
0054デフォルトの名無しさん2015/05/15(金) 15:15:46.81ID:R8v75Gbn
JavaScriptについて質問します。
Webページのスクロールバーを固定するスクリプトをこのページ(http://allabout.co.jp/gm/gc/446230/)を参考にして作ったのですが、
「本文のところが隠れて見えない場合がある」と指摘されたので、
ボタンを押せばスクロールバーの固定を解除できるようにしたいと考えています。
しかし、ネットで調べたのですが、「押して実行する」ならいくつもあるのですが、
押して停止や無効化させるというのは見つかりませんでした。
どなたかボタンひとつで有効無効を切り替えるスイッチを配置する方法を教えていただけないでしょうか?
よろしくお願いします。
下記が使用しているスクリプトと実行箇所の内容です。
0055デフォルトの名無しさん2015/05/15(金) 15:16:34.83ID:R8v75Gbn
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
// ページの読み込みが完了してから実行
$(function() {
// 途中から固定したいボックスの情報を得る
var navBox = $("#fixedNavi");
var navOst = navBox.offset().top;
// スクロールされた際に実行
$(window).scroll( function() {
// 現在のスクロール位置と、固定したいボックスの位置を比較
if( $(window).scrollTop() > navOst ) {
// 固定用のclassを付加
navBox.addClass("fixBox");
}
else {
// 固定用のclassを削除
navBox.removeClass("fixBox");
}
});

});
</script>

<div id="fixedNavi">
〜サイドメニュー〜
</div>
0056デフォルトの名無しさん2015/05/15(金) 15:26:44.47ID:c+bvCC5H
C#やVB.Netで出来てJscript.NETで出来ない、サポートされてないってことは割とあるな
置いていかれてる感じ
0057デフォルトの名無しさん2015/05/15(金) 15:33:17.91ID:c+bvCC5H
コード書けない環境なので考え方だけ
大域変数 var scrollEnable = true; を設け、ボタンを押すとそれがfalse/trueと逐次反転するようにする
scrollTopのif文に && !scrollEnable とでも追加
合わせてボタンを押した際にclassの追加、削除もやると良し
0058デフォルトの名無しさん2015/05/15(金) 15:40:20.89ID:Itot55/0
横から>>57に補足すると、要は「押して(固定のトグルを)実行する」ものを書けばいい
「押して実行する」もののサンプルがいくつもあるならその辺は大丈夫だよね
次からはなるべくテンプレも読んでね

JavaScript ライブラリ総合質問所 vol.4
http://peace.2ch.net/test/read.cgi/hp/1400834117/
0059デフォルトの名無しさん2015/05/16(土) 01:39:13.60ID:+UC07Y5W
>>57はあまり良くないので訂正する。

その前に、>>55のコードは無駄があるので先に綺麗にしておく。

$(function() {
  $(window).scroll( function() {
    var enabled = $(this).scrollTop() > $("#fixedNavi").top;
    navBox.toggleClass("fixBox", enabled);
  }
});

まず見た目の話なので、クラスを使う。

ボタンが押された時に、bodyにクラスをつけたり外したりする。

$('#btn').click(function() {
  $('body').toggleClass('scroll-bar-fixed');
});

fixBoxクラスの有無でCSSでスクロールバーの固定を行っていると思うが、
あとはCSSをちょこっと書き換えて、

fixBox { 省略 } // スクロールバーの固定解除モード
scroll-bar-fixed fixBox { 省略 } // スクロールバーの固定モード

のような感じで制御できる。


重要なのは、JavaScriptではクラスを使った"モード"の変移のみを行い、
それによって変わる見た目は、CSSを使う言うこと。
これをしないとJavaScriptのコードがすぐに複雑になってしまう。
0060デフォルトの名無しさん2015/05/16(土) 01:41:23.31ID:+UC07Y5W
あ、navBox変数が無いw
まあ適当に修正してくれ。
0061デフォルトの名無しさん2015/05/16(土) 01:43:39.73ID:+UC07Y5W
もう一箇所ミスってたんで、書きなおした。

$(function() {
  $(window).scroll( function() {
    var navBox = $("#fixedNavi");
    var enabled = $(this).scrollTop() > navBox.offset().top;
    navBox.toggleClass("fixBox", enabled);
  }
});
0062デフォルトの名無しさん2015/05/16(土) 10:56:36.61ID:l5FsiBnw
お返事いただき本当にありがとうございました。
今朝書き込みを見つけ、早速辞書を引きつつ試行錯誤してみたのですが、
JavaScriptが素人な私の力不足のため上手い具合に動いてくれませんでした。
せっかくお返事を頂いたのに申し訳な気持ちでいっぱいです。

テンプレートのCSSが

.fixBox {
position: fixed;
top: 0px;
}

こんな感じでお返事内容に合わせて書き直すだけなので多分CSSの方は問題無いと思います。
なので、JavaScript本体のところに問題があると思っているのですがどこがどう間違っているのかわからな状態です。
本当にすいません。
0063デフォルトの名無しさん2015/05/16(土) 13:07:55.59ID:+UC07Y5W
動くかどうかは知らん

$(function() {
  var navBox = $("#fixedNavi");
  var navTop = navBox.offset().top;
  $(window).scroll(function() {
    var enabled = $(this).scrollTop() > navTop;
    navBox.toggleClass("fixBox", enabled);
  });
  $('#btn').click(function() {
    $('body').toggleClass('scroll-bar-fixed');
  });
});

.scroll-bar-fixed .fixBox {
  position: fixed;
  top: 0px;
}

<div id="fixedNavi">
〜サイドメニュー〜
</div>

<button id="btn">ボタン</button>
0064デフォルトの名無しさん2015/05/16(土) 15:34:34.10ID:TZWgpp9h
もうスマホはJSオフ推奨だな。
jQueryソースコードもjQueryユーザーコードも恐るべき循環お気楽コードだから、特にへたったバッテリーの非最新スマホにはブラクラ以上の脅威だから。
どうしてjQuery厨は全く不要な循環ばかり書くのだろうか。悪意を持って嫌がらせをしているとしか考えられない。
0065デフォルトの名無しさん2015/05/16(土) 15:40:22.19ID:P7OgM9Ju
はいはいお薬出しておきますね
0066デフォルトの名無しさん2015/05/16(土) 20:07:10.46ID:l5FsiBnw
>>63

何から何まですみません。
上手く動いてくれています。
ありがとうございました。
失礼致します。
本当にありがとうございました。
0067デフォルトの名無しさん2015/05/17(日) 03:21:54.35ID:1BuEq8g0
window.location("http://...";)

これがIEだとページジャンプするのにクロムだとしないのですが、仕様ですか?

というか最近JavaScriptの学習を始めて、やたらIEと他のブラウザで動作が違うような
ことがあるみたいで、こんなんでマルチブラウザ対応のコーディングなんてできるのかと
心配になってきましたが……それほど心配することでもないのですか?
0068デフォルトの名無しさん2015/05/17(日) 05:58:33.45ID:6hxjNt+o
>>67
マルチブラウザ対応で作るなら、jQuery、lodashあたりを使ったほうがいいよ。
フレームワークを使うって手もあるけど、
こっちは新しいブラウザしか対応していないことが多い。

で、IEと他のブラウザで動作が違う?
最新のバージョンであれば殆ど変わらないと思うが?

jQuery、lodash使えっていうのは、古いブラウザや
特定のブラウザにあるマイナーなバグ対策。
0069デフォルトの名無しさん2015/05/17(日) 06:33:20.08ID:8cwJfqPk
>>67
window.location は関数ではありません。
仕様を知りたいなら仕様書を読みましょう。
https://html.spec.whatwg.org/multipage/browsers.html#the-location-interface

> こんなんでマルチブラウザ対応のコーディングなんてできるのかと
仕様書を読んで仕様通りにコーディングすればそれ程、困ることはありません。
仕様の実装度合いに多少差異はありますが、調べれば分かるないようですし、慣れれば大体覚えます。
0070デフォルトの名無しさん2015/05/17(日) 06:33:38.14ID:1BuEq8g0
>>68
レスありがとうございます。
jQueryはやっぱり必須なんですかね。

ちなみに他に気づいたのだと、IEの場合document.linksがうまくいきませんでしたね。
getElementById使えば問題ないんですけどね。
0071デフォルトの名無しさん2015/05/17(日) 06:37:13.69ID:1BuEq8g0
>>69
レスありがとうございます。
杞憂のようでしたね。
0072デフォルトの名無しさん2015/05/17(日) 07:09:44.53ID:8cwJfqPk
>>70
> IEの場合document.linksがうまくいきませんでしたね。
IE のバージョンいくつで document.links のどんな機能が期待通りに動作しなかったのでしょう?
getElementById と比較するところから想像するに document.links.namedItem なんですかね。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-7068919
http://jsfiddle.net/atqLjqny/2/
0073デフォルトの名無しさん2015/05/17(日) 07:21:32.05ID:1BuEq8g0
>>72
<a id="hoge" href="http://google.com";> ... </a>
このようなタグからURLを抜き出すのに

url = document.links.hoge.href
はIE11だとうまくいきませんでした。クロムはできました。

代わりに
url = document.getElementById("hoge").href
にすると、IE11を含めた主要ブラウザで動くようです。
0074デフォルトの名無しさん2015/05/17(日) 07:57:13.51ID:8cwJfqPk
>>70
> url = document.links.hoge.href はIE11だとうまくいきませんでした。クロムはできました。
>>72で出した DOM Level 2 HTML の仕様書は読んでいるでしょうか?
その仕様は DOM Level 2 HTML では策定されていません。
HTMLCollection[name] による参照は DOM 4 で標準化されました。
比較的新しい仕様である DOM 4 を実装していないブラウザでは機能しません。
http://www.w3.org/TR/domcore/#interface-htmlcollection

つまり、DOM Level 2 HTML の範囲内で実装できる document.links.namedItem を提案しているのですが、それでも動作しませんか?

> url = document.getElementById("hoge").href にすると、IE11を含めた主要ブラウザで動くようです。
さすがに getElementById は DOM Level 2 規定で古くからある仕様なので動作します。
http://www.y-adagio.com/public/standards/tr_dom2_core/core.html#i-Document
仕様には古い仕様と新しい仕様があり、新しい仕様は古いブラウザでは動作しません。
仕様の勧告日、各ブラウザの仕様の実装度合いを予め調べておくことが重要です。
それと仕様書通りに書くことですね。
ブラウザの独自拡張コードを使ったら全てのブラウザで動作しませんから。
0075デフォルトの名無しさん2015/05/17(日) 08:33:40.08ID:1BuEq8g0
>>74
namedItemを使うとIE11でもいけました。
勉強になりました、どうもです。
0076デフォルトの名無しさん2015/05/17(日) 09:43:31.86ID:CzRQDZeG
>>75
↓こういう本もおすすめ。
JavaScriptパターン ―優れたアプリケーションのための作法
Stoyan Stefanov (著), 豊福 剛 (翻訳)

英語版なら、電子書籍が安い。
0077デフォルトの名無しさん2015/05/17(日) 10:24:27.29ID:1BuEq8g0
>>76
どうもです。
オライリーには他にも開眼やGood Partsなど、良い本が揃ってるようですね。
今読んでるサイ本を終えたら、物色してみます。
0078デフォルトの名無しさん2015/05/17(日) 13:58:09.95ID:6hxjNt+o
>>70
わからないからって適当なサイトをググって
それをコピペしてるでしょ?

残念ながら、古い書き方をしているページがたくさんあって参考にならないよ。
>>74みたいにDOMのバージョンまで考えて書いてるページが少ない。

標準の書き方だけをしていれば、たしかに最近のブラウザでは
きちんと動くんだけど、なにが標準か分からない。
標準が分かったとしても、それをブラウザが実装しているかどうか調べないといけない。

そこでjQueryなんだよ。jQueryならブラウザのバージョンの違いはほとんど無視できる。
jQueryのバージョンを気にしないといけないことが少しだけあるが、
IE6以降のブラウザで同じように動くことが保証されている。

あと多くの場合jQueryを使ったほうが短くなる。

url = document.links.hoge.href
url = $('#hoge').prop('href')

その書き方はDOM標準なのか? 各ブラウザの実装がどうなっているか?を
調べるのとjQueryを勉強するを比べたら、jQueryを勉強するほうが
はるかにメリットが多いよ。
0079デフォルトの名無しさん2015/05/17(日) 14:05:25.39ID:6hxjNt+o
>>77
jQueryだとこれがいいよ。

コアjQuery+プラグイン/jQuery UI 開発実践技法
http://www.amazon.co.jp/dp/4798124281/

あとjQueryの本ではないがこれも良い。

JavaScriptで学ぶ関数型プログラミング
http://www.amazon.co.jp/dp/4873116600

jQueryもlodash(Underscore)も関数型プログラミングを
取り入れたライブラリでね。これを使うと短いコーディングで
わかりやすくて不具合が起きにくいコードを書くことができる。
0080デフォルトの名無しさん2015/05/17(日) 15:18:03.01ID:aj4oIMqk
関数型プログラミングの定義が無いようなものだから言うた者勝ちだが、とりあえずjQueryもJSも関数型ではない。
たとえば$はhaskellにインスパイアされて云々などとほざく馬鹿がたまにいるがリアルタイムで見てきた者たちはそれが後付けの妄言だと知っている。

JSを何かにカテゴライズしたければOOPとするのがベストだ。

JSで関数型風に糞コードを書いたら読み難くなるだけ。
俺がそのオライリーの本が命令型に見えるほど狂ったコードを書いて引き継いだら低学歴の後継者は全く理解できずにjQueryで作り直していた。かなり慣れるまでとにかく分かりにくいものらしいから気取って関数型風に書くのは有害だろうな。
0081デフォルトの名無しさん2015/05/17(日) 16:03:18.56ID:aj4oIMqk
jQuery厨は馬鹿だからそれが関数型風どころか
逆に関数型風を極力排除する努力の成果物であるという寒々しい現実を
何らかの代表的な例で示してやらなきゃ自力では解決出来ないだろうな。
jQuery厨はEventTargetを起点にMSXMLのnextNode()風な探索をしないよな。
そもそも脳足りんだから出来ないから。
そもそもEventListener外部にそれ用の「素晴らしい」メソッドか何かが提供してあるから。
jQuery厨は馬鹿なのでそれら理由は全て当てはまるだろう。
例えばチェックボックスで意思確認をして後続するサブミットボタンを有効にしたい時、
狂った関数型風にそのボタンへの参照値をidempotentに書けばこうなる。
(f => ((b = n => !n ? null : n.nextElementSibling || b(n.parentNode))
=> ((a = n => !n ? null : n.firstElementChild || n.nextElementSibling || b(n.parentNode))
=> ((nn = n => !n ? null : f(n) ? n : nn(a(n))) => nn)())())())(n => n.type == 'submit')(e.target)
分かり易くないというか分かり難い、慣れて暗記してしまっている作者の俺を除いて。
繰り返す。こういうのを排除した成果物がjQueryだ。CSSセレクターを読み書き出来る知能までしか要求しないから誰でも使える。
0082デフォルトの名無しさん2015/05/17(日) 17:17:57.04ID:X736iQ2v
なるほど、共同開発という面でもjQueryは優れているんだね。
詳しい解説ありがとう。
0083デフォルトの名無しさん2015/05/17(日) 18:16:12.96ID:6hxjNt+o
>>80
なんかファビョてるなw

jQueryと関数型プログラミングの関係はググればすぐわかるから
レスする必要はないとして、どうでもいいところにツッコミを入れようw

> JSで関数型風に糞コードを書いたら読み難くなるだけ。
これ、実は詭弁のテクニックって気づいた?

どこがと言うと、わざわざ「糞コード」と書いてある所。

どんな言語をつかっても良いコードと糞コード両方かける。
だから

JSで関数型風に良いコードをかけるのに、
糞コードと限定し、糞コード=糞なコード・・・反論できない(当たり前)
という理屈を持ちだして
JSで関数型風に書いたら読みにくくなるとミスリードさせている。

読みにくくなる原因は糞コードであって、JSで関数型風とは無関係なんだよ。
0084デフォルトの名無しさん2015/05/17(日) 18:24:46.36ID:6hxjNt+o
JavaScriptだけでも関数型プログラミングは出来るんだよ。

>>81のコードが見にくいのは、>>81が言っているように

> 「素晴らしい」メソッドか

が、JavaScriptだけでは提供されていないから。

jQueryを使うことで、それが提供されるから
関数型プログラミングでもわかりやすくなる。

という話なのさ。
0085デフォルトの名無しさん2015/05/17(日) 18:29:05.43ID:6hxjNt+o
> が、JavaScriptだけでは提供されていないから。

一応補足しておこう。JavaScriptにもわずかに提供されている。
forEachメソッドなどがそう。
だけど本当にわずかだし、DOMに関しては提供されていない。

DOMにはforEachメソッドがないから、JavaScriptのforEachを間借りすることになる。
その分コードは見難くなるわけよ。

本来JavaScriptには関数型プログラミングをする能力はあったんだが、
それを活かすためのメソッドが用意されていなかった。

jQueryやlodashはそのメソッドを完備することで、
はれてJavaScriptで関数型言語の良質なコードを書けるようになった。
0086デフォルトの名無しさん2015/05/17(日) 20:54:47.89ID:Cm/UZXwW
こちらに来るとjQuery推しが一人しかいないことがよくわかりますね。
0087デフォルトの名無しさん2015/05/17(日) 21:04:27.33ID:0Mm3LM9e
目を合わせちゃダメだぞ
0088デフォルトの名無しさん2015/05/18(月) 05:47:17.18ID:ezOKhhiH
はい、>>86には目を合わせません
0089デフォルトの名無しさん2015/05/18(月) 06:55:12.35ID:UwQvP8mG
意識的に誤読して反論する辺りが相当な負けず嫌いだね
0090デフォルトの名無しさん2015/05/18(月) 11:33:11.93ID:xWeJ7/Lw
なぜ誤読とわかるのか?
ID変えての自作自演の可能性が高いですなw
0091デフォルトの名無しさん2015/05/19(火) 06:53:30.28ID:YaWtxR1V
自作自演の根拠薄弱だな
0092デフォルトの名無しさん2015/05/20(水) 03:30:39.10ID:EuT6yuDO
js始めたいんだけどフレームワークいっぱいでどれ使えばいいのか分からんす
リッチなwebページを作れるようになりたいんだが、どのフレームワークだと入りやすいかな?
あと分かり易い入門書があれば教えて欲しい、オライリーでおk?
0093デフォルトの名無しさん2015/05/20(水) 04:41:13.12ID:Lg9Gjfeh
とりあえず無しでやれ
0094デフォルトの名無しさん2015/05/20(水) 08:16:36.28ID:7dq/qgPN
既存のフレームワークに頼ると、応用が利かなくなる気がするな。
それにフレームワーク覚えるって、また新しい言語勉強するような感覚でめんどいし。
自分でフレームワーク作れるくらいになりたい。
PHPでは作った。
0095デフォルトの名無しさん2015/05/20(水) 15:19:04.19ID:UKJ+96Qh
オライリーのは何か他に手続き型現語を習得してる奴向け
してるならオススメ
0096デフォルトの名無しさん2015/05/20(水) 22:56:17.11ID:Iqf+D3Jd
>>92だけど
一応javaとCはそれなりに扱える
jsは苦手意識があってなんかなぁ
フレームワークなしでやっていく方がいいのk
0097デフォルトの名無しさん2015/05/23(土) 00:08:30.89ID:YHGtlbT3
縦長のキャンバスを90度回転させると右上が(0,0)になると思うんだけど通常通り左上から描画する方法ない?
0098デフォルトの名無しさん2015/05/24(日) 09:50:03.68ID:gEBAoLvh
もう一個横長の作って中身コピーすりゃいいじゃん
0099デフォルトの名無しさん2015/05/28(木) 12:58:47.15ID:mGxcoe2E
>>63でクラスを無効にするのは上手くいったが、
ちょっとでもスクロールすると元に戻ってしまう。
$(window).scroll(function());の部分を無効化させたいのだが、
いい方法はあるだろうか?
$(window).scroll(function());をifで囲ってボタンで操作するというのも考えたが
書き方が悪いせいかうまく動かない・・・
きっとこんな感じなんだと思うが、もうわかんない・・・

$(function() {
  var navBox = $("#fixedNavi");
  var navTop = navBox.offset().top;
  var swicth = ture;

  if文で囲う・ボタンが押されたら条件をfalseにして無効化する---------
  $(window).scroll(function() {
    var enabled = $(this).scrollTop() > navTop;
    navBox.toggleClass("fixBox", enabled);
  });
  if文終わり-------------

  $('#btn').click(function() {
    if文を無効化するためswicthにfalseを代入する
  });
});
0100デフォルトの名無しさん2015/06/02(火) 23:01:43.46ID:zeYZnMnE
jQueryではなくposition:stickyとポリフィルを使い、ボタンでstickyをtoggleすればいい
0101デフォルトの名無しさん2015/06/03(水) 08:43:19.37ID:tNzh/NJ7
>>100
具体的なコードを書いてください。
実際に動くコードを。
0102デフォルトの名無しさん2015/06/03(水) 21:39:23.96ID:9mg+Lksd
なんで教えてもらう側が上から目線やねん
0103デフォルトの名無しさん2015/06/03(水) 21:58:08.76ID:tNzh/NJ7
>>102
いいえ、ただの自治厨ですw

俺は質問者じゃない。
そういうだめなコード(書けばわかる)を
広めるんじゃないって話をしてるだけ。
0104デフォルトの名無しさん2015/06/04(木) 01:29:28.11ID:moGL9hHI
一枚の地図の画像に地方ごとにオンマウスで別の場所に画像がでるようにしたいんですがどうやればいいでしょうか?
0105デフォルトの名無しさん2015/06/04(木) 05:11:44.65ID:p4ZTcGym
>>103
具体的に駄目な理由を指摘したほうが多くの為になるんじゃないか?

>>100の問題点は「stickyをpolyfillでtoggleする手段をどうするか」って事ぐらいか
<style>#hoge { position: sticky; }</style> にでもしてpolyfillでstyle要素のノード監視をしておけば実装できそうだな
0106デフォルトの名無しさん2015/06/04(木) 13:55:43.46ID:3Pw+dCJh
他のJSスレ見りゃわかるがそれは>>7の人なんで触らんが吉
0107デフォルトの名無しさん2015/06/04(木) 14:43:23.18ID:6FSffG0u
>>103
なおさら使いもんにならねーゴミだな
0108デフォルトの名無しさん2015/06/04(木) 22:39:26.61ID:sc3w8p67
HTMLの質問か微妙だけどここで聞かせてくれ。
scriptタグで外部のjsファイルを読み込むとき、ベースとなるURLはどうなるの?何か条件で変わったりする?
0109デフォルトの名無しさん2015/06/04(木) 23:03:15.45ID:PemmKaGK
>>108
ここはJavaScriptのスレ。
すれ違いだ
0110デフォルトの名無しさん2015/06/05(金) 00:18:31.10ID:rGJKLW3d
>>104
マウスイベント内のカーソル座標で判断してもいいし
HTMLのMAP要素からオンマウスしたり、そもそも画像じゃなくてSVGにしたり
こういうのはWeb制作板で聞いた方がいい

>>108
どこから読み込んでも実行したサイトのやつになる
0111デフォルトの名無しさん2015/06/05(金) 19:42:46.35ID:xp4LuS6y
それを利用してクロスドメイン問題を回避するjsonpがあるわけだ
0112デフォルトの名無しさん2015/06/05(金) 22:08:57.54ID:2Cuhz6TK
>>110
ごめん、文章がおかしかったかも。
デフォルトで読むディレクトリってどこになるか気になってる。
というのも、(アプリのホームディレクトリ)/public/jsのような構造にしてたらpublicから読み込まれてて疑問に感じたのがはじまりなんだ。(普通は読み込む.htmlファイルのディレクトリからの相対パスを指定すべきじゃないのかと思ってた)
0113デフォルトの名無しさん2015/06/06(土) 10:45:03.29ID:hveEv/M1
javascriptでフォーム入力して送信後にも操作を続けるにはどうすればいいですか?
0114デフォルトの名無しさん2015/06/06(土) 11:20:29.40ID:KMNvqcU5
>>113
ajaxでpostじゃ駄目?
0115デフォルトの名無しさん2015/06/06(土) 20:04:42.59ID:d4WohiIR
隠したiframeでこっそり送信
0116デフォルトの名無しさん2015/06/07(日) 00:06:08.01ID:CEtgcriZ
それはじぶんでページを記述する場合ですよね
ある既存のサイトへの入力を自動化するためにjavascriptを使いたくて
けれど送信したらページが変わってjavascriptが終了してしまって
どうにかならないものかなって
0117デフォルトの名無しさん2015/06/07(日) 00:07:30.61ID:yTv0X04Z
ブックマークレットでAjax使えばええやん
0118デフォルトの名無しさん2015/06/07(日) 06:43:09.33ID:ohZIkVP1
>>116
そんなん普通に出来たらXSSし放題だし
Greasemonkeyとか特権ページ使う

というかお前らWeb関連の質問は板違いだぞ?
http://peace.2ch.net/test/read.cgi/hp/1429873274/l50
0119デフォルトの名無しさん2015/06/07(日) 06:49:43.73ID:ohZIkVP1
間違えたXSSじゃなくてXSRFだわ
0120デフォルトの名無しさん2015/06/07(日) 10:51:06.68ID:kIG4ohLy
bookmarkletで弄れ

>>118
むしろこのスレが板違いなんだが
0121デフォルトの名無しさん2015/06/08(月) 02:28:15.78ID:Ipeb2BnC
元は荒らしがセルフ隔離されるために立てたスレだもんな
0122デフォルトの名無しさん2015/06/10(水) 08:45:25.83ID:j5xihkfR
文字列をクオートでくくった文字列に変換したい
文字列の中にあるクオートはエスケープしたい
すでにエスケープされてるクオートはエスケープしたくない
どうしたらいい?
正規表現で後読みができればできそうな気がしたんだけど
0123デフォルトの名無しさん2015/06/10(水) 09:12:41.84ID:7XQM9Exq
正規表現の話題はここじゃない
0124デフォルトの名無しさん2015/06/10(水) 09:29:27.20ID:mjuiu2VR
まあJavaScriptはかじってるけと正規表現はわからない人がいきがるスレだから
0125デフォルトの名無しさん2015/06/10(水) 09:53:16.47ID:2Yur50Zd
>>122
既に文字列としてあるなら
1.replaceでエスケープされてないクオートをエスケープ
2.クオート+string+クオート
でいけんじゃない
0126デフォルトの名無しさん2015/06/10(水) 17:54:58.75ID:B813HKfZ
>>122
「\'」も「'」も、「\'」に置換する、と考えればできる
var str = "I'm home. I\\'m home.";
str = "'" + str.replace(/\\?'/g, "\\'") + "'";
console.log(str); // "'I\'m home. I\'m home.'"

ところで用途は知らんが、"\n"⇒"\\n"とか"\r"⇒"\\r"とかは変換しなくていいのか?
全部エスケープしてちゃんとした文字列リテラルにしたいなら、JSON.stringify( str ) を使うべし
0127デフォルトの名無しさん2015/06/13(土) 15:53:55.49ID:l9QW3Z+P
これ、エスケープされたバックスラッシュの後ろのクオートはエスケープされるん?
0128デフォルトの名無しさん2015/06/13(土) 19:05:05.27ID:PpDCr+eJ
>>127
試せばすぐにわかるのではなくて?
0129デフォルトの名無しさん2015/06/21(日) 23:20:38.80ID:1kI6SICX
こんな関数
function fn(a, b){ ... };
が有ったとして、呼び出しを
fn(a='あああ', b=777);
みたいな書き方って出来ませんか?
0130デフォルトの名無しさん2015/06/22(月) 00:37:55.91ID:Lv8A7rmg
呼び出す側で引数の名前を指定して渡したいってことならできないな
fn({a:'あああ', b:777}) みたいにするとか
0131デフォルトの名無しさん2015/06/24(水) 11:38:32.35ID:pGWNxZlD
こんにちは、初心者ですがちょっとお聞きしたいことが。
自作や他作のGreasemonkeyスクリプトで、
firefoxのコンソールに
「警告: 関数外部での return は非推奨なので、いつかは使えなくなる可能性があります。」
と吐かれることがあるのですが、その法則がよく分かりません。
どういう書きかたが非推奨なのか、ご教授いただけませんか?
0132デフォルトの名無しさん2015/06/24(水) 13:04:40.78ID:psBp8yd8
Greasemonkey固有のワーニングメッセージのようだな
ものすごく大雑把に言うと

(function(w){
コード
})(window);

こういう形式以外で書くとそのワーニングが出る
0133デフォルトの名無しさん2015/06/24(水) 13:23:56.45ID:uF/DasIW
関数の外でexitの代わりにreturnを使うなって事だな
0134デフォルトの名無しさん2015/06/24(水) 15:12:36.34ID:pGWNxZlD
>>132>>133
なるほど、自分でも弄ってみて何となく分かりました。
Greasemonkeyではブロックの一番外側、
囲まれていない部分でreturnするなってことですね。
お早い回答ありがとうございました。
0135デフォルトの名無しさん2015/06/24(水) 21:40:15.14ID:uopmDJvI
Greasemonkey以外でも、一体どこにreturnするんだよ?って感じではあるが…
0136デフォルトの名無しさん2015/06/24(水) 21:55:06.36ID:uF/DasIW
HTMLから呼び出されてる事をあるのを知らないのか・・?
0137デフォルトの名無しさん2015/06/24(水) 23:22:36.33ID:gZGnz25T
HTMLのは特殊すぎるけど、あれは内部的に関数で囲まれてる
0138デフォルトの名無しさん2015/06/25(木) 09:37:57.55ID:g5y8B0xS
>>134
return 文を FunctionBody 以外に置くのは文法違反だ
ただしGMは上記エラーをキャッチして匿名関数で囲い直して再実行するようになっている
恐らく昔は最初から匿名関数で囲っていたんだろう
0139デフォルトの名無しさん2015/07/14(火) 03:20:07.12ID:JCIKiH2Y
Greasemonkeyの話が出てきたから関連の質問

GreasemonkeyってJQueryの便利なプラグインって使えるんですか?
0140デフォルトの名無しさん2015/07/14(火) 22:26:10.42ID:mAVBSVq8
>>139
ライセンス次第では使えるんじゃない?
0141デフォルトの名無しさん2015/07/17(金) 09:05:28.77ID:jOehEW0E
>>140
ライセンス関係じゃなくて

例えばjQueryのプラグインを使用する場合
このファイルを此処に配置してね!とかこの階層にこれを置いてね!みたいなパターンの時
Greasemonkey使いはどうやってor何処にそのファイルを設置してるのかなって?
0142デフォルトの名無しさん2015/07/17(金) 12:40:59.47ID:xU21AM+p
前スレでもちょっと話が出てたけど
スクリプトはuserscript内にベタ書きして他はBase64化するしかないんじゃない
もっともそこまでするならアドオン化したほうがいいと思う
0143デフォルトの名無しさん2015/07/17(金) 13:31:24.21ID:2DUlvwkL
>>141
配置すればいいし、問題が有るなら
ソースコードを書き換えればいい。
何も困ることはない
0144デフォルトの名無しさん2015/07/17(金) 14:27:46.46ID:i4mrEasZ
>>143
オナニー用の回答は勘弁
0145デフォルトの名無しさん2015/07/17(金) 14:33:37.12ID:vqf+lCet
英語苦手ならこうかけばいいんやで?

expect(bdd).equal('super')

能力ないのに無理すること無いよ。
0146デフォルトの名無しさん2015/07/23(木) 11:10:57.77ID:Yx5p7QBY
すいません
JavaScriptを使って3Dモデリングソフトを作りたいのですが
可能でしょうか?あとPhotoshopの様なソフトも作りたいと思ってます。
どなたか教えてください。
0147デフォルトの名無しさん2015/07/23(木) 11:38:00.53ID:Yx5p7QBY
追記

すいません。
Windows8です。
よろしくおねがいします。
0148デフォルトの名無しさん2015/07/23(木) 11:43:39.39ID:GqOFRXaP
可能だしどっちもブラウザで動くものが既にあるよ
0149デフォルトの名無しさん2015/07/23(木) 11:48:28.89ID:Yx5p7QBY
回答ありがとうございます。
既にあると言うのは既に開発者がいるということでしょうか?
できれば自分で開発したいと思ってます。
MAYAとPhotoshopが欲しいのですが、高いのでJavaScriptで
自作したいと考えてます。

JavaScript以外インストールしなくてもできますでしょうか?
0150デフォルトの名無しさん2015/07/23(木) 14:52:27.42ID:Yx5p7QBY
やはり、難しいのでしょうか。。。
0151デフォルトの名無しさん2015/07/23(木) 14:52:32.56ID:DH0nynLc
ソフトは高いから自作したい?
JavaScriptをインストールする?
そんな質問する時点で、作るなんて無理無理かたつむり。

まずはフリーソフトを使ったら?
フォトショの代わりにgimpがオススメ。
MAYAの代わりになるフリーソフトは知らんが、探せば絶対ある。
0152デフォルトの名無しさん2015/07/23(木) 14:55:06.50ID:P0N6qRSq
>>150
mayaっていくらするんだ?
100万くらい?同等で安いの他に沢山有るだろ。
0153デフォルトの名無しさん2015/07/23(木) 15:03:20.14ID:GqOFRXaP
>>149
質問の答はどっちもYESだけど>>151の言ってることが全てだよ
0154デフォルトの名無しさん2015/07/23(木) 15:09:26.99ID:P0N6qRSq
で、何をデザインしたいのさ?
0155デフォルトの名無しさん2015/07/23(木) 15:30:31.35ID:Yx5p7QBY
皆さん、厳しいご意見ありがとうございます。

GIMPはPhotoshopに比べて使いづらいので
使用をやめた経緯があります。
3DソフトもBlenderというフリーソフトを試しましたが
話になりませんでした。

やはり多少手間が掛かっても自作しようと思います。
JavaScript以外インストールしなくても開発が出来るとの事なので安心しました。

おすすめの書籍や、サイトがあれば教えて頂けると幸いです。
0156デフォルトの名無しさん2015/07/23(木) 15:36:53.45ID:CfJH8He2
>>155
無理。使いづらいGIMPも超えられないことだろう。
GIMPってオープンソースでないか?
ゼロから作るならこっちを改良したほうがまし。
0157デフォルトの名無しさん2015/07/23(木) 15:38:54.93ID:P0N6qRSq
>>155
mayaレベルのものを一人で作るとなると
俺だったら1年は掛かるな。頑張れ
0158デフォルトの名無しさん2015/07/23(木) 15:43:04.88ID:CfJH8He2
Mayaっいのがいくらか知らないが、同等機能を自作しようと開発費は購入費用を超えるかと。
その開発期間の生活費、食費、家賃だけでも。
開発のほうが時間もカネも掛かるという本末転倒の結果になるだけ。
買うか、諦めて機能劣化でもフリーか安いやつ探したほうがまし。
0159デフォルトの名無しさん2015/07/23(木) 15:43:35.24ID:Yx5p7QBY
>>156
JavaScriptでオープン・ソースを改良する事はかのうでしょうか?
改良の仕方を解説した書籍などはありますか?

>>157
ありがとうございます。
一年くらいは試練だと思って頑張ります。
一年でMAYAクラスのソフトができれば有料化して
公開すれば元は取れそうですね。。。
0160デフォルトの名無しさん2015/07/23(木) 15:46:45.88ID:CfJH8He2
そもそもなんでJavaScriptだよ?
JavaScriptは機械語のネイティブにくらべ相当遅い。
JavaScriptコンパイラから開発していかないと。C/C++やアセンブラのトランスレータでもいいけど。
0161デフォルトの名無しさん2015/07/23(木) 15:48:44.57ID:Yx5p7QBY
>>158
アドバイスありがとうございます。
JavaScriptの勉強もかねて自作を考えております。
開発したソフトはシェアウェアとして公開して開発費に当てられればと思います。。
0162デフォルトの名無しさん2015/07/23(木) 15:51:51.38ID:j7igTf1W
無謀すぎる話をしてるなw
1年どころか死ぬまでやっても無理そうな感じ
0163デフォルトの名無しさん2015/07/23(木) 15:52:15.00ID:Yx5p7QBY
>>160
JavaScriptはプログラミング言語の中で一番敷居が低いと聞きましたが間違いでしょうか?
無料で始められて敷居も低いJavaScriptが最適と判断しましたが、
おすすめの言語等があれば教えて下さい。
できればフリーでお願いします。

当方パソコン初心者です。
0164デフォルトの名無しさん2015/07/23(木) 16:26:28.00ID:Yx5p7QBY
私のやろうとしてる事は無謀なんですね。。
因みにエクセル三級です。
0165デフォルトの名無しさん2015/07/23(木) 16:54:25.40ID:P0N6qRSq
>>164
JavaScriptでもmayaは作れるよ。
動きが遅ければ速いマシンで動かせば良い。それに3DグラフィックのプログラミングがメインだからJavaScriptからOpenglでも呼び出せば、今時の安いグラフィックカードでもそこそこ動くだろ。頑張れ。
0166デフォルトの名無しさん2015/07/23(木) 18:37:24.13ID:KEVSaEFA
>>163
企業が複数チームで何年もコミットして開発してきたものを個人で作れねえよバカかてめえ
こういうカスがクラウドソーシングでアホな依頼を出してるんだよな
0167デフォルトの名無しさん2015/07/23(木) 18:49:51.06ID:CfJH8He2
そういった何十万円もするのは、24時間稼働で常時、数十〜数百人働いて1年以上かかってるだろ。
インドでITが盛んな理由をテレビでやってたが、地球上でアメリカの反対に位置していて、
アメリカ人が寝てる間にインド人が引き継いて24時間稼働させるのも一因らしいぞ。池上彰の番組だったか。
たった一人では到底追いつかない。
0168デフォルトの名無しさん2015/07/23(木) 18:52:33.66ID:CfJH8He2
インドでIT産業が躍進した目からウロコな理由 - ライブドアニュース


IT産業躍進の理由は、歴史的経緯から英語が公用語の一つとして用いられていることや、伝統的に数学に強い国民性などがよく指摘される。
しかし、もう一つ、意外な理由があるのをご存知?

それは、アメリカとの"地理的な位置関係"。アメリカとインドの間には12時間の時差があり、昼夜がちょうど逆転している。
つまり、アメリカで昼間に行われたソフトの制作作業を、夜にインドが引き継ぐ(その頃インドは昼にあたる)。
今度はインドの技術者が作業を行い、夜(アメリカ時間の朝)にまた送り返す。
この、24時間ノンストップの作業工程を繰り返すことで、開発時間を大幅に短縮することができた。

インドでIT産業が大躍進した背景には、こうした地理的事情も潜んでいたのだ。

http://news.livedoor.com/article/detail/4657272/
0169デフォルトの名無しさん2015/07/23(木) 19:13:34.13ID:KOl0In97
ネタがないからってレス乞食の真似をするのは
及びその相手をするのはいかがなものか
0170デフォルトの名無しさん2015/07/23(木) 19:45:37.63ID:FhWClImu
ネタだと思うことが社会では実際に見かけるからネタに見えない
0171デフォルトの名無しさん2015/07/23(木) 20:28:17.10ID:aSNV6wDl
でも>>165みたいな人は最近普通にいるよ。
0172デフォルトの名無しさん2015/07/23(木) 22:38:31.05ID:Pnybgrqu
製作コストを度外視した環境的な話だけで言えば、
WebGLとasmjsの台頭(というのはまだ早いか)によって、出来そうという領域に突入してるからなあ
0173デフォルトの名無しさん2015/07/23(木) 23:14:30.67ID:szZOMhQ7
いまどきのOSはスタックが自動的に伸びるから、スタックオーバフローが発生しないと
まじめに語り始めた人がどこかのスレにいたな。

何か思い出しました。
0174デフォルトの名無しさん2015/07/24(金) 13:30:59.77ID:TpqFiFGp
>>171
いたら既に検索エンジンに引っかかってるはずだ
0175デフォルトの名無しさん2015/07/28(火) 21:45:27.86ID:CqtOJHxe
http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b#comment-bde1ca78c17960cbe01f

この記事のコメント欄で

>JavaScript標準のDateは関数型プログラミングのストリームであり、.now()関数の返り値も参照透明ですよ。

と主張してる人が居るんだが(qiitapost氏とchimetorch氏)、これってどうなの?
マジなの?

http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b#comment-161ab6283ae2d49ff356
0176デフォルトの名無しさん2015/07/28(火) 23:52:00.84ID:Z/s3EayV
直接聞いたほうがはないんじゃないの?何でここで聞いたの?
0177デフォルトの名無しさん2015/07/29(水) 13:14:53.46ID:uQ6lKHw2
恥ずかしいからに決まってんじゃん
0178デフォルトの名無しさん2015/07/29(水) 20:40:47.45ID:a6rmdmGU
>>175
参照透過性の齟齬が見られるようにしか見えない
定義を再確認して検証するだけで答えがわかるだろうけど、どこがわからないんだろうね
0179デフォルトの名無しさん2015/07/30(木) 03:04:51.95ID:RzfbKLmp
入門書よりは実践的で、サイ本よりも初心者向きという位置づけの本って何がありますか?
フレームワークを使って簡単なゲームを作るのですが、フレームワークの入門書のレビューを見ると、
Javascriptの本も必要になるみたいなので、入門はサイトも併用して勉強して、
もうちょい踏み込んだ内容を本で体系的に勉強したいと思います
0180デフォルトの名無しさん2015/07/30(木) 03:33:35.97ID:9t3Rp0jb
パターンかeffectiveか選べ
0181デフォルトの名無しさん2015/07/30(木) 04:33:46.95ID:3i+hP11T
はじめてのJavaScript、秀和システム
掌田津耶乃(しょうだ つやの)、2013

開眼!JavaScript、2013、オライリー・ジャパン


この2冊を、この順に読んでみ。
JSが簡単な言語ではないことが、よくわかるw
0182デフォルトの名無しさん2015/07/30(木) 20:56:39.71ID:8R+I3lmc
>>180
オライリーやeffectiveみたいな本って中級者が上級者になるために四苦八苦して読むというイメージがありますが、
それほど難しい本ではないのでしょうか?
>>181
読んでみます
JSを極めたいというのは身の程知らずな考えになるので、
趣味でやる分には困らないというレベルになれればいいなと思います
0183デフォルトの名無しさん2015/07/30(木) 21:03:44.61ID:Gc+8fzul
c++極めていたらJSは何日くらいでマスター出来ますか?
0184デフォルトの名無しさん2015/07/30(木) 22:34:56.33ID:ZAgoLfu3
>>183
JSはやめとけ。せめてJK以上にしとけ。
0185デフォルトの名無しさん2015/08/01(土) 14:17:31.69ID:Aj4A9d0F
日付型に関する質問なんだけど、
ブラウザから入力されてyyyyMM(201506)みたいに
区切られてない日付を簡単にDateで扱える方法ある?

そのまま突っ込むと201506年とかになっちゃうから、
2015年06月として扱いたいんだけど。
0186デフォルトの名無しさん2015/08/01(土) 14:18:14.94ID:DY0kRX1l
moment.jsでも使えばいいんじゃない?
0187デフォルトの名無しさん2015/08/01(土) 14:18:31.56ID:YIWvpIHq
現行スレ
+ JavaScript の質問用スレッド vol.125 + [転載禁止]&amp;#169;2ch.net
http://peace.2ch.net/test/read.cgi/hp/1436910657/l50
0188デフォルトの名無しさん2015/08/05(水) 23:33:11.27ID:2Lachul+
あるライブラリでコールバック関数で値を受け取るメソッドを使ってるんだが、
普通のメソッド呼び出しみたいに同期で値を返して欲しいんだが、どうするのがベターかな
JavaだとFuture.getとかで値がfillされるまで待つみたいなことができるんだがそういう感じの
0189デフォルトの名無しさん2015/08/05(水) 23:44:23.53ID:+tmhLpOI
非同期は非同期のままつなげて、最後に待つ、みたいなのがいいと思うよ
0190デフォルトの名無しさん2015/08/05(水) 23:57:58.59ID:2Lachul+
GUIまで非同期のまま引っ張る感じ?
やっぱそうなんかなぁ
0191デフォルトの名無しさん2015/08/06(木) 00:29:17.38ID:9VONu6kL
そのライブラリの非同期関数をPromiseでラップしてから
Babel前提にしてasync/await使えば望み通りのことができると思うけど
手間を考えたら俺も>>189に一票入れとく
0192デフォルトの名無しさん2015/08/06(木) 01:59:42.04ID:sO/WbnI6
別にPromise使えば、Babel前提にする必要はないよ。
0193デフォルトの名無しさん2015/08/09(日) 01:20:38.18ID:5j1Jud2Y
普通の呼び出しでって話だからPromise単体では無理なんじゃない
0194デフォルトの名無しさん2015/08/09(日) 02:28:32.87ID:75nb70yx
@include
っていう構文は何ですか?
0195デフォルトの名無しさん2015/08/09(日) 10:03:46.48ID:k7/mk2St
greasemonkeyとかユーザースクリプトとかのスレで聞いたほうがいいな
0196デフォルトの名無しさん2015/08/11(火) 21:58:12.27ID:oKfEQWGh
ページを非同期に継ぎ足していくページをオフラインで作りたいんですが、
jQueryの様なプラグインを一切使わずにHTML+JavaScript(+CSS?)だけで作る時に参考になる様なサイトはありませんか?

会社で扱う情報をデータベース化して蓄積した際に閲覧用に使えるのが今のところエクセルだけで、
しかもエクセルで扱うとデータ量が多すぎて表示しきれない(表示できても作業に支障を来すほど重い)ので、
JavaScriptもしくはVBScriptを裏で動かして、都度データを拾って表示するシステムを作りたいのです。

しかし非同期に情報を表示するページの作り方となるとjQueryプラグインかWWWサーバの機能(PHPなど)を利用するものばかりが出てくるので、
WWWサーバも用意出来ず、任意のソフトウェアやプラグインをインストール出来ない状況に合わず困っています。

データベース作りはエクセルVBAで慣れているのですが、蓄積したデータを表示する方法がよく分かっていません。
JSやVBSでHTMLタグ付きのページを自動生成して、それをインラインフレームに読み込ませるとページ遷移になるみたいなので、
一枚のページであるかのように振る舞うものを作りたいという目的に合致しないようです。

以上の状況と目的に合致するような作り方はないでしょうか?
0197デフォルトの名無しさん2015/08/11(火) 23:15:07.89ID:CoeY+3yy
jQueryでエクセルシートから変換したJSONをgetすればいいじゃん
0198デフォルトの名無しさん2015/08/11(火) 23:37:15.67ID:TiTJJGpg
>>196
まあ、なんというかアレだな。
例えて言うのなら、電気を使わずに
電気柵を作る方法を教えて下さい。みたいな質問だな。

なんで電気を使わない?と思ったら、その理由が電気は
感電して怖いだのあれこれ理由を言う。

だがね。それならば感電防止機能を入れればいいだけなんだよ。

あんたがやりたいのは、安全な電気柵の作り方。電気を使わない方法じゃない。
あんたがやりたいのは、情報を一部分づつ表示する方法。jQueryを使わない方法じゃない。

作り方がわからないのに、いきなり自分で「jQueryを使わずに作る」という作り方を決めるなよ
その作り方が間違ってるんだよ。

つまりな、お前のその目的はjQueryのようなプラグインを使って実装できる。
おそらく使ったほうが簡単だろう。

あんたが調べるべきことが間違ってる。

どうすればいいかは、他の人に聞いてくれ。
夜遅いが俺はこれから出かけなくてはならないんだ。
0199デフォルトの名無しさん2015/08/11(火) 23:56:52.00ID:Gq6LmRKv
目的と手段を見誤ってる。
0200デフォルトの名無しさん2015/08/11(火) 23:59:26.31ID:sF80SOD4
>>196
CSVをJSONに変換してKEY名からテーブル構造のHTMLを作って
それぞれのKEY名をクリックしたら対応するValueからDOM作って当該位置に挿入するサンプルがほしい
っていうよりは下の方を見ると閲覧システムの設計でそもそも考えあぐねてるのかな

それなりに面倒だからエクセルで何とか表示させる方向で頑張ったほうがいいと思うよ
DB分割して軽くするなり、VBA使えるなら任意の箇所だけ抜き出して表示するなり
0201デフォルトの名無しさん2015/08/12(水) 08:40:21.56ID:+yA7GmTQ
Accessを導入するのが正道だけどな
0202デフォルトの名無しさん2015/08/13(木) 02:17:20.39ID:jVnFAW0L
会社にアクセス買ってもらえよ
業務なんだろ

アレ便利だぞ
0203デフォルトの名無しさん2015/08/13(木) 07:09:40.49ID:n81SVna7
Accessなんか使ったら、IE以外のブラウザからアクセスできねーだろうが。
0204デフォルトの名無しさん2015/08/13(木) 08:20:03.37ID:jNCMqTB5
>>196
WSH でも使ったらいいんしゃないですかね
0205デフォルトの名無しさん2015/08/13(木) 09:33:11.04ID:6HOKQ4ar
ふつうにWSH。adodbでcsvはテーブル、SQLで操作。
0206デフォルトの名無しさん2015/08/14(金) 00:44:06.16ID:vtoIaU0u
>>196は質問しっぱなしで放置状態だから回答するだけ無駄っぽいね
0207デフォルトの名無しさん2015/08/14(金) 12:13:57.70ID:p5nDK28D
>>206
「非同期に情報を取得して表示するページをjQuery無しで作りたい」って言ってるのに「jQueryで作れ」とか回答になってないからな。
0208デフォルトの名無しさん2015/08/14(金) 14:58:16.18ID:aFog9Tf1
別にjQueryを使わなくても手元に用意したJSONを拾ってテーブルデータを差し替えるだけだが
そもそもjQueryがインストールの必要なものだと思い込んでるのが誤り
0209デフォルトの名無しさん2015/08/14(金) 21:19:04.81ID:vtoIaU0u
>>207
WSH は立派な回答になっていると思うけど
0210デフォルトの名無しさん2015/08/16(日) 13:22:37.29ID:onk31F/8
>>207
よく読め、>>196は情報を見つけている。

> しかし非同期に情報を表示するページの作り方となるとjQueryプラグインかWWWサーバの機能(PHPなど)を利用するものばかりが出てくるので、

だからその情報通りにやればいいって話。
jQueryを使わないという条件を
つけるのが間違いだってこと。

間違った答えを出しているからせっかくの情報がムダになっている。
0211デフォルトの名無しさん2015/08/16(日) 21:46:48.31ID:eBxInuMd
WWWサーバを用意できないのなら XHR をまともに使えない(fileスキームではHTTPリクエストを発行できない)。
当然、jQuery の .ajax() が動く保証もない。
ローカルファイルを読み込むなら new ActiveXObject("Excel.Application") 辺りが適切かと。
>>196にとっては VBA の方が良さそうだが、スレ違いだしな。
0212デフォルトの名無しさん2015/08/17(月) 12:52:30.28ID:5VuANJB1
excelじゃないない。adodbだ。excelでどうにかなるならそもそもguiのexcelで開けていて質問が生じない。
0213デフォルトの名無しさん2015/08/17(月) 13:07:39.93ID:dlIvdh6i
.xls から .mdb に変換したらコストが安くなりそうだな
それにしても、>>196はどこへ行った?
0214デフォルトの名無しさん2015/08/17(月) 14:26:37.95ID:fPukF0yZ
JSONPじゃ駄目なん
0215デフォルトの名無しさん2015/08/31(月) 22:53:08.01ID:oxGqwRen
jsで大規模なプログラム作ろうとすると
グローバル変数名や関数名が重複したりしがちですが良い対策有りますか?
0216デフォルトの名無しさん2015/08/31(月) 22:57:18.89ID:fsojoPt+
>>215
モジュールパターン
0217デフォルトの名無しさん2015/08/31(月) 23:06:33.82ID:oxGqwRen
>>216
ありがとうございました。
即時関数を使うんですね
0218デフォルトの名無しさん2015/08/31(月) 23:16:35.05ID:fsojoPt+
>>217
基本的には即時関数で囲めば大丈夫ですね
名前空間がわりのユニークなオブジェクトを用いることでグローバル汚染を最小にすることもできます
(jQueryなど比較的大規模なライブラリは基本的にそうしていますよね)
0219デフォルトの名無しさん2015/09/01(火) 16:58:09.10ID:VBJ1oHHM
objectの配列obj[1000]が有って、そのうちのobj[0]だけは他の1〜999までには無いプロパティを追加しました。
こう言う統一性の無いデータ構造は処理速度を遅くするなどの可能性は有りますか?
0220デフォルトの名無しさん2015/09/01(火) 19:43:04.87ID:zJENheg1
プロパティがあるかないか判断するんなら、その分だけ処理コストは嵩むだろうな。
0221デフォルトの名無しさん2015/09/01(火) 23:45:59.57ID:p4WHFNrl
>>219
IEのChakraはオブジェクトの型を内部で作って最適化している、
的な記事を読んだ記憶がある
あなたのコードが当てはまるかどうかは知らない
0222デフォルトの名無しさん2015/09/12(土) 19:15:38.62ID:hTbhIsEM
Javascriptの文法をひととおりやった初心者ですが
すでに存在しているJavaScriptを使ったWebページを解析(というかどういうしくみになってるか理解)するためには
どのようにすればいいのですか?

なにかツールがあるのですか?

まだ自分ではJavaScriptで何か書いた経験はゼロです。
WebページでF12を押せばなんかツールみたいなのが出てくることだけは知っています。
0223デフォルトの名無しさん2015/09/12(土) 20:42:46.13ID:407oNTEh
そのなんかツールみたいなのが出てくるやつからWebページの要素を参照できるよ
WebページのHTMLやscript要素のテキスト、外部から読み込んでる.jsのソースを見るのが無難

もっとも、見てわかるようになるまではある程度知識が必要だから
まずはドットインストールでも見ながら簡単なページ作ってみればいいんじゃない
0224デフォルトの名無しさん2015/09/12(土) 20:48:48.77ID:hTbhIsEM
>>223
ありがとうです。

まだ初心者なので言ってることがさっぱりわからないです。
まずドットインストールってなんでしょうか?
あと見てるのはかなり複雑なJavaScriptが埋め込んでるWebサイトなんですが
そこで使われてる関数の名前の一覧とか
埋め込まれているjsファイルの一覧、
そしてそのjsファイルをわかりやすく色分けした状態で見る方法みたいなのはありますでしょうか?
0225デフォルトの名無しさん2015/09/12(土) 22:25:41.67ID:fWxjG3ht
とりあえず、わからない事があればgoogleさんに聞いてみないか?
0226デフォルトの名無しさん2015/09/12(土) 23:54:20.20ID:Y0QkDcDu
>>224
ドットインストールは、プログラミングを教えるサイト

<script src="File1.js"></script>
このようにHTMLのタグに、JSのファイル名が書いてあるので、
「script」でHTMLファイル内を検索すればよい

function(){ }
JSでは、名前のある関数定義は、functionで始まるので、
「function」でJSファイル内を検索すればよい

普通、エディタでソースコードを表示すると、
構文ごとに表示色も指定できる

まあ、色々と質問する前に、
まず自分で検索して調べてください。
それでもわからない場合に、質問して
0227デフォルトの名無しさん2015/09/13(日) 00:09:47.71ID:f7snMU36
ドットインストールを見てみると動画の学習シリーズのようですが
本当に無料会員になればすべての動画を見れるのですか?
0228デフォルトの名無しさん2015/09/13(日) 00:40:53.11ID:gpw/7Hjs
まずは自分でやってみないか?
0229デフォルトの名無しさん2015/09/13(日) 07:46:02.01ID:f7snMU36
知ってたら教えてあげないか?
0230デフォルトの名無しさん2015/09/13(日) 07:59:57.88ID:PQgMJiU0
>>229
おまえが試してみんなに教えてくれよ
0231デフォルトの名無しさん2015/09/13(日) 09:06:25.06ID:gpw/7Hjs
やってみれば簡単にわかるって教えてあげたのに、その答えを教えてくれってのは成長出来ない人の特徴だぞ…
0232デフォルトの名無しさん2015/09/13(日) 11:19:33.25ID:JguKFMhj
ドットインストールなんて知らないが、調べたらすぐに分かったぞ
一から十まで教えて欲しいなら家庭教師を雇えばいい
http://dotinstall.com/premium
0233デフォルトの名無しさん2015/09/13(日) 16:27:31.18ID:c7Lrzu+F
動画て
色々あるんだなあ
0234デフォルトの名無しさん2015/09/13(日) 22:42:52.72ID:OcEYiSuM
ドットインストールは登竜門だと思ってた
書籍類は一切持ってないし
0235デフォルトの名無しさん2015/09/13(日) 22:44:13.44ID:3BsRFwaL
漏れもドットインストールは知らないけど、

NHK高校講座、社会と情報に出ている、
「Rubyの女神」と呼ばれる、
女優の池澤あやかがよく使っているらしい

プログラミングをはじめよう、池澤あやか、2015、1,300円
0236デフォルトの名無しさん2015/09/13(日) 22:55:22.05ID:gO4R7dxd
>>235
生き残るためのネタか
女優も大変だな。
0237デフォルトの名無しさん2015/09/23(水) 03:12:47.16ID:PUZmohrk
websocket使ってcanvas共有あれこれをやってるんだが
画像をドラックドロップした位置も含めて送受信する方法がわからん
画像だけなら送受信できるんだけど

画像をバイナリに変換して、位置座標も含めて送信したいんだが
0238デフォルトの名無しさん2015/09/23(水) 11:25:21.28ID:n9K2IqyH
ドットインストール
http://dotinstall.com/

この動画をファイルとして保存するにはどうすればいいですか?
0239デフォルトの名無しさん2015/09/23(水) 11:32:14.11ID:HteDXMZ9
ドットインストールでプログラミングを勉強すれば、動画を保存するプログラムが書けるようになる
0240デフォルトの名無しさん2015/09/23(水) 11:35:50.44ID:Tixv8Ju6
単に保存したいだけならスレチだから使ってるブラウザの本スレで聞いとけ
0241デフォルトの名無しさん2015/09/24(木) 03:08:39.53ID:KIwTvfAf
>>237
その関数に、可変長引数はついていないの?

>>238
動画を右クリックしたら、コンテキストメニューが出て、
そこから動画を保存できないの?
0242デフォルトの名無しさん2015/09/24(木) 09:24:36.56ID:goqgO7/k
>>241
そんなことができれば警察はいらないと思うのですが。
スーパーウルトラプレミア会員になっているかたですか?
0243デフォルトの名無しさん2015/09/24(木) 12:48:11.58ID:mgme6LDc
>>242
警察のお世話になるような内容を公共の場で質問しているのですか?
0244デフォルトの名無しさん2015/09/25(金) 23:34:04.53ID:4d8u8vME
linq.js使ってる人います?
0245デフォルトの名無しさん2015/09/26(土) 06:34:31.75ID:v7fSGmLa
index.htmlで
<script type="text/javascript" src="src1.js"></script>
<script type="text/javascript" src="src2.js"></script>
...
<script type="text/javascript" src="src30.js"></script>
のようにJSファイルを読み込んで実行しているのですが、ie11なら問題ないのに、
ChromeやFireFoxでは、特定の関数が見つからないと出ます。でもその関数は、確かに存在していて、
読み込む順番もその関数が使われるまでに読み込まれるようにしています。
でも見つからないと出るんです。どうしたら良いでしょうか?
0246デフォルトの名無しさん2015/09/26(土) 06:41:02.37ID:9LZTdQQ8
>>245
バグを直す。

エラーが発生したコードを見ればすぐに分かる
0247デフォルトの名無しさん2015/09/26(土) 06:43:21.69ID:v7fSGmLa
>>245
解決しました。
0248デフォルトの名無しさん2015/09/26(土) 11:18:26.68ID:gA+qxsAJ
逆ならわかるがIEだけ動いてChrome・Firefoxでエラーってのも珍しいな
0249デフォルトの名無しさん2015/09/26(土) 11:22:12.17ID:V6ncMGSJ
>>243
なぜ動画一般の保存方法を聞いて警察の世話になるんですt?
0250デフォルトの名無しさん2015/09/26(土) 13:23:41.70ID:CSeulu2i
>>249
あなたが「そんなことができれば警察はいらないと思う」と書いたからです。
0251デフォルトの名無しさん2015/09/26(土) 23:40:26.38ID:V6ncMGSJ
>>250
こらまじめに答えたまえ
0252デフォルトの名無しさん2015/09/27(日) 05:40:09.20ID:QHSPW0OV
FireFoxで
"use strict";
if (true)
{
 function f() { } // !!! syntax error
 f();
}
となりますが、"use strict";を取ると解決しますが、取らないで
エラーもしないようにする方法を教えてください
0253デフォルトの名無しさん2015/09/27(日) 05:51:42.60ID:mQ+WRbZI
function f() { } //
if (true)
{
 f();
}

if (true)
{
 let f = function () { }
 f();
}


if (true)
{
 var f = function () { } //これはfのスコープがifの外にあるから注意
 f();
}
0254デフォルトの名無しさん2015/09/27(日) 05:52:05.78ID:kJP1aIir
var f = function() {};
0255デフォルトの名無しさん2015/09/27(日) 06:03:20.22ID:QHSPW0OV
素早いレスありがとうございました。
三番目の var f = の方式で上手く行きました。
やはりコードを書き換えないとダメなんですね。行数が2万行くらいあるので修正が大変そうです。
use strictをとってしまうのが手っ取り早いかな。

ちなみに、二番目の方式だと、
SyntaxError: let is a reserved identifier
と出ました。
0256デフォルトの名無しさん2015/09/27(日) 06:10:22.80ID:mQ+WRbZI
あぁ、letは古いブラウザでは対応してないよ。

3番目で動くけど、正確な意味は、これと一緒だからね。

var f;
if (true)
{
 f = function () { }
 f();
}
0257デフォルトの名無しさん2015/09/27(日) 06:15:27.52ID:QHSPW0OV
確かに let は
FF 40.0.3
ならエラーで、最新版
FF 41.0
なら行けました。
と言う事は、もっとも安全かつ変更作業が少なくて済む方法は
var f = のやり方ですかね。
0258デフォルトの名無しさん2015/09/27(日) 12:13:53.38ID:TVls4cfy
>>251
まじめに答えてますけど。
あなたが「そんなことができれば警察はいらないと思う」と書いたんですよ?
0259デフォルトの名無しさん2015/09/28(月) 15:38:36.05ID:e7uUBDed
if(0)
よりも
if(false)
と書くほうがif文の評価が速いですか?
0260デフォルトの名無しさん2015/09/28(月) 15:48:54.97ID:Aor/5DQQ
>>259
0.000000000000000000000000001秒ぐらいちがうよ!
0261デフォルトの名無しさん2015/09/29(火) 11:21:02.03ID:UO7SUcno
>>259
後者がより速い
0262デフォルトの名無しさん2015/09/29(火) 11:34:34.35ID:yqK3ttcR
if(false)
なんて書くぐらいなら
if文中を全部コメントアウトしたほうが早いだろ。
0263デフォルトの名無しさん2015/09/29(火) 14:47:13.62ID:0lZfHTgJ
>>261
計測結果を教えてくれ
0264デフォルトの名無しさん2015/09/30(水) 00:33:48.61ID:YmEebgyH
>>263
環境依存が発生するものを他人の為に計測してやる義理はない
必要なら自分で計測して皆に教えてくれ
0265デフォルトの名無しさん2015/09/30(水) 01:24:54.37ID:rQ1sG86l
>>264
環境依存していて全然OKだよ!
0266デフォルトの名無しさん2015/09/30(水) 09:01:06.40ID:YmEebgyH
>>265
はっきりいわんとわからんようだが、試せばわかることを人に聞くな
0267デフォルトの名無しさん2015/09/30(水) 09:18:11.86ID:rQ1sG86l
>>266
わかったうえで聞いてる。
0268デフォルトの名無しさん2015/09/30(水) 09:41:33.73ID:YmEebgyH
>>367
悪質だな
0269デフォルトの名無しさん2015/09/30(水) 10:53:47.11ID:rQ1sG86l
>>367に期待
0270デフォルトの名無しさん2015/09/30(水) 14:54:32.99ID:YmEebgyH
言葉遊びは余所でやれ
0271デフォルトの名無しさん2015/10/02(金) 08:41:43.61ID:bVr75frV
顔真っ赤
0272デフォルトの名無しさん2015/10/07(水) 21:19:07.79ID:dwIDGxfg
2Dのライブラリでパワポで作るっぽい図を座標管理しなくてもパパと作れるライブラリ知らんか?
0273デフォルトの名無しさん2015/10/07(水) 22:49:38.82ID:0FXYPI/I
Webブラウザで英語のサイトを表示したときに、
この動画のように単語をクリックすると和訳が出てくるような UI を作りたいんだけど、
JavaScript のどんなライブラリを使えば実現できますか?
https://youtu.be/I10qWoQEi5U?t=2m28s

自分はRubyとCはかなり書けるほうと思うけど、JavaScriptはほとんど触ったことがありません。
メジャーなライブラリを教えてもらえると助かります。
0274デフォルトの名無しさん2015/10/07(水) 23:31:54.39ID:0iwSPjqO
>>272
jQuery UI にあるかな?
「jQuery スライドショー」で検索して

>>273
単語をクリックすると和訳が出てくるような、
複雑なものは知らない

cssの:hover ならツールチップみたいになるけど、
スマホのタッチスクリーンには対応していない

HTMLのaタグでも出来る
<a href="#ダミー" title="サンプルです">ダミー</a>
「ダミー」の上でマウスが止まると、
「サンプルです」と表示される

「ツールチップ CSS HTML JavaScript jQuery」などで検索して

>>272-273
プログラム板では、HTML,CSS,JSで開発している人は少ないのでは?
web制作管理板で、質問するほうが良いかも
0275デフォルトの名無しさん2015/10/08(木) 19:50:37.41ID:9yien46K
index.htmlを表示している状態で、どこかの任意のWEBサイト
(例:www.yahoo.co.jp)を非表示の状態で読み込んで、そのサイトの
文章などの文字列を取得してindex.htmlの中で利用したいのですが、
どういう手順になるのか見当も付きません。
おおまかな流れを教えてください。
0276デフォルトの名無しさん2015/10/08(木) 20:22:54.80ID:84jDMCPE
PHP等の手を借りないと
Javascriptだけでは不可能です
0277デフォルトの名無しさん2015/10/08(木) 20:24:40.67ID:9yien46K
>>276
ありがとうございます。PHPで聞いてみます。
0278デフォルトの名無しさん2015/10/08(木) 21:06:56.30ID:Wj3paahs
>>276
1.任意のサイトの情報をXMLHttpRequestで取得する
2.取得した情報を好きに使って利用する

おおまかだとこうなる
ただしブラウザの場合。サイトのドメインが異なる場合はセキュリティの都合で
サイト側がサーバーの設定で読み取られることを許可していないとできない
またブラウザ拡張機能からならドメインに関係なく取得できる方法もある
詳しくはCORSでググれ
0279デフォルトの名無しさん2015/10/08(木) 21:08:20.55ID:Wj3paahs
間に合わなかった上に安価ミスった/(^o^)\
0280デフォルトの名無しさん2015/10/09(金) 13:07:31.54ID:3wiHOwoq
function Hoge(){}
Hoge.prototype.__defineGetter__('huga', function(){});
var hoge = new Hoge();
console.log(hoge); //Hoge {huga: (...)}
console.log(hoge.hasOwnProperty("huga")); //false

prototypeのgetter関数をさも継承先が自身のプロパティとして持っているように見えます
しかしhasOwnPropertyではfalseが返ってきます
これはコンソールの仕様で自身が持っているかのように見えているだけで
実際は持っていないと考えていいんでしょうか
0281デフォルトの名無しさん2015/10/09(金) 13:25:50.31ID:IGSPExTP
>>280
hasOwnPropertyはprototypeチェーンを遡りません
0282デフォルトの名無しさん2015/10/09(金) 19:06:56.61ID:kOAM1c8S
>>280
あなたが期待するのは in 演算子
ついでに、__defineGetter__ は Object.defineProperty にすると良い
0283デフォルトの名無しさん2015/10/10(土) 12:13:46.19ID:o2txIQD1
javascriptでTuple8ってどうやって型作ればいいの?
0284デフォルトの名無しさん2015/10/10(土) 13:08:02.32ID:aPQSjKGF
>>281-282
280です、レスありがとうございます
しかしhasOwnPropertyではなくin演算子だとHoge.prototypeまで遡ってしまうので
hoge自身がhugaを持っていないことの確認にならないと思うのですが…

Object.definePropertyはすっかり頭から抜けていました
次からはこっちを使うようにしようと思います
0285デフォルトの名無しさん2015/10/10(土) 17:38:24.23ID:vT1N9X7j
>>280
俺は詳しいわけではないが、多分それが仕様。コンソールの動作は正しい。

プロパティとメソッドではなくて、プロパティにデータまたはアクセサ。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
0286デフォルトの名無しさん2015/10/10(土) 19:03:40.37ID:j7IjrgH2
>>284
[[Prototype]] 上のプロパティを見ているのだから hasOwnProperty が false なのは当然だと思うのだけど
0287デフォルトの名無しさん2015/10/13(火) 16:15:43.50ID:9phY+r4Z
はい現行スレ

+ JavaScript の質問用スレッド vol.126 +
http://peace.2ch.net/test/read.cgi/hp/1444186237/l50
02886102015/11/05(木) 01:42:08.94ID:O9StB1rc
ここな
0289デフォルトの名無しさん2015/11/05(木) 12:03:44.08ID:7Y5j2Ab8
ここ質問スレだからやるならこっちな

JavaScript 4(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1417749547/
0290デフォルトの名無しさん2015/11/13(金) 23:18:35.97ID:ZOIef2ev
jsonを項目の並び順変えずに使用する手軽な方法はないものだろうか
0291デフォルトの名無しさん2015/11/14(土) 00:24:10.30ID:A/cTWdIV
JSON文字列を〜ってことなら自力で配列にパースするしかないんじゃない
0292デフォルトの名無しさん2015/11/14(土) 08:25:30.10ID:ooiJA6sk
>>290
JSONは配列書けるんだから最初から配列にするのが最良
JSONフォーマットを制御出来ないなら順番に規則性があるとして Object.keys を sort する
0293デフォルトの名無しさん2015/11/15(日) 18:55:29.22ID:DOi6KYg5
javascriptをきわめようと思うのですがおすすめの本はありますか?
JavaとVBAはかなりできるのでプログラミングの基本については省いてるけど
javascriptの文法についてはゼロから学べるものがいいです。
0294デフォルトの名無しさん2015/11/15(日) 21:50:36.60ID:rTjjRyT5
オライリーの犀の絵が表紙の
『JavaScript 第6版』でいいんじゃないかな
書名に「リファレンス」ってついてないほう
まさか1冊読んだだけできわめようとか思ってないよね
0295デフォルトの名無しさん2015/11/15(日) 22:25:40.42ID:p50jhWVb
>>293
『ECMA-262 Edition 5.1を読む』
0296デフォルトの名無しさん2015/11/16(月) 00:57:51.27ID:EQy/E/K4
サイ本よりフクロウ本のほうが遥かに役立つ。
0297デフォルトの名無しさん2015/11/16(月) 02:03:26.64ID:JsYgt5wO
ecma262.info:8000/nExt3
これって答えなんなの?
演算式使うのかな
0298スッキリ厨2015/11/16(月) 07:52:35.27ID:ZwIWeu8p
>>293
はじめてのJavaScript、秀和システム
掌田津耶乃(しょうだ つやの)、2013

開眼!JavaScript、2013、オライリー・ジャパン

山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版

この3冊を、この順番で読む。
他には漏れは読んだことがないけど、
オライリーの分厚い本もある
0299デフォルトの名無しさん2015/11/16(月) 08:07:12.67ID:U1t0nJK+
この二つはいらん

はじめてのJavaScript、秀和システム
10日でおぼえる jQuery 入門教室 第2版
0300デフォルトの名無しさん2015/11/16(月) 08:41:57.82ID:dZs54Tgi
掌田津耶乃と山田祥寛はステマで有名な人なんで
やめたほうがいい。
0301デフォルトの名無しさん2015/11/16(月) 08:54:28.39ID:z+/eAFMG
>>298
 り と ご い す
0302デフォルトの名無しさん2015/11/16(月) 11:20:49.22ID:+cn9jndK
>>294
Java が出来るなら DOM API は習得しているとして ECMA, その他JavaScript API 関連を覚えればいいな
『ECMA-262 Edition 5.1を読む』『JavaScript 第6版』を購入して残りはWebで情報を得れば十分かと
http://jtdan.com/spec/
http://www.w3.org/TR/#tr_Javascript_APIs
http://www.ecma-international.org/ecma-262/6.0/
0303デフォルトの名無しさん2015/11/16(月) 11:30:33.67ID:7yHHnP/U
職種別、資格別、スキル別の平均最低月給リスト(ほぼ毎日更新)
http://jobinjapan.jp/cate/
全掲載求人109,160件の平均最低月給195,800円

JavaScriptの求人 の平均最低月給215,900円
http://jobinjapan.jp/job-listing/keyword-javascript.html
0304uy ◆Qawu9.2l1E 2015/11/20(金) 13:01:59.74ID:QlSu2hgW
Dart「js吐くンゴww」
Type・CoffeeScript「ワイも吐くンゴwwワイらの時代ンゴww」
Opal「ヨロシクニキーwwwwwwwwwwwwwwwwwwwwwwwww」
Ruby「おっOpalゥー!!!!!!wwwwwwwwwwwwwwwwwwwwwwwww」
Dart・Type・CoffeeScript「」

JavaScript「(=・ω・=)キャーRubyさんステキ!!」
0305デフォルトの名無しさん2015/11/22(日) 21:30:36.54ID:j30Wwuuw
1/3=0.33333
1/2=0.5
1/4=0.25
実数値を文字列化する時に、割り切れない時は四捨五入で小数点以下5桁で、割り切れるならその全桁数をそのまま文字列化したいんですが、一発で出来る関数や手法は有りますか?
0306デフォルトの名無しさん2015/11/22(日) 21:49:25.43ID:YuHI3rxM
>>305
割り切れるの意味がおかしい
本来の割り切れるってのは商が整数で剰余が出ないってことだと思うが
君が求めているのは割り算結果が循環小数とかにならないって意味でしょ?

浮動小数点数演算について勉強した方がいい
0307デフォルトの名無しさん2015/11/22(日) 21:53:08.09ID:j30Wwuuw
>>君が求めているのは割り算結果が循環小数とかにならないって意味でしょ?
そうそう。
その前提でお願いします。
0308デフォルトの名無しさん2015/11/22(日) 21:55:59.14ID:YuHI3rxM
>>307
書いたでしょ
>浮動小数点数演算について勉強した方がいい
0309デフォルトの名無しさん2015/11/22(日) 22:01:10.79ID:j30Wwuuw
>>308
そんな細かい事に拘る必要はありません。
回答お願いします。
0310デフォルトの名無しさん2015/11/22(日) 22:31:27.08ID:r93th6vC
割り切れてるかどうかの判定をしたいって事だろ
結果を文字列化して小数点以下の数でも調べれば良いんじゃね
0311デフォルトの名無しさん2015/11/22(日) 22:49:53.25ID:OxxJcFnU
>>305
かなり適当に書いた
無駄多いから参考になるか微妙

(function (arr){
  var r = [];
  arr.forEach(
    function (n,i){
      r[i] = (n.toFixed(5)).split('.');
      r[i][1] = r[i][1].split('');
      for(var j = 5;j;){
        j--;
        if(r[i][1][j] == 0){
          r[i][1].pop();
          continue;
        }
        break;
      }
      r[i][1] = r[i][1].join('');
      r[i] = r[i].join('.');
    }
  );
  return r;
}([1/3,1/2,1/4]));

取り合えず全部5桁に揃えて、末尾から順番に見ていって、0でなくなるまで1文字ずつpop()すればいいんじゃない?
0312デフォルトの名無しさん2015/11/22(日) 23:25:07.86ID:gEGmaphC
>>305
0.5 * 2 === 1
0313デフォルトの名無しさん2015/11/23(月) 05:50:54.71ID:7FCURHqQ
>>311
たとえば 1/1000000 みたいな循環しないけど5桁を超えるケースは?

まあ質問者がこれをどうするかによるけど
0314デフォルトの名無しさん2015/11/23(月) 07:21:15.38ID:YU+u1mNl
まだやってたのか
そもそも割りきれるの意味すらわかってなかった質問者に与える回答は

浮動小数点数演算について勉強しなさい

質問自体が間違ってるのだからこれしかないぞ
>>311 は質問の前提から外れまくってるし実に滑稽
0315デフォルトの名無しさん2015/11/23(月) 07:45:07.04ID:ti6fp5wi
>>313
それは割り切れる場合だろ。
0316デフォルトの名無しさん2015/11/23(月) 08:20:22.22ID:YU+u1mNl
>>315
だから、それは割り切れるとは言わない
そもそもどうやって判定するつもりだ?
言っておくが数学上の割り算じゃなくて実際にやってるのは2進数による浮動小数点数演算だぞ
0317デフォルトの名無しさん2015/11/23(月) 09:19:21.13ID:ti6fp5wi
>>316
君、議論に加わる必要ないから。
0318デフォルトの名無しさん2015/11/23(月) 09:30:17.12ID:7FCURHqQ
>>315
そう、そのケースでも>>311みたいな長さを見る方法では切れてしまうけど
それは質問者の意図としてはどうなん? てこと
0319デフォルトの名無しさん2015/11/23(月) 09:42:58.57ID:YU+u1mNl
元々の質問者の意図は明確だろう

>一発で出来る関数や手法は有りますか?

ここまでにこれに沿った回答が1っでもあっただろうか?
前提自体が間違ってるのに議論とかちゃんちゃらおかしい
理解を改めてもらったうえで本当にしたいことを確認しないとな
0320デフォルトの名無しさん2015/11/23(月) 09:45:48.01ID:XxRvZT2I
お前こそ言いたいことを明確に言ったほうがいいんじゃないか?
03213112015/11/23(月) 11:04:54.37ID:zzIVowg+
>>318
確かにそうだ
ちらっと見て何も考えずに書いたから問題ありまくりっぽいね
割りきれる場合はそのまま表示のパターンで誰かコード書いてよ
コード出して、問題点指摘する方が話し合いをだらだら続けるよりは建設的だし
03223122015/11/23(月) 12:18:24.49ID:3c46ibgj
私としてはもう答えを出したつもりなのだが、誰も気が付かないとは。
逆算して値を照合するだけで解決するだろう。
丸め誤差がどうしても気になるなら整数演算に近づくように 10 の乗数を掛け合わせる。
0323デフォルトの名無しさん2015/11/23(月) 14:30:08.19ID:fwuapcKX
>>322
間違いに気がついてないアホはお前
3*(1/3) === 1
0324デフォルトの名無しさん2015/11/23(月) 16:14:40.37ID:ti6fp5wi
では、桁数n (n<=30)を指定するとして、
割り切れない場合は小数点以下n+1桁目を四捨五入してn桁までを求める。
割り切れる場合は、その全部を文字列化する。ただしnを超える部分が有る場合は、四捨五入の方法を用いる。
これでいいかな?
03253122015/11/23(月) 17:22:09.03ID:HbVCI0Y/
>>323
誤差が気になるなら整数演算しろといっているのだが、目に入らないのか?
03263122015/11/23(月) 17:26:14.67ID:HbVCI0Y/
整数演算しても同じか。
bignumを使った整数演算で解決できそうだが。
0327デフォルトの名無しさん2015/11/23(月) 19:22:01.08ID:fwuapcKX
>>325
誤差の話なんてしてないんだが・・やっぱりアホなの?
0328デフォルトの名無しさん2015/11/23(月) 19:32:05.43ID:ti6fp5wi
議論はいいから、模範解答が知りたい。誰も出来ないのかよ
03293122015/11/23(月) 22:20:06.87ID:xqKq/xpI
>>327
0.3333333333333333 * 3 === 1
のどこが誤差ではないのだ?
03303122015/11/23(月) 22:26:53.13ID:xqKq/xpI
>>328
0.3333333333333333 * 3 の結果が 0.9999999999999999 となるbignum系ライブラリを使えばいいかと。
0331デフォルトの名無しさん2015/11/24(火) 04:57:49.58ID:TPIY6jGN
0.3333333333333333にピッタリになる数字はどうするんだよ
それも循環小数になると判定されるぞ
0332デフォルトの名無しさん2015/11/24(火) 07:05:52.28ID:VKmO+9+0
誰も出来る奴がいない。
0333デフォルトの名無しさん2015/11/24(火) 08:25:41.37ID:DINFs6Pn
まだやってんのかよ
循環小数の証明すらやったことない中卒しかおらんのか
0334デフォルトの名無しさん2015/11/24(火) 10:29:45.10ID:zV3eHeKo
>>331
アホか
固定値なら逆算式も変わるだろ
0335デフォルトの名無しさん2015/11/24(火) 13:00:23.14ID:TPIY6jGN
何が言いたい?
0336デフォルトの名無しさん2015/11/24(火) 13:13:32.93ID:TPIY6jGN
ちょっと整理しよう

console.log(1/3);
console.log(3333333333333333/10000000000000000)

と循環小数になるのとそうでないのとは
(循環小数の方は切り捨てられて)
同じ値になるけど
この値に割る数を掛けて割られる数になるかどうかで
循環小数かどうかを判断できるって主張だよな?

(循環小数ではなく)固定値ならというが、それを判断する方法を言ってるのに
それに応じて計算式を変えるっていうのはどういうこと?
0337デフォルトの名無しさん2015/11/24(火) 13:54:45.20ID:h+VQBoPG
>>336
固定値なら「0.9999999999999999 / 3 === 0.3333333333333333」だろう?
「0.3333333333333333 * 3 === 0.9999999999999999」なのだから当然一致する。

数学的には「1/3 !== 0.3333333333333333(IEEE754的には真)」
「0.3333333333333333 * 3 !== 1」となる。
つまり、IEEE754に演算を任せなければ良い。
03383372015/11/24(火) 14:09:37.19ID:h+VQBoPG
付け加えておくが、計算式は変わっていない。
除算を逆算して乗算にしているだけ。
0339デフォルトの名無しさん2015/11/24(火) 14:26:11.49ID:TPIY6jGN
>>337
なるほど、なんとなく言いたいことはわかった気がする

だがそれは、その仮想の数値計算ライブラリ(もしくはそれを使った計算)が
循環小数もしくは固定値をどこで切り捨てるかに関わってくるんじゃないか?
つまり、固定値でも切り捨てられたら元に戻らないよね

結局は(wikipediaに載っているような)割る数と割られる数で循環小数の判定をしなきゃだめってことでは
0340デフォルトの名無しさん2015/11/24(火) 14:36:19.44ID:VKmO+9+0
そんな議論はどうでもいいから解答を書ける奴は一人も以内のかよ!
03413372015/11/24(火) 15:27:06.06ID:6cLiz0ar
>>339
>>305はIEEE754の範囲で割り切れない数と判断している為、1/3 が 0.3333333333333333 と評価される前提でいいと判断した。
つまり、切捨てはIEEE754の範囲となる。
後はその数値を元に演算すれば良い。

そもそも、「循環小数の定義を認める前提」なら割り切れない事を判定する必要はないだろう。
数学的には「0.333...(循環小数) * 3 === 1」となる。
従って、「0.3333333333333333 * 3 === 1」は循環小数としての演算結果ではないものの(結果的には)期待通りの結果であるはずだ。
これを期待しないのなら切捨てられる前提(循環小数ではないもの)として考えるべきだろう。
循環小数を正しく解釈するぐらいなら「分数」を内部処理的に認識する方がまだスマートといえる。
0342デフォルトの名無しさん2015/11/24(火) 16:50:59.60ID:o2Douu6Y
IEEE754 doubleで1/3は0.3333333333333333(0.3{15}3)とはならないよ
正確には約0.3{15}29以上0.3{15}34未満の有効値となる
この値を文字列とした時に0.3{15}3となるのはあくまで表記の問題で、実際その値であるという意味ではない
これを3倍すると数学的には約0.9{15}86以上1.0{15}28未満の有効値となる
ただ単にdoubleで1.0と表した時には約0.9{15}94以上1.0{15}11未満の有効値なのでこの範囲を外れており確実に1.0とは言えない
これが中央値1.0{15}07をとって1.0と同等に正規化されるか、より上や下の値になるかはモードによって違う
0343デフォルトの名無しさん2015/11/24(火) 16:54:36.33ID:VKmO+9+0
浮動小数点の説明はもう十分なので解答ヨロ
0344デフォルトの名無しさん2015/11/24(火) 17:15:59.24ID:o2Douu6Y
解答はどういう塩梅が良いかによるだろう
厳密に言うならdoubleは一点を表せられるものではないから
オレオレ数値型を作って超面倒な運用をしないといけない
まあ将来的にはES2017以降のvalue-objectsをベースとして
思うままの数値型を作れるから運用面での面倒さは無くなるだろうよ
0345デフォルトの名無しさん2015/11/24(火) 17:17:11.20ID:qVxYz0C/
>>343
入力が浮動小数の場合は、無理だよ、というのが解答
0346デフォルトの名無しさん2015/11/24(火) 21:02:19.29ID:VKmO+9+0
>>345
浮動小数点演算で割り切れるかどうか判定出来なくても、プログラムは書けるだろ。
それが出力する結果が数学的な意味での正しい解答になっていればいいだけだから。
ここではできる人がいないようなのでお題スレに行くわ。
0347デフォルトの名無しさん2015/11/24(火) 22:06:21.79ID:M6yTWdhi
そのお題に不備があるからこうやってその不備を突いて遊んでるんだよなあ
0348デフォルトの名無しさん2015/11/24(火) 22:15:08.39ID:cJUbqgX1
>>346
doubleである限りデフォルトの表記かそれに毛が生えた程度のものが限界
例えば3333333333333333e-16と1/3を区別できないんだし
0349デフォルトの名無しさん2015/11/25(水) 00:29:44.47ID:O+sc6fcj
浮動小数点で表現できるかどうかという問題と、プログラムで正解が出せるかどうかという問題を混同しているだけだろ。
0350デフォルトの名無しさん2015/11/25(水) 06:40:14.89ID:xU7WfTzq
ちょっと違うな
プログラムで取り敢えず組めるが
それは数学的に正しくできないから正解にはならないということだな
0351デフォルトの名無しさん2015/11/26(木) 08:54:35.58ID:gxenBIDW
>>350
君、プログラミングの能力低そうだな
0352デフォルトの名無しさん2015/11/26(木) 09:30:35.50ID:PuA+0wtS
車輪の再発明はしないのが優秀なプログラマ
0353デフォルトの名無しさん2015/11/27(金) 05:10:46.27ID:YYaQ4CLl
【環境】iOS?
【何をしたのか】Date getTimeによる時刻表期にズレが出てくる
【期待する結果】20msくらいの誤差で複数端末間(PC/スマホ問わず)の時刻を同期する
【サンプルコード】
時刻同期はNTPサーバを使って差分を考慮して行ってます

function getTime(){
$.ajax({
type: 'GET',
url: 'http://ntp-a1.nict.go.jp/cgi-bin/json?'+Date.now()/1000,
dataType: 'json',
success: function(json){
var nowDate = Date.now();
var latency = (nowDate-json.it*1000)/2;
var fixedTime = json.st*1000 + latency;
var localTIme = Date.now();
offset = fixedTime - localTIme;
}
});
}

やりたいことは複数端末間での精度の高い時刻同期です。
現状、出来ているといえば出来ているのですが、5分くらい放置していると
少しずつズレが出てきて目測ですが400msくらいのズレが発生しているように見えます
その場合、ページを更新するとまたピッタリになるのですが、
ページを更新せずにずっと時刻を同期し続けることは可能でしょうか?
0354デフォルトの名無しさん2015/11/27(金) 05:13:39.89ID:YYaQ4CLl
ちなみに、各端末での時刻表期は

var d = new Date(Date.now()+offset);
var h = ZeroFill(d.getHours(),2);
var m = ZeroFill(d.getMinutes(),2);
var s = ZeroFill(d.getSeconds(),2);
var u = ZeroFill(d.getTime()%1000,3);

各端末の内蔵時計にサーバーとの時刻とのズレを足し引きして
表示させています。Date.now()はnew Date().getTime()と同じです。

内蔵時計がずれていかなければ一回offsetを算出すれば
基本はずれることがないと思うのですが・・・
0355デフォルトの名無しさん2015/11/27(金) 08:27:02.13ID:JennF9kz
そもそも時間の流れとは絶対的なものではないからね。
対象が1.5万km/sくらいで移動していれば相対性理論によりそのくらいの差が出る。
0356デフォルトの名無しさん2015/11/27(金) 12:17:01.45ID:X+JLR2lJ
無難なのは一定時間毎にサンプルコードのoffsetを更新することかな
もちろんXHRの所要時間も加味して
でも5分で400msもズレる原因を探した方が楽なんじゃねえかな
0357デフォルトの名無しさん2015/11/27(金) 12:41:12.67ID:9ORRm5xJ
Date.now()でのズレはios環境がないので検証できないが
定期的にoffsetを取得するしか無いのではないかな

あるいはaudioContext.currentTimeを使うのはどうか
0358デフォルトの名無しさん2015/11/27(金) 13:34:33.24ID:ADRINJe1
むしろ取得の方がおかしいと考えるべき
片方が遅れて見えるのはsetTimerやらsetIntervalが正確だと思い込んでる所為じゃね
0359デフォルトの名無しさん2015/11/27(金) 14:37:30.45ID:7QRTKik/
>>353
参考迄に教えてけろ。何で
そんなに精度良く同期させる必要が有るん?
0360デフォルトの名無しさん2015/11/27(金) 15:08:06.52ID:YYaQ4CLl
>>356
いまoffsetを20秒ごとに更新するようにしているのですが
どうも一回スリープに入るとズレが生じるような気がしてきています
もうちょっと原因を検証してみます

>>357
サーバーの時刻を一度だして、それ以降はaudioContext.currentTimeを
取得しながら時刻を表示していくということですね
ちょっと一回トライしています!

>>358
setIntervalは20msで設定しています
20msなので人間が知覚できるほどのズレはないような気がしますが
現状は余裕で知覚できるほどのズレが発生しています

>>359
ネトゲで友達と一緒にやるために
サーバーに対して同時刻にアクセスしたいんです
0361デフォルトの名無しさん2015/11/27(金) 16:00:53.47ID:vrZOFMnm
> サーバーに対して同時刻にアクセスしたいんです

同時刻にアクセスしても、一緒にやれるわけじゃないだろう?
0362デフォルトの名無しさん2015/11/27(金) 16:32:29.72ID:iIljupK4
>>361
運ですね
ただグループはアクセス順で決まるので
完全に同時刻にアクセスしたら
一緒にやれる確率がかなり高いんです

もちろん人的な誤差やネットワーク的な誤差もあるのは分かりますが
減らせるところの誤差はなるべく減らしたいんです
0363デフォルトの名無しさん2015/11/27(金) 17:02:05.49ID:tJ3YDWoo
setIntervalは信用するな
0364デフォルトの名無しさん2015/11/27(金) 18:02:39.08ID:wJd8+GUt
setIntervalは信用度が低い。
0365デフォルトの名無しさん2015/11/27(金) 18:10:23.71ID:ADRINJe1
20msなら信用度が低くても問題無いんじゃね
0366デフォルトの名無しさん2015/11/27(金) 18:25:10.18ID:G3gCBxYm
>>362
> ただグループはアクセス順で決まるので
> 完全に同時刻にアクセスしたら
> 一緒にやれる確率がかなり高いんです

そういうシステムなのか?

普通に考えたらサーバーが複数ある=負荷を下げるためなので、
短時間に集中したアクセスが同じサーバーに振り分けられたら負荷下がらないし、
先着順に同じサーバーに振り分けられるとするならば、
最後のサーバーはスカスカになるはずだし、設計的にかなりおかしいんだが?

> もちろん人的な誤差やネットワーク的な誤差もあるのは分かりますが
> 減らせるところの誤差はなるべく減らしたいんです

誤差の話じゃないんだ。完全に同時に来たとしても振り分けられるように作ってるはずだということ。
同時刻であれば一緒にやれる確率がかなり高いっていうのは都市伝説だろう?
公式にそういう機能があると明確に言っているならば別だが、やるだけ無駄だと思うがね。
0367デフォルトの名無しさん2015/11/27(金) 18:42:23.12ID:ADRINJe1
>>366
お前が言ってるのは皆が同一のゲームをするMMOの話じゃないのか?
MO系のサーバーなら同一サーバーで処理した方が良いし
それを単純に均一に振り分けてたらいつまで経っても人数が揃わないだろ
0368デフォルトの名無しさん2015/11/27(金) 20:00:01.00ID:tds5BOFG
まあルーム方式だわな
それより、目的がそれならTS3とかを使ったほうがよっぽど同期しやすいと思うんだがな
0369デフォルトの名無しさん2015/11/28(土) 00:07:51.49ID:zYBVt+cc
audioContext.currentTimeはPCでは実装できたのですが
iPhoneだとどうもaudioContext.currentTimeは動作しないらしく
値が0に固定されるようなのでトライしたものの残念な結果になりました

>>364,365
seIntervalはそこまで信用していないのですが
20msだろうと、それが50msになろうと、
呼び出した中でDate.now()の返り値が正常であれば
それにoffsetを足して表示するだけの話なので
setIntervalが不安定でもそこまで問題ないように思えるのですが・・・

まぁさすがにsetIntervalが200msくらい遅れるとかなら困りますが・・・

>>366
システムの仕様は明かされていませんが
ほぼ合流不可能な中でこれまで同時押しでかなり高確率で合流できています
時刻合わせしなかったらまず合流できることはありません
まだ時計の精度は悪かった時よりも
NTPで時刻の精度を上げて以降、合流できる確率が上がったのも事実です(体感ですが)

>>368
TS3って調べてみたのですがボイチャですか?
最終的に不特定多数の人に公開したいツールなので
ボイチャはちょっときついかもです

ということで・・・、audioのcurrentTimeがダメだったので
もう少し別のやり方を検討してみます
0370デフォルトの名無しさん2015/11/28(土) 01:54:37.04ID:GEMUQykl
iosでそこまで遅れるという話は挙がっていない
君の設計が悪いことは間違いないので勉強し直すように
以上
0371デフォルトの名無しさん2015/11/28(土) 03:46:21.62ID:hixXfPcg
具体的にコード上げられてるのに指摘も出来ないのか
悪いのは設計だろうかそれとも頭だろうか
0372デフォルトの名無しさん2015/11/28(土) 04:19:17.89ID:zYBVt+cc
performance.now()というaudioのcurrentTimeと似たような関数があったので、それで実装してみました。
iOSでも動作するようです。

時刻をNTPで合わせた瞬間からの経過時間を計測し
その経過時間を加算して現在時刻を表示するというアルゴリズムで実装しました
Date.nowは一切使ってません。
performance.now()は結構精度がいいようで
割と時刻が同期されるようになりました

ただ、iPhoneがスリープ状態に入ったときにカウントが止まってしまうので
それが問題になりました。
それは、スリープを検知するような関数を実装して
スリープを検知したらページをリフレッシュするようにして解決しました。
これで今のところ何時間かたってもほとんどズレがないようになったような気がします。
もう少し運用してみないと分かりませんが・・・

とりいそぎ、同じ状況で困った人がいたときのためのメモ書きです。

ちなみに色々調べてたらDate.now()というかnew Date()もそうなんですが
どうも動作が遅いようです。
http://konbu13.hatenablog.com/entry/2014/02/08/113447
のページによると140ms〜230msかかっているようで
確かにその時間は僕のやりたいことから考えるとクリティカルな遅さです
iOSとかは特にその遅さの影響を受け安かったんですかね・・・
その他リソースの使用状況にもよるかもしれませんが

とりあえず割といい精度になってきたので書き込みはこれで最後にします
色々情報くれた方ありがとうございました、助かりました。
0373デフォルトの名無しさん2015/11/28(土) 04:29:06.31ID:hiaEqByC
>>372
> 百万回やった合計時間でどちらが速いか算出します.
> Result
> method time
> new Date() 233msec
> Date().now() 142msec

と言うか根本的な解決はできてないと思うけど困ったらまたいらっしゃい
03746102015/11/28(土) 21:52:17.08ID:u/RqRVR/
立てました。よろしく。

JavaScript情報交換所(プログラミング既習者専用)
http://peace.2ch.net/test/read.cgi/tech/1448714123/

(289の誘導先には投下済み)
0375デフォルトの名無しさん2015/11/28(土) 23:08:58.63ID:omVU5b+0
お、またセルフ隔離奴が沸いたゾ〜
0376デフォルトの名無しさん2015/11/29(日) 00:06:32.48ID:jeYb2Mq1
この人は仕様理解が適当で間違いもあって正しい指摘があっても「おまえはわかってない」と小馬鹿にした態度をとり続けるんだよね
テンプレからも自分以外を見下した感がはっきりと現れているし、まともな議論を望む人は行かないほうがいいかと
0377デフォルトの名無しさん2015/11/29(日) 16:34:35.60ID:9CgkJ04D
自分で隔離されに行ってるんだ
これほど助かる事もあるまい
0378デフォルトの名無しさん2015/11/29(日) 16:40:13.54ID:YeIwqIKD
時刻取得はシステムコールだから概ね遅い。
0379デフォルトの名無しさん2015/11/29(日) 21:23:29.08ID:ttk2cNlA
>>377
各言うここも元々は隔離スレなんですがねw
0380デフォルトの名無しさん2015/11/29(日) 22:26:46.50ID:GFfphPGr
>>7のご本人様にはそう見えるんだろうな
0381デフォルトの名無しさん2015/11/30(月) 00:12:59.62ID:eeMkzjwS
スピナーの練習ですまんな
0382デフォルトの名無しさん2015/11/30(月) 00:13:26.95ID:eeMkzjwS
パッと見
編成事故だろこれ
0383デフォルトの名無しさん2015/12/01(火) 00:02:41.35ID:STfQzAtr
巨大なファイルをJavaScriptをつかってブラウザのローカル上で分割する場合、どんな方法がありますか?

例えば、ドラッグ&ドロップで500MBのデータをFILEAPIで読み込み、BLOB形式に落とし込んだデータを10分割する方法。
読み込み自体は、4GBでも実現できたのですが、それを分割する方法が思い付かない・・・
最初は、sliceやsubstrなどで部分読み込みしようとしたのですが、60MBより大きなファイルに処理をかけるとエラーまたはフリーズ状態になってしまいます。
当然軽くさせるためにlengthなども外しています。
何か良い方法はないでしょうか?
0384デフォルトの名無しさん2015/12/01(火) 07:47:46.62ID:xvXjXk07
はい現行スレ

+ JavaScript の質問用スレッド vol.127 + [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1448293871/l50
0385デフォルトの名無しさん2015/12/01(火) 13:23:56.62ID:C95UNH5l
>>383
Blob#slice()が通らないならどっか間違ってるか実行環境の問題じゃないかな
それが特定のブラウザだったら>>384で聞いたほうがいい
0386デフォルトの名無しさん2015/12/01(火) 15:24:29.22ID:STfQzAtr
>>385
sliceは巨大な文字列を部分抜きできるものなの?
0387デフォルトの名無しさん2015/12/01(火) 15:30:47.45ID:lIW/6OLc
試してから聞けよ
0388デフォルトの名無しさん2015/12/01(火) 15:33:41.03ID:STfQzAtr
>>384
ありがとう。
そちらでレスしてみました。
0389デフォルトの名無しさん2015/12/01(火) 15:34:35.77ID:STfQzAtr
>>387
既に試してダメだったので383でレスしました。
0390デフォルトの名無しさん2015/12/01(火) 15:56:50.87ID:C95UNH5l
>>386
ちょっと待ってどこから文字列が出てきたんだ
blob型を分割したいけどできないって質問だった筈だよね
何かおかしいから質問し直すにしてもサンプルコード出した方がいいと思うよ
0391デフォルトの名無しさん2015/12/01(火) 18:44:55.03ID:pST9GKGG
だな。
どういうコードで試したのかは書いてくれないとね。
0392デフォルトの名無しさん2015/12/07(月) 07:29:07.30ID:7ldc1+VM
↓こちらへどうぞ

+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1427008785/
0393デフォルトの名無しさん2015/12/10(木) 01:22:25.69ID:Gagm3MNk
〜のページに行って◯◯をクリックするってどう書けばいいの?
0394デフォルトの名無しさん2015/12/10(木) 01:43:25.58ID:ZhUmFj4b
実行環境による
その二つを同時にやるならサイト側のスクリプトか拡張機能かサーバーサイドじゃないと無理
0395デフォルトの名無しさん2015/12/11(金) 08:28:22.96ID:GWmwMFvD
同オリジンなら何とでもできる。
0396デフォルトの名無しさん2015/12/14(月) 23:12:20.44ID:ls6EZ2cx
>>390
30M程度のBLOB型文字列だとsliceで指定範囲を抜き取れるが、500Mや1Gの巨大なファイルになると失敗してしまう。

JavaScriptだけで巨大な文字列を分割する良い技ないですかね・・
0397デフォルトの名無しさん2015/12/15(火) 00:52:49.97ID:qjG5txy2
>>396
あのなぁ、昔はメモリどころかHDDが1GBもない時代があったんだぞ。
その時代であったって、ちゃんと作ればそれぐらいのデータは扱える。

メモリにいっぺんに乗り切らないなら分割して扱えばいいだけの話。
少しは考えた方がいいぞ。言語の勉強をするんじゃなくて
アルゴリズムの話だ。
0398デフォルトの名無しさん2015/12/15(火) 01:38:34.89ID:uWpoWN+S
>>396
blob型文字列ってなんだよ…
blob型を分割しようとして失敗するならそのコードがどこか間違ってるし
それを文字列に変換したもので失敗するなら実装の制限にぶち当たってるから
その場合は>>397の言うように事前に分割するしかない
0399デフォルトの名無しさん2015/12/15(火) 18:08:16.92ID:WPjAuEFO
HPとかのJavascriptのソースコードを読んでいるんですが非常に読みづらいです
たぶん意図的に読みづらくしているのでしょうが、読みやすくするソフトとかないでしょうか?
0400デフォルトの名無しさん2015/12/15(火) 18:45:50.12ID:AvAOTExp
ブラウザに整形機能付いてるじゃん
0401デフォルトの名無しさん2015/12/15(火) 21:55:10.29ID:uYEbzlBn
>>398
制限か何かにあたったのかな・・

今行っているのは、2.2ギガバイトのファイルをドラッグ&ドロップで読み込み、URLまたはtextで読み込んだあとに、sliceで指定部分を抜き出そうとしているのですが、失敗に終わっています。

59MBまでなら成功したので397の通り自分の書いたプログラムに無理があるのかなと・・・
困り果てています。

因に事前に分割とは、JavaScript以外の方法でということですか?

自分がやりたいことは以下です。
1、fileAPIで読み込む(2ギガ以上)
2、10MB程度に分割
3、Ajaxで送信
4、分割されたファイルを組み立て再構築
5、元のファイルに戻して保存

59MBのファイルなら成功しました。それ以上だと・・・・
何か分割する方法ないでしょうか、
0402デフォルトの名無しさん2015/12/15(火) 22:17:38.64ID:eq/fh4de
自分の書いたプログラムを貼ってみればいいんじゃない
0403デフォルトの名無しさん2015/12/15(火) 23:14:28.57ID:NyiJCKNO
ここまでいわれて何でコードを開示しないんだろ
0404デフォルトの名無しさん2015/12/16(水) 00:43:40.05ID:sgXyEvFI
だから、文字列にするなって何度もいわれてるじゃん
0405デフォルトの名無しさん2015/12/16(水) 07:34:17.89ID:3i7Ahh0A
文字列に変換せずにArrayBufferを取得してTypedArrayの担当範囲を変えながら送ればいいでしょ。
0406デフォルトの名無しさん2015/12/16(水) 08:26:46.56ID:7CCFFtot
>>401
ストリーム入力
ActibXobject
0407デフォルトの名無しさん2015/12/16(水) 08:31:01.54ID:386jW6/x
http://www.html5rocks.com/ja/tutorials/file/dndfiles/
0408デフォルトの名無しさん2015/12/16(水) 11:11:28.48ID:XbnIVOIY
>>406
オフラインでドラッグ&ドロップのfileAPIで読み込みたいのですが、巨大なファイル(2ギガ以上)だと何かの上限で無理なんですかね?
0409デフォルトの名無しさん2015/12/16(水) 11:17:23.35ID:hg6iyaJa
32bitの符号あり整数の上限があるかもしれんね
0410デフォルトの名無しさん2015/12/16(水) 12:14:10.78ID:FY7Nx9Qu
10GBあるファイルもアップロード出来てレジュームも可能なようつべって一体全体どうやってるんだろうねえ(嫌味
0411デフォルトの名無しさん2015/12/16(水) 12:15:49.35ID:FY7Nx9Qu
つうか何度も答え出てるのにそれを全部無視してる質問者が池沼すぎてもうね
0412デフォルトの名無しさん2015/12/16(水) 13:13:47.58ID:bNVTe3xs
NGになってるんじゃね?
0413デフォルトの名無しさん2015/12/17(木) 08:18:25.00ID:woxLyQ04
>>409
通常の配列は2**32-1以下の制限があるが型付配列は2**53-1以下であり8PiBまで扱える
0414デフォルトの名無しさん2015/12/17(木) 12:31:04.29ID:3Bayziwh
テキストフィールド上で、特定のキー操作をしたときに、入力補助としてjsから値の変更をしたいです。
ただ、この機能はあくまで入力補助目的なので、手入力した場合と同じ挙動にしたいのですが、
普通にvalueを書き換えただけでは、フォーカスを失った時のchangeイベントが発生しなくなってしまいます。


質問�@
手入力したときと同じように、changeイベントが発生する状況をjsで作り出してやることは可能でしょうか?
※プロパティとか見てみたけど、それらしいものが見つかりませんでした。


また、valueを直接書き換えるのがだめなら、通常のキー入力をエミュレートして入力してやれば、changeイベントも動いてくれるかなと思ったのですが、キーイベントを発火しただけでは文字は入力されないようです。

質問�A
実際に値が入力される所まで再現させる方法はあるでしょうか?
(それができたとして、changeイベントが発生するかは、別の話ですが…)


ということで、やりたいのはjsで値を変えつつ手入力時と同じようにchangeイベントも発生させることです。
最悪、タイミングは若干変わってしまいますが、blurの中でchangeイベントを発生させてやるしかないかもと思ってます。

よろしくおねがいします。
0415デフォルトの名無しさん2015/12/17(木) 14:17:38.28ID:o7OE0QW2
var repeat_cnt = 0;
function my_func() {
  repeat_cnt++;
  if (repeat_cnt === 100) { // 上限の100回になったら終了する
    return;
  }

  if (is_end_condition()) {
    // ここで必要な処理をする
  } else {
    setTimeout(function () {
      my_func();
    }, 10);
  }
}
function main() {
  my_func();
}
こういう再帰呼び出しをやっても問題ないですか?
場合によってはstackoverflowエラーなど出ませんか?
0416デフォルトの名無しさん2015/12/17(木) 15:05:07.17ID:X7jSmipQ
もちろんスタックオーバーフローは起こりうる
それが起こる再帰回数は実装依存
0417デフォルトの名無しさん2015/12/17(木) 15:28:28.70ID:4ODMQ8bg
非同期の間接呼び出しなので起こりません
0418デフォルトの名無しさん2015/12/17(木) 15:35:01.90ID:qYA12dWq
起こるのは末尾再帰やな
0419デフォルトの名無しさん2015/12/17(木) 15:38:21.34ID:qYA12dWq
何言ってんだ俺日本語がおかしい
起こらないのは末尾再起やな
>>415のは>>417の言うように非同期だからこれまた起こらない
0420デフォルトの名無しさん2015/12/17(木) 17:37:19.09ID:o7OE0QW2
>>416>>417
どっちが正しいのでしょうか
0421デフォルトの名無しさん2015/12/17(木) 20:18:42.20ID:2fqt+8T5
起こるんじゃね
0422デフォルトの名無しさん2015/12/17(木) 20:29:36.50ID:3Bayziwh
>>415はfuncからfuncを呼んでるわけじゃないから、そもそも再起じゃないので、スタックオーバーフローにはならないですよ。
0423デフォルトの名無しさん2015/12/17(木) 21:09:59.65ID:TfrmoFMM
ループは再帰だろ
0424デフォルトの名無しさん2015/12/17(木) 21:59:40.13ID:dJ6WmCFS
1回目が終わった後、時間が来たら2回目が呼ばれて…の繰返しで、
たんに同じ関数が何度も実行されるってだけの状況だと思うけど、これは再帰って呼んでいいの?
0425デフォルトの名無しさん2015/12/17(木) 22:10:00.53ID:o7OE0QW2
>>424
関数内から同じ関数を呼んでいるので再帰的な動きですが、これをループか何かで書き換えて再帰的な感じを無くす事は出来ますか?
0426デフォルトの名無しさん2015/12/17(木) 22:46:28.31ID:J4jHSYqR
>>425
setTimeoutは、その場で待つわけじゃなく、関数は最後まで走っちゃうよ。
その後、時間が来たらsetTimeoutに登録された関数が実行される。
だから、関数内から自分を呼び出してる訳じゃないんで、再帰とはいわないと思う。

まあ、どう呼ぶかはさておき、普通の再帰みたいにコールスタック使いまくる用な事にはならないから、スタックオーバーフローは発生しないし、別に変えなくてもいいと思う。

再帰っぽい感じのコードが嫌なのならsetIntervalを使ってみたら?同じだけど。
0427デフォルトの名無しさん2015/12/17(木) 23:40:09.12ID:mvUSBC4C
>>414
dispatchEventでchangeイベント発火させてやればいいんでね
element.dispatchEvent(new Event('change'))でできるはずだけど
確かIEはnew Eventできないのでdocument.createEventでchangeイベントを作成する必要がある
0428デフォルトの名無しさん2015/12/17(木) 23:48:47.04ID:mvUSBC4C
あゴメン全然的はずれなこと言ってる忘れて
0429デフォルトの名無しさん2015/12/18(金) 08:35:49.78ID:3yHnx8Mf
>>415
無駄にクロージャを形成してGC働かせたり、グローバル変数を使っていることが気になる
setTimeout(my_func, 10, repeat_cnt); で十分
0430デフォルトの名無しさん2015/12/18(金) 13:29:51.96ID:aALELz7q
>>429
そんな書き方が出来るのかよ!
君は優秀だな
0431デフォルトの名無しさん2015/12/18(金) 14:08:24.41ID:7Erpdy7Z
まあな!
0432デフォルトの名無しさん2015/12/18(金) 14:10:29.70ID:7Erpdy7Z
あ、ちなみに、3番目の引数は、IEで動かねーから注意な(笑)
0433デフォルトの名無しさん2015/12/18(金) 17:35:16.80ID:borw4si8
どっちもfunctionを渡してるだけだし、そんな驚くことじゃねえだろうよw
0434デフォルトの名無しさん2015/12/18(金) 17:37:55.19ID:borw4si8
あ、第三引数でカウント渡す部分に感動してたのかw
0435デフォルトの名無しさん2015/12/18(金) 19:11:11.64ID:/TkrVzDw
>>432
IE10 で動くわけだが、IE全般で使えないかのようなミスリードは良くない
IE9- はpolyfillを使えばよい
0436デフォルトの名無しさん2015/12/18(金) 20:40:36.86ID:aALELz7q
>>434
一々w付けんなよw
0437デフォルトの名無しさん2015/12/18(金) 20:51:05.24ID:g1D+z+o4
繰り返す
このポリフィルる
0438デフォルトの名無しさん2015/12/19(土) 04:13:13.83ID:qAOTtWfG
通常はいらん。
レガシーIEに対応しないといけないような特殊な場合のみ。
0439デフォルトの名無しさん2015/12/19(土) 04:46:59.84ID:ysM2oFx/
IE9はレガシーじゃないよw
0440デフォルトの名無しさん2015/12/19(土) 06:54:17.53ID:lBORTjAw
Windows10が実質無料なんだし、もうレガシーIEは無くなったものとみなしていいよな????
分かっていて使っている「玄人」の相手なんかしなくていいよな???????????
0441デフォルトの名無しさん2015/12/19(土) 08:26:31.32ID:IhTv1p38
>>440
そういうことはWindows10にアップグレード可能なOSとIE9をサポートするOSが一致するか調べてから発言しような
0442デフォルトの名無しさん2015/12/19(土) 11:43:33.94ID:Zi1J5vpJ
Edgeがあるじゃん
0443デフォルトの名無しさん2015/12/19(土) 12:49:01.27ID:IhTv1p38
>>442
そういうことはEdgeの対応OSを調べてから(ry
0444デフォルトの名無しさん2015/12/19(土) 19:00:09.47ID:pEku9roO
Windows10だろ??????
何言ってんだ????????こいつwwwwwww
0445デフォルトの名無しさん2015/12/19(土) 19:22:19.99ID:ysM2oFx/
>>444
おう、お前の知り合いは全員Windows 10にしたかな?
会社のパソコンのOSはなんだい?
0446デフォルトの名無しさん2015/12/19(土) 20:17:42.40ID:HC0McPg/
Windows 10だけサポートするなら>>441に話が戻るな
0447デフォルトの名無しさん2015/12/20(日) 03:42:39.14ID:szXGSrMl
MVC「じゃない」JavaScriptのフレームワークって無いですかね
configとかroutesとかviewとかRESTfulとかめんどくさいんですよ、どうせ俺しか弄らないんだし
今はクライアント側にHTMLとAngularでAjax呼ぶ
サーバサイドでJSON応答する
だけで書いてますがそんな感じの
0448デフォルトの名無しさん2015/12/20(日) 03:49:08.88ID:jqjYNF9z
>>447
HTML+CSS+jQueryでよい。

HTMLとCSSをただしく使えるのであれば
jQueryだけでビュー部分は簡単に作れる。
0449デフォルトの名無しさん2015/12/20(日) 04:00:40.70ID:szXGSrMl
>>448
jQueryはAjaxでちょっとだけ使ってますわ、
スタイル切り替えはAngularの{{}}でやってる
「小規模なんだからフレームワークなんて要らない好きなように書け」
ですかねありがとうございます
0450デフォルトの名無しさん2015/12/20(日) 09:41:11.53ID:C3TDTIV2
www.example.com
www.example.net
間でobject型のデータを互いに交換したいのですが、
最も高速にやれるのは
どういう関数を使うべきですか?
キーワードを教えて下さい。
0451デフォルトの名無しさん2015/12/20(日) 10:06:02.94ID:6N9tUz3v
結局、IE9用にsetTimeout()のPolyfillが必要なわけだな
0452デフォルトの名無しさん2015/12/20(日) 10:26:06.76ID:C3TDTIV2
>>450
chromeで動けばいいです。他は無視で構いません
0453デフォルトの名無しさん2015/12/20(日) 10:46:53.64ID:6N9tUz3v
>>450,452
window.postMessage
http://please-sleep.cou929.nu/introduction-to-web-messaging.html
0454デフォルトの名無しさん2015/12/20(日) 12:16:25.07ID:C3TDTIV2
>>453
レスありがとうございました。
このサンプルはiframeを使った例のようですが、そうではなくて
全く独立した二つのウインドウ間で通信したいのですが。
どうやっても出来ません。
0455デフォルトの名無しさん2015/12/20(日) 12:24:32.54ID:J44fsBtD
>>454
postMessage はframeでなくても使えるはずだけど
0456デフォルトの名無しさん2015/12/20(日) 12:26:11.54ID:C3TDTIV2
>>455
それが出来ないんです。もう2日くらい行き詰っています。
本当にできるのでしょうか?
0457デフォルトの名無しさん2015/12/20(日) 12:41:48.64ID:J44fsBtD
>>456
Chrome独自の制約は特に見つからないけどなあ
もう一度仕様を読んでコードを見直してみては?
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
https://html.spec.whatwg.org/multipage/comms.html#dom-window-postmessage
http://caniuse.com/#feat=x-doc-messaging
0458デフォルトの名無しさん2015/12/20(日) 15:58:14.65ID:C3TDTIV2
>>457
もう全然ダメです。行き詰まってます。
しばらく寝ます。
0459デフォルトの名無しさん2015/12/20(日) 20:52:40.73ID:C3TDTIV2
今起きました。
どこかに動くサンプル有りませんか...
0460デフォルトの名無しさん2015/12/21(月) 01:36:27.38ID:VR8UuUsJ
>>459
ttp://the-zombis.sak ura.ne.jp/wp/blog/2013/10/15/post-2031/
このサンプルはどや
SafariとChromeで動いたよ
0461デフォルトの名無しさん2015/12/21(月) 01:54:42.80ID:KZlVjUzR
>>459
postMessageって送りたい方のwindowオブジェクトに対してするんだからな
example.comからexampe.netに送りたいなら
example.comのページでexample.netのwindowオブジェクトを取得する必要がある
window.open()の返り値とかで
0462デフォルトの名無しさん2015/12/21(月) 08:54:44.10ID:kPgfKzUv
>>460
レスありがとうございました。
確かにこのサンプルではpopupで開いたウインドウに送信できました。
でも逆方向に送る事は出来ないのでしょうか?
>>461さんの指摘のように、popup側で送信先windowのオブジェクトを取得する必要がありますよね?
0463デフォルトの名無しさん2015/12/21(月) 11:26:56.86ID:MBLRXv9v
>>462
window オブジェクトを送れば逆方向も出来るのでは?
0464デフォルトの名無しさん2015/12/21(月) 16:05:08.73ID:3jMeB42X
windowオブジェクト送るとかアホか
呼び出し元はparentで取れるだろ
0465デフォルトの名無しさん2015/12/21(月) 16:51:10.15ID:y6KenWXU
>>464
windowオブジェクトを取るのが目的ではないだろ
window.hoge でグローバル変数にして送れ、といいたいのか?
0466デフォルトの名無しさん2015/12/21(月) 16:53:35.70ID:y6KenWXU
ごめん、悪かった
windowが取れれば送れるという事か
0467デフォルトの名無しさん2015/12/21(月) 19:02:28.07ID:kPgfKzUv
皆さん情報ありがとうございました。
その後、試したのですが逆方向は出来ませんでした。
もしやり方が分かれば教えて下さい。
0468デフォルトの名無しさん2015/12/21(月) 19:20:19.09ID:KZlVjUzR
>>467
onmessageのイベントオブジェクトのsourceに呼び出し元のwindowオブジェクトが入っている
onmessage = function(e) { e.source.postMessage() }で返せるわけ
0469デフォルトの名無しさん2015/12/21(月) 21:59:57.58ID:kPgfKzUv
>>468
ありがとうございました。
一週間くらい悩んでいた問題が解決しました。
0470デフォルトの名無しさん2015/12/22(火) 17:34:29.31ID:cFhaBXKc
オブジェクトの定義で
var obj = {key: value};
var obj = {'key': value};
どちらも同じだと思いますが、どちらが良いのでしょうか?
0471デフォルトの名無しさん2015/12/22(火) 18:11:28.69ID:pcMCuDsy
JSONは後者のみだから後者に統一しとけば良いんじゃね
0472デフォルトの名無しさん2015/12/22(火) 18:33:30.15ID:YodBadyd
おい
0473デフォルトの名無しさん2015/12/22(火) 22:46:53.61ID:lJMFjOKo
>>471
お前はいつもJSONを手書きしてるのかよ?

>>470
圧縮の技術の一つでよく出てくるパターンを短いデータに置き換えるというのがある。
それと一緒でどちらも同じ意味で可読性も変わらないのであれば、
よく使うものほど短い書き方にするのが良い。この場合は''がないほうが可読性高いしね。
0474デフォルトの名無しさん2015/12/23(水) 09:05:06.94ID:n7KlQu9D
場合によるでしょ
0475デフォルトの名無しさん2015/12/23(水) 09:12:12.40ID:Bay2doKJ
JavaScriptかjQueryで
sleep(2000) // 2秒休む
とか出来ますか?
0476デフォルトの名無しさん2015/12/23(水) 11:30:09.76ID:qlqX4ccz
>>475
アホな実装しかできない
0477デフォルトの名無しさん2015/12/23(水) 11:31:18.08ID:Bay2doKJ
>>476
アホな例をお願いします。
0478デフォルトの名無しさん2015/12/23(水) 16:16:56.03ID:VsO+5z2P
>>475
var now = Date.now();
while(now + 2000 > Date.now()){}

setTimeoutとpromise使ったほうが絶対いいよ
0479デフォルトの名無しさん2015/12/23(水) 16:22:58.88ID:v4yXy6ML
>>476
お前がアホな実装しか出来ないのは分かったが
そういう話をしているんじゃない。
04804762015/12/23(水) 18:28:18.45ID:qlqX4ccz
>>477
function sleep (delay) {
var date = new Date;
while (new Date - date < delay);
}
sleep(2000);
console.log('test');

どう考えても setTimeout() を使った方が良い。
同期処理で sleep() を実装しようとする設計がアホ。
0481デフォルトの名無しさん2015/12/23(水) 18:32:35.22ID:Bay2doKJ
>どう考えても setTimeout() を使った方が良い。
だったらその例を教えてけろ
0482デフォルトの名無しさん2015/12/23(水) 18:43:12.65ID:MksdZDM7
リファレンスを読めばわかる
https://developer.mozilla.org/ja/docs/Web/API/Window/setTimeout
0483デフォルトの名無しさん2015/12/23(水) 18:46:15.21ID:Bay2doKJ
>>482
分からないんです。
settimouotでsleep実装出来ますか?
0484デフォルトの名無しさん2015/12/23(水) 18:53:15.76ID:qlqX4ccz
>>483
出来ない。アホな実装しか出来ないといっただろう。
素直に非同期処理を使え。
0485デフォルトの名無しさん2015/12/23(水) 19:16:39.46ID:fUoT5vqI
ところで、 sleep を頑なに拒んで Promise や async/await にこだわる理由はなんだろう?
どう考えても sleep の方が使いやすいときがあるが。
0486デフォルトの名無しさん2015/12/23(水) 19:24:23.93ID:rBnsJIlR
画面触れなくなるじゃん
0487デフォルトの名無しさん2015/12/23(水) 19:33:10.34ID:fUoT5vqI
ちげーよ。本物の sleep を JavaScript が採用しないのが不思議だと言ってるんだよ。
0488デフォルトの名無しさん2015/12/23(水) 19:44:06.77ID:qlqX4ccz
同期処理にしたらDOM読み込みや他の処理全てがブロックされるからだろ
0489デフォルトの名無しさん2015/12/23(水) 19:51:12.02ID:fUoT5vqI
他言語の sleep はそこでスレッドをスイッチするから他処理をブロックしない。
お前らこの単純な事実を知らないのか?
0490デフォルトの名無しさん2015/12/23(水) 20:00:54.54ID:tFvVWMos
(笑)
0491デフォルトの名無しさん2015/12/23(水) 20:04:35.74ID:qlqX4ccz
>>489
同期処理なんだから後述処理は完全にブロックされるだろ
HTMLパースも同期処理なのを知らんのか
0492デフォルトの名無しさん2015/12/23(水) 20:26:19.51ID:MksdZDM7
JavaScriptはシングルスレッドで同期処理だから sleep() 時に処理がブロックされる必然
他言語ではなくてJavaScriptでどうなるかを考えたら?
0493デフォルトの名無しさん2015/12/23(水) 21:14:21.37ID:fUoT5vqI
お前ら相変わらず話が通じないな。

>>491
> HTMLパースも同期処理なのを知らんのか
知ってるよ。だからHTML上に<script src=>やると云々、書く場所は考えろってやつだろ。
ただ WebWorker を使った場合は sleep(0) があった方が綺麗に書けるんだよ。
(とはいえsleep(0)ならasync/awaitで問題ないが)

>>492
JavaScript はデタラメに仕様を拡張してきているのに、
なんで sleep を採用しないのか不思議だと言ってるんだよ。
0494デフォルトの名無しさん2015/12/23(水) 23:12:11.47ID:v4yXy6ML
> なんで sleep を採用しないのか不思議だと言ってるんだよ。
ブラクラに使われるからだよ。

sleep 100000000とかやられたら画面が固まるだろ。
そりゃブラウザによっては固まらないようにするかもしれないが、
それはそのブラウザの独自機能。タブも独自起動。

タブもウインドウもないブラウザだって有るわけで、
画面が固まったら何もできなくなるだろ。
0495デフォルトの名無しさん2015/12/23(水) 23:18:01.50ID:fUoT5vqI
ちょっと考えてみたが、 async/await と Promise で実装できそうな気がする。
await は Promise を受け取れるし、 ---(A)
Promise 内で SetTimeout できるようなので。 --- (B)

(B)についてはMDNのサンプルコードで確定。
(A)については仕様の頭を読んで他サイトの記述を見る限り多分出来そう。
(ただし全部読んでないので間違っているかも。)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise
http://tc39.github.io/ecmascript-asyncawait/

それにしても、 sleep を意地でも実装しない理由って無いと思うよ。
async/await 入れた時点で function 途中でのスイッチが行われるのだから、
sleep と可読性の損なわれ方は変わらないはず。


と思っていたが
>>494
> ブラクラに使われるからだよ。
なるほどこれはあるかもな。

しかしそれを言うなら、あっちのスレの話題で今更ながらFC2ブログがJS自由なのを知って、
ちょっと寒気がしてます。
0496デフォルトの名無しさん2015/12/23(水) 23:29:03.26ID:fUoT5vqI
>>494
すまん訂正。思いっきり間違えた。

> > ブラクラに使われるからだよ。
> なるほどこれはあるかもな。
スピンロックの sleep ならブラクラになるが、通常のサスペンドロックの sleep ならブラクラにはならない。
俺が入れてもいいのではないかと思っているのは当然後者。
だからこれは当てはまらない。
0497デフォルトの名無しさん2015/12/24(木) 00:32:33.07ID:vhy24jAm
>>496
だからそれはJavaScriptの仕様で決めることは出来ないんだよ。
搭載したいと思うなら、ブラウザが勝手に搭載すればいいわけで、
実際サーバーサイドJavaScriptでは、sleepはブラウザに相等する
実行環境が提供している。
0498デフォルトの名無しさん2015/12/24(木) 00:54:43.31ID:eesjQKa2
sleep() があったら sleep(Infinity); で永遠に読み込みが終わらない現象を発生可能な件
0499デフォルトの名無しさん2015/12/24(木) 01:10:40.88ID:vhy24jAm
>>496
> スピンロックの sleep ならブラクラになるが、通常のサスペンドロックの sleep ならブラクラにはならない。

あと、スピンロックかどうかは関係ない。
それはJavaScriptはWeb Workerを作って明示的に別スレッドを作らないかぎり
(悪意のあるブラクラサイトがわざわざ別スレッドを作るわけがない)
シングルスレッドなのだから、スピンロックでもサスペンドロックでもブラクラになる。
スピンロックだとCPUを食うというだけの話。
0500デフォルトの名無しさん2015/12/24(木) 01:33:21.10ID:ij3qlZ6A
ブラクラになるとか頭おかしいのか・・
フリーズしなくすれば良いだけ
0501デフォルトの名無しさん2015/12/24(木) 01:48:04.37ID:vhy24jAm
>>500
だからフリーズしなくなる機能をつけるのは
ブラウザの仕事であって、JavaScriptではないということ。

例えばalertなんかOK押すまでsleepするのと同じなんだが、
今のブラウザはalertでても、ページ内の操作は当然無理だが、ウインドウは触れるだろ。

でもalertはブラクラに使われていたんだよな。後からブラウザが対策した。
もちろんalert等はブラウザの機能であってJavaScriptの機能ではない。
alertのようなブロックする関数は今の考え方では失敗と言うべきだろう。
0502デフォルトの名無しさん2015/12/24(木) 02:09:31.15ID:3SycHtsF
>>501
何があってもブロックさせないという仕様は、確かにブラウザには必要なのだろう。
ただ、sleep を await と同じ扱いにすればいいだけだろ。
I/Oとかは全面的に await でいいのは事実だけど、
sleepの方が使いやすい局面があるから昔から sleepガー という奴がいるわけで。

> だからそれはJavaScriptの仕様で決めることは出来ないんだよ。
> それはJavaScriptはWeb Workerを作って明示的に別スレッドを作らないかぎり
> シングルスレッドなのだから、
これが出来ない理由にはならないんだよ。だったら await はどうなの?
await の所で他の function が実行できるんだよね?(仕様読んでないけど)
それは別スレッドを作っているのと見た目は同じだろ。
内部的に糖衣構文化してイベント待ちに自動的に切り換えてくれているのなら、
sleep も同様にそう作り込めばいいだけなんだよ。
await を導入している時点で、sleep が導入できない理由はないんだよ。
sleep は await のタイマイベント待ち版でしかないんだから。
(通常の await は I/O 待ち)
0503デフォルトの名無しさん2015/12/24(木) 04:48:17.07ID:vhy24jAm
http://smart.ataglance.jp/2015-04-02-try-async-await-with-babel/
awaitってこれだろ? ES7ではいるやつ。

> async function countUp() {

これを実装するには、asyncという構文にJavaScriptが対応しないと実現できないんだが?

お前が言ってるのは、今のJavaScriptでは実現不可能。なぜなら対応してない機能が必要だから。
という事実に対して、最初からJavaScritpはasyncという文法に対応していれば
よかったんだってってことだろ? たられば論な。

別の言い方をすれば、
問い なぜsleepに対応してないのか?
答え asyncに対応してないから。
ってことなんだが?

将来サポートされる機能で実現可能だと言われた所で、
今サポートしてない理由は、今のJavaScriptでは実現不可能だからだろ。

どんなにsleepを作りこんだ所で、asyncは実現できない。
それともお前が言ってる "作り込み" っていうのはBabelみたいにES7をES5とかに変換するツールを
JavaScriptで作って、実行時にソースコードを変換するようするって話か?
0504デフォルトの名無しさん2015/12/24(木) 05:00:33.39ID:vhy24jAm
あとそれからももう一回っておくけど、
asyncやwaitがあった所で、JavaScriptにはタイマーがないんだよ。
JavaScriptにファイルアクセス命令がないようにタイマー命令もない。

それはJavaScriptにタイマーは含めないと決めたから。

awaitやasyncがあった所で、タイマーが存在しなければ、
ビジーウェイトしないかぎり、実現不可能。

それがawaitやasyncを入れても、タイマーを入れない理由。
そういうのはJavaScriptではなく実行環境が提供すべき機能で
JavaScriptには入れるべきではないという考えから入れていない。
0505デフォルトの名無しさん2015/12/24(木) 05:09:19.58ID:5dQYZNYi
ただの構文糖ならJavaScriptという言語に追加できるけど、
sleepを実現するのに必要なタイマーは構文糖じゃないからな。

JavaScriptに新しい機能を追加しようという話になってる。
タイマーを一般化すると割り込みとかシグナルになるわけだけど
JavaScriptに割り込みやシグナルにアクセスする機能を追加するって話になる。

タイマーは構文糖じゃないから取り入れられないんだよ。
0506デフォルトの名無しさん2015/12/24(木) 05:31:32.68ID:5dQYZNYi
>>502
> (通常の await は I/O 待ち)

await はI/O待ちではない。
I/O待ちするのはブラウザを含めた実行環境の仕事

JavaScriptは、基本的にI/Oを操作しない。
(近いのはconsole.logぐらいだがこれもコンソールに
出すってだけで出す場所は定義されてない)
0507デフォルトの名無しさん2015/12/24(木) 07:16:17.38ID:YlRH46yJ
安易に使うやつでてくるから駄目でしょ
sleep中にHTMLや変数かわるとかさ考えてないやつでてくるだろう
考えなくていいのがいいところだし

するとしたら既存のjavascriptには影響なしで理解してないやつには使いにくい機能追加だな
0508デフォルトの名無しさん2015/12/24(木) 07:34:18.13ID:Y5sNONvq
この前別スレでこの手の話出てたけど、
ES7でスレッド制御できるようになるからsleep出来るじゃん。
参考:http://js-next.hatenablog.com/entry/2015/09/30/225251
それと非標準では昔からいろいろある。
0509デフォルトの名無しさん2015/12/24(木) 07:54:24.80ID:xUUCJBux
UIスレッドとスレッドセーフの区別がついてないのまで出てきてカオス
0510デフォルトの名無しさん2015/12/24(木) 09:05:14.13ID:kShQ38jb
俺が、俺たちがカオスなんだ!
0511デフォルトの名無しさん2015/12/24(木) 12:37:48.96ID:lTmsChXg
>>508
将来搭載される機能使えば、実現可能だからって、なんで今sleepないの?と
聞かれてもな。今は実現不可能だからに決まってるだろ。

そもそもWorkerはブラウザのAPIであってES7じゃない。
ESにasync/awaitという構文が追加されたのはただの構文糖だからで実現可能だったからで、
構文糖で実現不可能なタイマーへのアクセスは、将来にわたってもできることはないだろう。
ファイルアクセスなどのI/Oに対応しないのと同じ理由で、
ESの範囲ではタイマーを扱うべきではないと考えているはず。

ブラウザの機能の話であれば、それはsetTimeoutがあるから十分じゃん?
setTimeoutがasyncを使った実装になってないのは、今のJavaScriptは対応してないからだ。
しかも、それはブラウザのAPIの話。async構文を使ったsleepを実装しろ!というならば
ブラウザのAPIに対してだろう。サーバーAPIはすでにあるわけだから。
0512長くなったから分割2015/12/24(木) 12:39:45.82ID:lTmsChXg
もっとも、どう頑張ってもsleep(1000)みたいな形で使えるようになることはない。
>>503の例のように、await sleep(1000); というawait構文を使った形になる。

そしてasync、awaitはただのPromiseの構文糖なのだから、Promiseを返す
関数であれば、ES7でasync、awaitを使って書くことができる。

だから、Promiseを返すバージョンのsetTimeoutとして、
sleep(1000).then(function() { ・・・ }) みたいな使い方をする
ブラウザのAPIが新しく作られることは有るかもしれない。
そして、これならば今のブラウザでも動く。
0513デフォルトの名無しさん2015/12/24(木) 12:46:55.90ID:lTmsChXg
>>495
> ちょっと考えてみたが、 async/await と Promise で実装できそうな気がする。

Promiseというものが最初にできて、それを "簡単に記述できるようにしただけ" のものが
ES7に追加されることになった新たな文法のasync/awaitなんだが。
これは新しい文法なんだから、Promiseで "実装" することは出来ない。

Promiseを返すように作られた関数があって、
それを使う時の書き方の一つでしかないよ。
0514デフォルトの名無しさん2015/12/24(木) 12:56:26.66ID:YlRH46yJ
javascriptみたいな使いにくい言語に難しいことすんなや
0515デフォルトの名無しさん2015/12/24(木) 13:30:58.58ID:lTmsChXg
難しいかどうかは人それぞれだからw
0516デフォルトの名無しさん2015/12/24(木) 14:21:38.37ID:+OAEjoT0
promiseってjavascriptで書かれているんだろ?
だったら今でもsleep出来るんじゃないか?
0517デフォルトの名無しさん2015/12/24(木) 16:22:07.01ID:lTmsChXg
>>516
PromiseはJavaScriptでかけるが、
sleepを実装するのに必要なタイマー機能(割り込みやシグナル)が
JavaScriptでは使えないんだよ。

これらはブラウザかnodeのようなJavaScript実行環境が
提供するしか無い。
0518デフォルトの名無しさん2015/12/24(木) 16:50:27.79ID:QHPA1t+Q
Javascriptの開発環境はなにがいいのですか?
この言語はまだ初心者で経験ないけどこれからやるために。
サクサク動くの希望。

調べたらVisual StudioでもEclipsでもできるらしいけど、本当にみんなこんなのでやってるの?
0519デフォルトの名無しさん2015/12/24(木) 16:57:32.84ID:lTmsChXg
>>518
JavaScript含めた動的言語は、言語の仕様からIDEを使っても
さほど大きな開発サポートは得られないので、諦めてテキストエディタ使ってるよ。
静的言語ならIDE使うとすごく便利なのにな。
0520デフォルトの名無しさん2015/12/24(木) 17:00:13.00ID:QHPA1t+Q
>>519
ひょっとしてメモ帳?
でもちょっと本格的になったら無理じゃない?
コード入力で単語を自動選択ポップアップすらないと。
0521デフォルトの名無しさん2015/12/24(木) 17:01:10.52ID:lTmsChXg
>>520
メモ帳なわけがないだろう。
まあ単語の自動選択は使ってないがな。
これも完璧じゃないので。
0522デフォルトの名無しさん2015/12/24(木) 17:10:04.57ID:QHPA1t+Q
>>521
じゃなにつかってるの?
0523デフォルトの名無しさん2015/12/24(木) 17:57:12.05ID:k1/8SWkC
>>511
ES7と言ったのはAtomicsのことだよ。
そしてsleepは不要で合わなくてそのような機能は実装されることがないというような論に対して言ったんだよ。
AtomicsAPIは立派なスレッド制御のための新しい機能で、糖衣構文の類ではない。
ESの範囲で扱うべきだと考えられているから存在している。
0524デフォルトの名無しさん2015/12/24(木) 18:06:22.44ID:lTmsChXg
>>528
何の話してるの?

俺が言ってるのは、タイマーはES7の機能として実装されないから
sleepはES7の範囲内では無理って話してるんだが。

スレッドあってもsleepはビジーウェイト以外では
実現できないんだよ。
0525デフォルトの名無しさん2015/12/24(木) 18:09:16.10ID:lTmsChXg
なんか前の方ではスピンロックとか意味不明な用語の使い方してるし、
名前だけ知ってて、基礎ができてないんじゃないか?
0526デフォルトの名無しさん2015/12/24(木) 21:52:25.60ID:bR1u9BVC
setTimeoutとyieldでsleepは簡単に実現できるけど、setTimeoutはjsには含まれてないもんな
どうでもいいがWScriptにはそのまんまsleepがあるな
0527デフォルトの名無しさん2015/12/24(木) 23:10:08.57ID:RAVtKX98
>>522
Atom.ioのエディタとChromeの開発者ツールかな
一応、打ち込んだ変数名の推測表示はしてくれる
0528デフォルトの名無しさん2015/12/24(木) 23:16:17.63ID:QHPA1t+Q
>>527
なるほどありがとう
もしChromeの使うならとくになにもインストールしなくてもついてるやつですか?
0529デフォルトの名無しさん2015/12/24(木) 23:31:57.10ID:RAVtKX98
>>528
Chromeに最初から付いてる、メニューから使えるやつ
開発中は.min.jsじゃなくて.jsを使うんだぞ
ブレークしてウォッチすればライブラリにどんなメソッド有るかとか見えるし、中まで追っていける
0530デフォルトの名無しさん2015/12/25(金) 09:17:26.40ID:tK87TiQA
>>526
sleepはスレッドの停止であって、
コルーチンの留保とはぜんぜん違う
0531デフォルトの名無しさん2015/12/25(金) 10:00:37.15ID:/jFYFGFJ
>>480
香ばしワロタ
0532デフォルトの名無しさん2015/12/25(金) 10:12:54.99ID:tK87TiQA
まあsleepをビジーウェイト程度に考えてちゃ有用性は分からないだろうな。
ビジーウェイトじゃないし本来wakeとセットで有用なものでもあるからね。
0533デフォルトの名無しさん2015/12/25(金) 17:56:50.40ID:MWeRnh5+
ほーい現行スレ

http://peace.2ch.net/test/read.cgi/hp/1448293871/l50
0534デフォルトの名無しさん2015/12/25(金) 20:46:43.80ID:mCWQHNVj
そもそもUIスレッドでsleepできて何が嬉しいの?
0535デフォルトの名無しさん2015/12/25(金) 22:39:08.53ID:XoBMqT50
>>529
なるほどありがとう。
ところでChromeでコードを書く場所はどこにあるの?
F12押したときに出てくる画面の上部のタブのElementsやSourcesをクリックしてコードを見ても
これは見るだけはできても編集して書き込むことができない。
0536デフォルトの名無しさん2015/12/25(金) 23:46:42.58ID:OVXWXNxb
>>535
AtomやVisualStudio CodeなどエディタでHTML/CSS/JavaScript/PHP/Curlのテスト用コマンド などを書いて、
クライアントはChromeとかIEとかスマホとかいろいろ試すわけですよ
ttp://tech.nitoyon.com/ja/blog/2015/11/20/try-vscode/

書いて置いておくのはWebサーバのある場所
読み込んで動くのはクライアントに居るChromeやIE
だから、Chromeでは見られるけど編集できないのが自然なわけ

VisualStudioならWindowsフォーム書いてその場で動かせるのに、wwwってめんどくさいですね?
そしたら ttp://Electron.atom.io てのを調べてみよう
0537デフォルトの名無しさん2015/12/26(土) 04:58:55.05ID:56T1awou
>>534
サブスレッドとの同期等
0538デフォルトの名無しさん2015/12/26(土) 05:02:09.76ID:h8/CI80S
>>537
それは答えじゃない。

何が嬉しいの?っていうのはユーザーにとっての話だ。
嬉しいこと(答え)ではなく、何ができるのかしか言っていない。
サブスレッドと同期ができて人は何が嬉しいのか?
それが求められている答えだ。
0539デフォルトの名無しさん2015/12/26(土) 16:51:32.69ID:Dx/LxDfY
簡単に同期ができるとマルチスレッドプログラミングが格段にやりやすくなる。
例えばメインスレッドでは同期処理と同じような感覚でマルチスレッドを使う関数を使える。
それだけならawaitでもいいじゃんと思うかもしれないが、
sleep/wakeはマルチスレッドプログラミングに付き物の競合問題も解決してくれる。

まあでもWebに関しては、現状の状態を鑑みるに、別にサブスレッドを束ねるマスタースレッドを作って、
UIスレッドでは下手にsleepしたりしないほうが良いと思う。
DOMとJSとのイベントループが絡まっているため、現状の仕様というか素直な実装による挙動だと、
JSでsleepするとUIも固まってしまう。
だから今のところの現実解は別個にマスターワーカーを作り、UI側とのやり取りはasync/await
ワーカー同士はsleep/wakeでするのがベストだと思われるがどうか。
0540デフォルトの名無しさん2015/12/26(土) 17:02:03.43ID:h8/CI80S
話ずれ過ぎw

今はwakeの話はしていない。たんなるsleep(秒数)だ。

これはJavaScriptの範疇じゃないってだけ。
ブラウザを含めた実行環境が提供すればいいだけの話。
実際にサーバーサイドJavaScriptは実行環境が提供している。
0541デフォルトの名無しさん2015/12/26(土) 19:01:28.66ID:AaVX3RoX
書き方以外のメリットはないみたいね
0542デフォルトの名無しさん2015/12/26(土) 20:25:26.24ID:EPUewKIt
>>535
そこに実ファイルドロップして、右クリで追加したら触れるようになるはず。
0543デフォルトの名無しさん2015/12/26(土) 21:10:28.86ID:Sgv0r5+y
関数の引数で、
function func1(int) {
 ...
}
func1(10);
みたいなシンプルなデータを渡す場合と、
function func2(win) {
 ...
}
func2(window);
みたいに、大きなオブジェクトを渡す場合とで、処理速度に差が出ますか?
0544デフォルトの名無しさん2015/12/26(土) 21:56:15.94ID:lqDTULGo
大きなオブジェクトへの参照を渡しているだけだから
想像しているような差はないと思っていいよ
0545デフォルトの名無しさん2015/12/27(日) 01:18:53.59ID:LwSAm1fH
SMIは他のあらゆる値と違って直接レジスタに畳み込めるから有利。
ただし64bit環境と最新のエンジンではその限りではない。
0546デフォルトの名無しさん2015/12/27(日) 04:25:15.40ID:t0JLu8LK
AngularJSでハマったわ…
angular.module('App01',[依存モジュール]);
angular.module('App01',[別の依存モジュール]);
2回目ので最初のを上書きしてしまうのだった
ただ単に最初のコントローラが消えてしまうのでエラーも何も出ないし
0547デフォルトの名無しさん2015/12/27(日) 04:53:58.23ID:Y7IK7QLW
そういうのを検出してくれるのがあった気がするけど忘れたな。
気のせいかもしれない。
0548デフォルトの名無しさん2015/12/27(日) 05:18:31.87ID:zCo3FkO+
app.js として一行だけ
angular.module('myApp',[サブ1,サブ2…]);
ルーティングやコントローラで
angular.module('サブ2',[依存モジュール])
とすることにしました。
追加のたびにapp.js書き換えになるけど単体テストがやりやすそうだし
0549デフォルトの名無しさん2015/12/28(月) 12:18:40.57ID:MpvL/SZu
phantomJSはウェブブラウザと同じことが出来ると使ってみたら表示されないページが在ったり、ハングアップしたりして全然使い物になりませんね。
0550デフォルトの名無しさん2015/12/28(月) 19:56:19.32ID:aQp7bRaK
会社のPCの権限を制限されてツール等をインストールできないとき
Javascriptはどうやって書いてますか?
0551デフォルトの名無しさん2015/12/28(月) 21:46:31.78ID:VijL79y/
>>550
そんな会社をやめる
0552デフォルトの名無しさん2015/12/28(月) 21:53:35.78ID:rsmzLifY
>>550
JavaScript に権限など必要ない
0553デフォルトの名無しさん2015/12/28(月) 22:29:37.56ID:aQp7bRaK
>>551
まあ転職予定だ

>>552
いや開発環境としてのエディタがインストールできないという意味だ。
もしかしてみんなこんなときメモ帳で書いてるの?
0554デフォルトの名無しさん2015/12/28(月) 22:34:48.53ID:qCU45Dy7
>>553
Webアプリ使おう
0555デフォルトの名無しさん2015/12/28(月) 22:40:34.12ID:rsmzLifY
>>553
仕事で必要なら権限がある人に申請を出すだけでいいのでは?
0556デフォルトの名無しさん2015/12/28(月) 22:52:13.74ID:mtPLZTEK
インストール不要の物使え
0557デフォルトの名無しさん2015/12/28(月) 23:03:07.01ID:aQp7bRaK
>>554
それはどのようなものですか?

>>555
仕事て使うほど大げさではなく
ふだんやることのほんの一部を自動化するだけなので
なぜチームでオレだけが必要か説明できないよ。

>>556
それはzipをダウンロードすることだと思うけど
勝手なダウンロードも監視&禁止されてるのよ。
いっかいそれで警告を受けたからもうできない。
0558デフォルトの名無しさん2015/12/28(月) 23:27:51.67ID:VijL79y/
やめる前に、業務に"必須"なものまでインストールが制限されており、
"作業効率が著しく低く"、こんな環境ではまともな仕事ができないから
って言ってあげてねw
0559デフォルトの名無しさん2015/12/28(月) 23:29:15.43ID:VijL79y/
ダウンロードは誰が禁止しているのですか?
なるほど、つまり○○さんが、
他人の仕事の邪魔をしているわけですね。
って言ってあげてねw
0560デフォルトの名無しさん2015/12/28(月) 23:30:21.82ID:aQp7bRaK
でかい会社だからITのネットワークチームかどこかが監視してるのよ。
0561デフォルトの名無しさん2015/12/28(月) 23:34:13.51ID:VijL79y/
VirtualBox + Linux さえ許可されれば、
あとは自由にアプリインストールし放題だけどなw

パッケージマネージャーで入れるものはすべて
Linuxに含まれているものだからねw
0562デフォルトの名無しさん2015/12/29(火) 02:10:16.17ID:q3r6ryfw
>>557
Webのエディタだよ
JavaScript エディタ Webでぐぐったら色々出てくると思うよ
0563デフォルトの名無しさん2015/12/29(火) 10:23:17.64ID:u34Ypxab
>>562
それはわりと標準的な開発手法でしょうか?
0564デフォルトの名無しさん2015/12/29(火) 10:25:49.11ID:+waEXqzn
Cloud9 IDEとかね
Nitrousとか色々あるのな最近
0565デフォルトの名無しさん2015/12/29(火) 11:13:02.88ID:NA8hl+pp
>>563
標準的になりつつある
0566デフォルトの名無しさん2015/12/29(火) 11:40:30.88ID:p61NlkkE
もう、ローカルにXAMP環境作るとか時代遅れなのね
0567デフォルトの名無しさん2015/12/29(火) 12:29:10.19ID:0EeRezxI
>>557
zipのダウンロードが許可されないのにWebアプリやクラウドを使う事は許可されるの?
もう少し、環境(OS、インストールされているアプリ)や「許可されるボーダーライン」を開示しないと誰も答えられないと思う。
0568デフォルトの名無しさん2015/12/29(火) 13:54:31.05ID:S7hPg+te
>>566
実機はどうせライセンスの関係からLinuxにならざるをえないんだから、
ローカルにはLinuxを仮想マシンで入れたほうがいいと思う。
0569デフォルトの名無しさん2015/12/29(火) 14:46:39.92ID:5o0CYWec
会社で使うものを、自分で決めたらダメ!
仕事をするため、開発ツールを下さいと言う。
そしたら、会社既定のツールをくれるはず

ツールをくれない、または使いにくい場合には、
会社と交渉すればよい

人間は、要望と現実のはざまに生きている。
これはどこの会社でも、常に起きていること。
コマツなどがやっている、持続的なカイゼン

一つ要望書を書くと、500円くれる会社もあるぐらい
0570デフォルトの名無しさん2015/12/29(火) 20:44:06.13ID:bXnVWHmy
禁止してるのって大体流出を防ぐためだろ?
それをクラウド活用とか一番危険な方法なんじゃね
素直に担当の者に文句言えよ
0571デフォルトの名無しさん2015/12/30(水) 03:24:06.22ID:1yiA+igC
サーバサイドで伺いたいんだけど
今は業務系の軽いの(カタログメンテと提供とか)を、
クライアントはBootstrapとAngularJS
サーバはPHPでREST応答するだけ
で書いてるんすよ、
SPAで一機能がViewとコントローラーとPHPで分けられて分かりやすいし今風の画面に出来るので割と満足
jQueryのスクリプトも消えたし

サーバもNode+Sailsに移行するのってどうかな?
まだ慌てる時間じゃないですかね
ややこしいSQLも多いしなー
0572デフォルトの名無しさん2015/12/30(水) 07:35:07.93ID:VhbZvOcQ
これからはSWも間に入ってくるからな。
まあSWを単なるキャッシュプロキシとしか使わないのなら既存のアーキテクチャを弄らないでいいし、
SPAを半分やめる(SW側でHTML生成)と言う手ならCGIと相性もいい。
だが本当にSPAでやっていくつもりならNodeとかの方が相性がいいよ。
0573デフォルトの名無しさん2015/12/31(木) 04:04:36.44ID:Ncwbd3/V
SWって何です?
0574デフォルトの名無しさん2015/12/31(木) 04:08:01.18ID:GyVEm/AS
ストライクウィッチーズ
0575デフォルトの名無しさん2015/12/31(木) 04:08:26.31ID:GyVEm/AS
略してストパン
0576デフォルトの名無しさん2015/12/31(木) 14:30:23.50ID:CH+I0c4Z
非同期な処理を5個実行して、その結果が全部得られたら
ある関数を実行したいのですが、そういう場合、全部結果が得られた
時点でイベントを発生させるなどの方法はありますか?
0577デフォルトの名無しさん2015/12/31(木) 14:46:12.72ID:YSMAjmpZ
>>576
あるよ
0578デフォルトの名無しさん2015/12/31(木) 15:14:27.69ID:CH+I0c4Z
>>577
先生、教えて下さい
0579デフォルトの名無しさん2015/12/31(木) 15:25:56.96ID:FyuHG/9Y
Promise.allでググれ
0580デフォルトの名無しさん2015/12/31(木) 15:39:13.53ID:CH+I0c4Z
>>579
プロミス無しの方法論教えてください
0581デフォルトの名無しさん2015/12/31(木) 15:43:03.00ID:YSMAjmpZ
>>580
あるけど、promiseが楽やで
0582デフォルトの名無しさん2015/12/31(木) 15:46:45.00ID:CH+I0c4Z
>>581
先生教えてください
0583デフォルトの名無しさん2015/12/31(木) 16:05:17.19ID:CH+I0c4Z
>>581
早く教えてくれよ。明日お客さんに提出なんだ。
0584デフォルトの名無しさん2015/12/31(木) 18:30:48.73ID:D5b/7JR8
javascriptでcsvのファイルのDBをADOでSQL実行後のデータをHTMLに表示したいです。
普通にやればadodb.ConnectionのDriverを指定するところでエラーが出て困ります。
いい方法はございませんか?
0585デフォルトの名無しさん2015/12/31(木) 18:53:58.39ID:P+3Yt6u7
>>576
function trigger() {
; var i = 0;
; return = function() {
; i++;
; if(i === 5) {
; }
}
0586デフォルトの名無しさん2015/12/31(木) 18:57:55.23ID:P+3Yt6u7
途中で送信してもうた
function trigger() {
var i = 0;
return function() {
i++;
if(i === 5) {//ここにやりたい処理を書く}
}
}

んで非同期処理の中でtrigger()する
0587デフォルトの名無しさん2015/12/31(木) 19:42:40.92ID:CH+I0c4Z
>>586
師匠、ありがとうございました。
0588デフォルトの名無しさん2016/01/01(金) 00:12:59.57ID:Pwb+YVLm
日付けが変わる事で思い出した、あけおめ
AngularJS UI BootstrapのDatePicker
2016-01-01 が入って来ると、GMTの2016-01-01 00:00と解釈して勝手にローカルタイムに変換すんのよね
日付けだけの場合はオフセットを引いて表示
DBに時刻も入ってる場合にはオフセットを足してGMTとして表示か足さないでローカルタイム変換表示か選ぶ
としてなんとかしました
0589デフォルトの名無しさん2016/01/01(金) 10:10:25.79ID:sVrrx3Fu
Javascriptで他データベースの内容をSQL使ってHTMLに貼り付けるには
どういう方法が一番スタンダードで簡単ですか?
0590デフォルトの名無しさん2016/01/01(金) 11:19:25.44ID:8/Gx7/Xd
>>589
とりあえずPHPで、データベースから読み込んでprint_rするのを書こう
出来たら、結果をjson_encodeして出力するようにする

JavaScript側では、検索条件が有るならクエリ文字列で
/reader.php?name=John&address=Tokyo
とか作って渡す、Ajaxを使う
戻って来たら、JSON配列からテーブルに書き出す

Ajaxと書き出す処理はjQueryをまず使ってみよう

こういう動作をまとめて書いておいてくれるフレームワーク、とかも有る
0591デフォルトの名無しさん2016/01/01(金) 11:39:09.14ID:sVrrx3Fu
>>590
PHPとか知らないですが、上記のやりたいことだけやりたい場合はちょっとそこだけ調べればできますか?
あとPHPはサーバー側になにかが入ってないとできないようなことはありませんか?
0592デフォルトの名無しさん2016/01/01(金) 11:44:10.49ID:8/Gx7/Xd
>>591
PHPとjQueryはぐぐれば山ほど参考は出てくるよ
レンタルサーバーでPHPが入って無いほうがおかしいくらいな普及度だし。
自前のサーバーでPHP入って無いならもちろん入れないとあかん
0593デフォルトの名無しさん2016/01/01(金) 16:20:39.94ID:v7+Qi1Tj
>>589
JavaScriptで直接SQL文を発行するならnode.jsを使うのが現実的じゃない?
PHPにSQL文を渡して実行させるなんて恐ろしくて出来たもんじゃない
0594デフォルトの名無しさん2016/01/01(金) 16:49:04.54ID:X239jc0x
>>593
どのあたりが恐ろしいんですか?
0595デフォルトの名無しさん2016/01/01(金) 23:50:11.72ID:Pwb+YVLm
>>594
SQLインジェクション
でぐぐれ
0596デフォルトの名無しさん2016/01/02(土) 01:10:06.93ID:BVEMaZcP
>>595
あほらし
0597デフォルトの名無しさん2016/01/02(土) 12:59:44.44ID:olyp4gRN
>>596
そういう感想が脆弱性を生み出すんだろうね
0598デフォルトの名無しさん2016/01/02(土) 14:12:57.25ID:VM0jeeLd
まさかのノーガード戦法かっ?
0599デフォルトの名無しさん2016/01/03(日) 12:14:56.36ID:T8rePiVl
phpだからとか関係ないよなそれ
0600デフォルトの名無しさん2016/01/03(日) 13:15:08.98ID:zEXG4Enn
サーバー側にはクライアントから受け取ったSQL文を実行するだけのPHPを一個だけおけばいいんや!
俺って天才やな
0601デフォルトの名無しさん2016/01/03(日) 17:21:56.94ID:GxBav+6o
>>600
>>595
0602デフォルトの名無しさん2016/01/03(日) 17:26:14.18ID:hRXTiNB3
>>601
ネタをネタと分からないつまらない奴
0603デフォルトの名無しさん2016/01/03(日) 22:29:46.84ID:fYrA7DHT
つまらないネタを披露する人よりも生真面目な人の方が数段マシ
0604デフォルトの名無しさん2016/01/04(月) 00:57:59.87ID:4k++bHeC
正月休みにAngularJS勉強してたんすけど
VB.NETから来たから分かりやすくていいわ
どっかにng-click=なんちゃら、と書いて
JSで$scope.なんちゃら=function(){} と書けば動くし
ng-repeatはaspxのリピーターだし
上に検索条件
中段に見つけたデータのテーブル表示、編集選択ボタン、ヘッダをクリックでソート
下部に編集用フォーム
を一画面に並べたのが作れました
これで今のシステムの99%は作れるw
0605デフォルトの名無しさん2016/01/04(月) 04:34:30.60ID:EecBIAlc
もうちょっとしたらAngular2の正式リリースも来るので
今年勉強するなら間違いなく2の方をした方がいいよ
0606デフォルトの名無しさん2016/01/04(月) 04:57:49.62ID:kstA/+8g
>>604
AngularJSって一言で言うと何よ?
0607デフォルトの名無しさん2016/01/04(月) 06:47:18.12ID:4k++bHeC
>>606
一言で言うと…なんだろ?
HTMLに書いたng-model とかの記述を拾って、JSに書いた同じ名前の記述と紐付けてくれます

ng-controller指定するとJSの.controller(){ } を呼んでページの初期化が動く
ng-model=変数名 と書いておくとJSで$scope.変数名で読み書き出来る
ng-click=関数()と書いておくとJSに置いた関数呼んでくれる

HTML、JS、RESTで既存のデータモデル、の組み合わせが綺麗に出来ました。
ascxとascx.vbより、コードの独立性が高くていいね
0608デフォルトの名無しさん2016/01/04(月) 10:12:37.61ID:kstA/+8g
>>607
ありがとうございました。
でも全く理解出来ませんでした。
勉強します
0609デフォルトの名無しさん2016/01/04(月) 11:29:42.74ID:IiCTgRqi
>>608
ng は、A「ng」ularJSから来てるのね
HTMLにng-modelとか無いでしょ、ブラウザには解釈されないけどこれを書いて置くとangular.jsが読んで動くわけ
Angularはコードの量が少ないしhtmlもJavaScriptも「汚く」ならない
ttp://jsfiddle.net/yoshiokatsuneo/pqku2r33/
例えばこのサンプル、JavaScriptを削除してもそのまま見えるし、JavaScriptはHTMLに関係無く動かせる

山田祥寛の本も出てるから買うといいです
0610デフォルトの名無しさん2016/01/04(月) 12:43:41.52ID:MLQcDM5i
そういうコントローラ書くのってダルいからな
0611デフォルトの名無しさん2016/01/05(火) 00:50:25.31ID:XibfkEF5
テンプレのライブラリ質問所は落ちてたのでこっちに書く

・状況
jquery2.1.4を使ってるんだが、
アクセスする度にstats.jsとか言うのを外部に取りに行ってるみたいで、
これがものすごく重くて困ってる
http://www.dotup.org/uploda/www.dotup.org687590.jpg

・質問
1. stats.jsなるものは使った覚えがない
こやつは何者?jquery内のどこかで呼ばれてるものなのか?

2. もっと早くならないだろうか
0612デフォルトの名無しさん2016/01/05(火) 04:07:49.44ID:KwXx/Jet
>>605
Angular2って、Reactっぽくなって行数めっちゃ増えそう
0613デフォルトの名無しさん2016/01/05(火) 04:09:50.16ID:KwXx/Jet
>>611
stats.js って、FPSを測るのに有ったかもしれないけどそれでもなさそう
URLの詳細とstats.jsの中身を貼るべき
06146112016/01/05(火) 20:59:35.77ID:GI5mEkb+
遅いリクエストはこれ
https://cdnjs.org/track/stats.js?id=nocpfkkbaekckhcoekockfbidpcjgkbd&;_=1451994803418

上記にアクセスするとここへ飛んでいく
https://cdnjs.org/track/stats2.js

CDNだから中身はアクセスすれば見れると思う
0615デフォルトの名無しさん2016/01/05(火) 21:04:59.68ID:8YBsNj4p
jquery2.js はどこで拾ってきたものなんだ
0616デフォルトの名無しさん2016/01/05(火) 21:11:14.85ID:GI5mEkb+
http://jquery.com/download/
ここの
「jQuery 2.x」の段
「Download the compressed, production jQuery 2.1.4」のリンクから拾った
06176112016/01/05(火) 21:27:14.82ID:GI5mEkb+
自己解決
Fast Video Downloaderというchromeのアドオンが悪さをしていたらしい
https://github.com/cdnjs/cdnjs/issues/4716

お騒がせしました
0618デフォルトの名無しさん2016/01/06(水) 06:10:36.03ID:wTjSz+NM
>>570
日本の企業だけだけれどな

そんな馬鹿で非合理的なことやってる企業は。だから、IT後進国と言われる。
0619デフォルトの名無しさん2016/01/06(水) 06:12:33.46ID:wTjSz+NM
>>617
クタバレクズ。
開発するブラウザでくだらねえアドオン外すのなんか常識だろ。馬鹿かテメエhq
0620デフォルトの名無しさん2016/01/06(水) 06:39:08.34ID:w/Ep0I7Y
jQueryは疑われてかわいそうだよね
0621デフォルトの名無しさん2016/01/06(水) 07:56:56.35ID:0w99DxxC
そのchrome拡張がjqueryを使って読みに行ってるって感じかな?
>>611の画像にあるネットワークタブのjquery2.js:3 ってところをクリックしてみれば
もっと早く解決できたかも
0622デフォルトの名無しさん2016/01/06(水) 15:26:08.27ID:vGBOMb2B
>>619
いやいや、お前にはかなわないよ
0623デフォルトの名無しさん2016/01/07(木) 05:35:49.89ID:zrHJ1QBq
bootstrap-css-only
にしたらjQueryさんはもうBowerに呼ばれなくなりました
さらば…
0624デフォルトの名無しさん2016/01/12(火) 20:31:26.22ID:UuIlH2qE
>>589が知恵袋に現れた件、学習しない奴だな
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11154639981
0625デフォルトの名無しさん2016/01/13(水) 08:59:18.45ID:pBf6xnXg
原稿すれ

+ JavaScript の質問用スレッド vol.127 +
http://peace.2ch.net/test/read.cgi/hp/1448293871/l50
0626デフォルトの名無しさん2016/01/18(月) 16:33:19.42ID:uV6VnB9g
https://developer.mozilla.org/ja/docs/Web/API/Window/postMessage
だと、
window.openで開いたウインドウには
otherWindow.postMessage(message, targetOrigin);
でメッセージを送れますが、
window.openで開いたのではなくて既に開いているウインドウに送る方法がありますか?
0627デフォルトの名無しさん2016/01/18(月) 17:06:48.87ID:JIVU1rUe
>>626
windowオブジェクトを参照する方法がないなら不可
0628デフォルトの名無しさん2016/01/18(月) 17:31:30.43ID:uV6VnB9g
>>627
そこを何とかお願いします
0629デフォルトの名無しさん2016/01/18(月) 18:53:10.91ID:h+hAAYX1
DOMの外に出れば君は自由だ
0630デフォルトの名無しさん2016/01/18(月) 21:38:06.24ID:uDL/tDz2
window.openのurlなしで既存ウインドウ名指定すればwindowオブジェクト取れなかったっけ
0631デフォルトの名無しさん2016/01/18(月) 22:49:22.70ID:MDiwjdBN
>>628
俺にお願いしても仕方ないだろ
何とかしたいなら新仕様策定案として提案してくるとかしないと
0632デフォルトの名無しさん2016/01/19(火) 11:20:18.74ID:uFnS5WLW
ものすごい初歩的なことだと思うのですが教えてください。
下記のオセロのJavaScriptのコメントにHTMLのアンカー(リンクのやつ)をやりたいのですが
<A href="aaa.html">文字列</A>とやっても表示されません。エスケープをしなくてはならないなど調べたのですがわかりませんでした。
どのようにすればよいでしょうか、よろしくお願いします。

<iframe width="650" height="400" frameborder="0" src="http://reversi-ai.appspot.com/v1.61/hamlite.html?
&size=L
&ai=off
&kifu=f5f6e6f4g7c5g4g6f3
&comment=0(ここにコメントを書く。<A HREF="aaa.html">表示されないよ〜</A>)
1(お助け願います)
"></iframe>
0633デフォルトの名無しさん2016/01/19(火) 11:34:16.06ID:uFnS5WLW
iframeはHTMLなんですね、、、
コメント内ではなくて、iframe外でもいいのでcommentの番号を認識してそれによってHTMLのリンクを
表示できるようにできたりますか?
0634デフォルトの名無しさん2016/01/20(水) 07:48:44.52ID:z9F/arY7
web制作板で聞きなよ
0635デフォルトの名無しさん2016/01/21(木) 21:52:19.07ID:p4489XVA
>>632
HTMLインジェクションかよ。
まあ、とりあえず
・ダブルクオートのネストをやめる
・パラメータはencodeURIComponentしたものを渡す
でやってみたらどう?
0636デフォルトの名無しさん2016/01/24(日) 05:36:30.63ID:jGkkqauO
フォーム入力の補助ツール的なものをjavascriptで書こうとしているんですが
ユーザからの入力を受け付けるものを考えたときに

・prompt()を使うと単純なテキストボックスしか置けず<select>的なものが使えないし画像も出せない
・画面全体に黒半透明レイヤーかぶせて真ん中にちっこい領域作って、とやると
  スマホの画面位置・画面サイズ・拡大状況を考慮する必要がありそうだけどどこから手を付けたら

というところでどう作ればユーザに優しいものができるか悩んでいます
良い手、定番の手法などあったら教えて下さい
0637デフォルトの名無しさん2016/01/24(日) 05:51:47.82ID:bvNYEnrP
>>636
スマホにも対応したフォーム入力用ライブラリを使えばいい。
そういうことをしてくれるライブラリはたくさんある。
自分で作っていたらきりがない。
0638デフォルトの名無しさん2016/01/24(日) 06:42:07.94ID:fqtpw7CO
jQuery UI 日本語リファレンス
http://alphasis.info/jquery-ui/


Web開発のことなら、web制作管理板で聞いた方がよいかも
0639sage2016/01/25(月) 12:11:44.82ID:9Twnz5wr
electronの話題はここでおk?
0640デフォルトの名無しさん2016/01/25(月) 12:14:28.88ID:9SKlijLq
まだ専用スレないしいいんじゃね
俺はわからんけど
0641デフォルトの名無しさん2016/01/25(月) 12:28:22.58ID:7W+F48NT
>>636
position: relative で表示位置をずらすなり、position: fixed で絶対位置を指定するなり、好きにすればいい。
としか、いいようがない(コードが出てないから)。
0642デフォルトの名無しさん2016/01/25(月) 15:19:09.97ID:uoK+r6zm
pushstateで追加した(する予定の)urlに戻ってこられたり直接飛ばれた場合でも部分的に読み込まれたところを反映させたかったら
urlとhtmlファイルが一対一にすれば解決しそうな気もするのですが
(それぞれのファイルが部分的に読み込むかどうかの判定をして読み込む処理を持つ)
テンプレートを読み込んでテンプレートに対してurlごとの内容を別で読み込んでいるようなもの(つまりurlとファイルの数が一対一じゃないしそのurlで飛んでもファイルはない場合)はどうやって直接来た時に対応しているのでしょうか?

angularjsのルーターとHTML5のhistoryapiの勉強をしていたら疑問に思いました
0643デフォルトの名無しさん2016/01/25(月) 17:34:27.32ID:RKt5tTys
>>642
location.hash や location.search で処理分けすればいいのでは?
0644デフォルトの名無しさん2016/01/25(月) 22:49:49.19ID:/YH8+HBF
>>643
ありがとうございます
ハッシュを使う方法では確かに直で来た時に調べることができるのですが、
pushstateで追加されて別のファイル名やパラメーターなどで一部更新されたページ、ファイルとして存在しないurlに飛ばれた場合は無理みたいですね

全部のファイルを作って、全部のファイルで同じ処理を読んで確認するしかないのはちょっと残念ですが
0645デフォルトの名無しさん2016/01/25(月) 22:56:14.81ID:S9DR8nJT
>>644
pushState はそもそも、存在するURLを指定するものです。
存在しないファイルを指定しているなら pushState を使う意味がありません。
0646デフォルトの名無しさん2016/01/26(火) 02:08:51.62ID:Mz7z2xmL
>>645
レスありがとうございます
pushstateについては納得いきました
つまりangularjsのrouteproviderにある/test/:paramみたいな機能はしっかりページを用意しておかないといけない(用意できるようなリンクにしておく)ということですね
0647デフォルトの名無しさん2016/01/26(火) 06:03:00.04ID:ygI9wqh7
switch(x){...}文でx=0、1、2、3として3の時だけそのswitch文を再実行したいんです。goto文が有れば解決するんですがどうすれば出来ますか?
0648デフォルトの名無しさん2016/01/26(火) 06:15:25.75ID:f7tvsCeN
そこんとこだけ再帰関数化すればいんじゃね?
0649デフォルトの名無しさん2016/01/26(火) 07:29:17.18ID:ygI9wqh7
>>648
サンプルお願いします
0650デフォルトの名無しさん2016/01/26(火) 07:31:14.22ID:xbGDVZvD
>>649
まずお前が提示しろ
0651デフォルトの名無しさん2016/01/26(火) 07:38:18.32ID:f7tvsCeN
やろうとしてる処理がわからんとなんともだよな

再びswitchかけたいんならswitch対象自体を操作するんだろうから適当に書くとこんなかんじか?
function recursiveSwitch( param ){
 switch( param ){
  case 0:
   param=someFunctionZero(param);
   break;
  case 1:
   param=someFunctionOne(param);
   break;
  case 2:
   param=someFunctionTwo(param);
   break;
  case 3:
   param=someFunctionThree(param);
   param=recursiveSwitch(param);
   break;
 }
 return param;
}
var target=3;
target=recursiveSwitch(target);
テストはしてない。function someFunctionThree() が3を返し続けないようにしないと無限ループ
0652デフォルトの名無しさん2016/01/26(火) 09:05:30.89ID:0jKR4dX9
ループの中にswitch文書けばいいだけじゃねえのか?
0653デフォルトの名無しさん2016/01/26(火) 10:21:41.17ID:ygI9wqh7
>>651
サンプルありがとうございました。その方法でやってみます。ところでググッていたら、
http://qiita.com/LightSpeedC/items/32c1d1d3c466b04b59d1
で以下の方法を見つけたのですが、
target: for (;;) switch (target) { の部分の意味が分かりません。何ですかこれは?
---------
JavaScript言語によるgoto文の様に書いてみた例
var target;

target: for (;;) switch (target) {

 case undefined:
  console.log('init');

 case 'start':
  console.log('start');

  // goto next;
  target = 'next';
  continue target;

 case 'skip':
  console.log('skip');

 case 'next':
  console.log('next');

 default:
  break target;
}

console.log('exit');
0654デフォルトの名無しさん2016/01/26(火) 12:28:06.93ID:0jKR4dX9
>>653
この例はループの中にswitch文書いてるだけだよ。
つかgoto文の存在など、早く忘れた方がいい。
0655デフォルトの名無しさん2016/01/26(火) 12:28:53.90ID:0jKR4dX9
>>653
この例はループの中にswitch文書いてるだけだよ。
つかgoto文の存在など、早く忘れた方がいい。
0656デフォルトの名無しさん2016/01/26(火) 12:30:16.45ID:0jKR4dX9
あれ?連投すまんw
0657デフォルトの名無しさん2016/01/26(火) 13:58:50.07ID:AKyFytji
konashiでURM37という距離センサーを使いたいのですが、http://www.dfrobot.com/wiki/index.php/URM37_V3.2_Ultrasonic_Sensor_(SKU:SEN0001)#IntroductionのサイトのMode 3: PWM passive control mode
をkonashiで動作させたいです!プログラムコードを教えてください!
0658デフォルトの名無しさん2016/01/26(火) 14:00:14.48ID:AKyFytji
konashiでURM37という距離センサーを使いたいのですが、http://www.dfrobot.com/wiki/index.php/URM37_V3.2_Ultrasonic_Sensor_(SKU:SEN0001)#IntroductionのサイトのMode 3: PWM passive control mode
をkonashiで動作させたいです!プログラムコードを教えてください!
0659デフォルトの名無しさん2016/01/26(火) 14:11:42.77ID:ygI9wqh7
>>655
忘れられない
0660デフォルトの名無しさん2016/01/26(火) 18:03:01.79ID:0jKR4dX9
>>659
無い方がいいから淘汰されてきたんだ。奴の事は諦めろ。
0661デフォルトの名無しさん2016/01/26(火) 18:17:49.94ID:f7tvsCeN
5.3でgotoが追加実装されたphpという言語もある
少なくとも使い方を間違えなければ有用だとは思うが…

>>653はラベルと持ちまわすフラグ役の変数とforに付着させてるラベルに
同じ名前使ってるから混乱するけど、条件なしforでbreak target;するまでfor内まわしてるだけ、for(;;)はwhile(true)と似たようなもん
「3のときだけ再実行」ではなく「3以外は再実行しないでループを抜ける」って書き方で、だいたい同等の効果を得るのが>>653
0662デフォルトの名無しさん2016/01/26(火) 21:32:11.47ID:REfyk5nJ
goto文はJSでもES6で再帰などのために追加しようという声が挙がり比較的好評だったが、
非常に残念ながらES5のとき予約語から外してしまったため流れた。
0663デフォルトの名無しさん2016/01/26(火) 23:49:49.18ID:Ej3tVqof
Linuxではgotoは、関数の最後に、
エラー処理をまとめる際に使う

MISRA-C では、ループ中に、
continueを使う・breakが2箇所以上にあるのも禁止

関数の出口(return)が2つあるのも禁止

特に、制御フローを変える命令は、厳重にチェックする
0664デフォルトの名無しさん2016/01/27(水) 01:41:22.45ID:00eXLu2i
>>663
まあそのルールは俺は逆にただの足かせだとは思うが。

> そう、こういうのはだいたい昔の親切でない言語や開発環境を想定した規約なんだよね。
> 実際10年ぐらい前には、巨大メソッドの途中にreturn文があって以降が実は使われないゴミ、
> とかいう酷いプログラムを見かけたこともある。
> なので、そういう時代は出口を一か所にしなさいという主張にも、
> その結果として巨大なif文やらが作られてしまうことが多々あるものの、それでも一定の価値があった。
> でも今はJavaなんかだとそもそもそういうのは言語自体でエラーとして検知してくれるし、
> 何より一つ一つのメソッドを小さく作るべき、って思想も浸透してきてる(と思う)ので、
> この規約は可読性を下げるだけの厄介者でしかない。(#2295561)
> http://askslashdot.srad.jp/comments.pl?sid=588292&;cid=2295472

> ただ、このスタイルはいい線いっているけど銀の弾丸ではない訳で、
> 厳格に適用してみるとフラグが必要になってゴチャゴチャする等の問題が発生したりする。
> これを避けようとすると、特定の場面においてbreakやcontinueや途中returnを使わざるをえなくなる。
> C言語では特定の場面でgotoも使うことにもなる。
> 現在のC言語系のプログラミング言語にbreakやcontinueや関数内限定のgotoが残っていたり、
> 途中でreturn可能な言語仕様だったりする理由は、
> 「乱用したらNGだけど、でも代替のよい案がない」からだ。つまり微妙に必要悪的なポジションの機能なのだ。
> http://d.hatena.ne.jp/eel3/20121225/1356443485

ここら辺が割と妥当な意見ではないかな。
ただ再帰も満足に書けない奴がgoto使うのは無しだよ。
基本的には「もっとも分かりやすい記述」にしろということであって、
つまり、自分がやりたい処理を何通りにでも書ける奴が
自分や自分以外の一般プログラマにとって一番簡単な記述を選ぶときのガイドラインであって、
一通りすらも満足に書けない奴がgotoとかやったらおそらく満場一致で死ねということになる。
0665デフォルトの名無しさん2016/01/27(水) 02:33:42.30ID:TJ8X6UiD
最も分かりやすい記述だなんて
最もJavaScriptにおいて混沌として定義できないことだろう
それにスクリプト言語であるんだし、他人も見るようなソースを書くばかりではないしね
0666デフォルトの名無しさん2016/01/27(水) 08:58:11.55ID:Fk4hNRa0
gotoって、でかい関数を書いた場合に、使い回したい部分に飛ぶための命令だろ?
今時は、使い回したい部分があるなら最初から関数化しとけで終わりだから、不要だよな。
0667デフォルトの名無しさん2016/01/27(水) 14:11:16.05ID:LCHBmKl2
JavaScriptのソースファイル source.js で
文中にif文でこんなふうに関数を囲っても問題ないですか?
------- source.js --------
function func() {
  // 新しい関数
}

if (false) {
  function func() {
    // 古い関数
  }
}
------ここまで--------
つまり、funcを改良したのですが、古いのは参考にするために消さずに残して
おきたいので取りあえず無効化しておいて、新しいのを使いたいと言う場合。
0668デフォルトの名無しさん2016/01/27(水) 14:22:26.15ID:Uz3IqtRq
古い関数を残したいなら単にコメントアウトすればいいんじゃね
あとブロックの中で関数宣言はダメよ
0669デフォルトの名無しさん2016/01/27(水) 14:38:15.86ID:LCHBmKl2
>>668
>単にコメントアウトすれば
コメントの入れ子 /* /**/ */ などにするとエラーするのですが。

>あとブロックの中で関数宣言はダメよ
文法的に違反ですか?
0670デフォルトの名無しさん2016/01/27(水) 15:26:45.24ID:Gnlbm7oj
>>669
atomとか最近のエディタ使いなよ
ctrl / で選択範囲全部コメント、もう一回で復帰
0671デフォルトの名無しさん2016/01/27(水) 17:55:33.38ID:3mhfO42b
>>668
ブロックの中で関数宣言はとっくに緩和された。
0672デフォルトの名無しさん2016/01/27(水) 18:06:02.36ID:Fk4hNRa0
>>669
全部の行を//でコメントアウトするんよ
>>670のいうとおり、エディタによっては簡単にできる。
0673デフォルトの名無しさん2016/01/27(水) 21:08:26.85ID:4Pko3+8x
iframeによる、designMode で範囲選択についてお知恵をお貸し下さい

現在、通常の文字などであれば、問題なく取得・置換等はできるのですが、
デザインモードで、<img src="xxxxxxx"> 等の画像があった時、表示されている画像を選択して同じように取得しようとすると
空の値が返ってきます。

edit = document.getElementsByClassName( editName )[0].contentDocument;
var selObj = item.getSelection();

selObj.toString() 等では取れませんでした。
調べてもわからず…

どうぞよろしくお願いいたします…
0674デフォルトの名無しさん2016/01/27(水) 21:11:18.02ID:4Pko3+8x
関数から部分的に貼り付けたのでおかしいですね
実際の実行はこんな感じです

edit = document.getElementsByClassName("edit")[0].contentDocument;
selObj = edit.getSelection();

すみません、よろしくお願い致します。
0675デフォルトの名無しさん2016/01/27(水) 21:51:50.78ID:LCHBmKl2
>>670
atom使ってみます。
>>671
>ブロックの中で関数宣言はとっくに緩和された。
では、
if (false) {
  function func() {
   ...
  }
}
こういう記述は文法的に問題ないですか?
0676デフォルトの名無しさん2016/01/27(水) 22:14:23.92ID:BdMiQKBu
ない
仕様見ろ
0677デフォルトの名無しさん2016/01/27(水) 23:10:36.84ID:92fi2xE/
>>675
書けるからといって書いていいわけじゃない。
そんな消し方をしたら、大抵の人間はキレる。

まあ、一人でプログラム作ってるうちは、どんな無法も通せるから別にいいだろうけど。
0678デフォルトの名無しさん2016/01/27(水) 23:34:39.52ID:e8RmjLYi
コメントでその旨を省略せずしっかり細かく書いてあれば許せる派
コメントないと、なんでif(false)で退避してんのかどこの関数なんか全然わからん
常にsvnやgitを使えるわけじゃないし

>>673
文字列に挟まれた画像を画像ごと選択コピペすると画像のところは空文字列か空白類になるように、
ありゃ基本はあくまでテキスト選択。だから素直にDOM構造見て
window.getSelection().getRangeAt(0).startContainerなりinnerHTMLなりfirstElementChildあたりでなんとかするしかないのでは
0679デフォルトの名無しさん2016/01/27(水) 23:51:21.41ID:1bMWaH5A
コメントにしておけば、サーバーにアップロードする際、
ツールで取り除けるけど、

そういう実行可能なコードにすると、簡単には取り除けない。
また実行時にコンパイルされるかも知れないし、時間のムダ

コンパイラが賢ければ、その部分は絶対に実行されないから、
取り除くかも知れないが、ブラウザではあまりきつい最適化はしないよ

また変数・関数の宣言などにも、影響を与えるし、
バグを生むから、コメントにすべき
0680デフォルトの名無しさん2016/01/28(木) 11:32:01.91ID:0VC4IiZB
>>678
ありがとう御座います!

ただの <img src="xxxxx"> での画像では、まったくもって値が取れないのですが、

<div><img src="xxxxx"></div> で囲んであげると、startContainer にimgタグがそのまま入りました!
これを innerHTML で取り出し置き換え処理等できました。

本当にありがとう御座います、助かりました…
0681デフォルトの名無しさん2016/01/28(木) 15:21:12.54ID:k59Uf2Tm
>>677,678
ソースを読む上で重要なのは、どうしてそんな書き方がしてあるのかではなく、
それがどういう挙動をするかだ。
その点if(false)は読み飛ばせばいいだけだし、仮にどうしてかが気になっても
最低でも内に複数行コメントが用いられてるのを見れば誰にとっても自明である。

こんなことに一々コメントを書いていたらコメントの方が多くなってしまう。
0682デフォルトの名無しさん2016/01/28(木) 19:11:29.65ID:X+Kzth4y
デッドコードの採用を勧めてるやつの気がしれん
0683デフォルトの名無しさん2016/01/28(木) 19:15:57.36ID:vPLu6NB1
>>675
その前に if 文が全く有効に働いてない点を何とかしろ

alert(func); // function func () { }
if (false) {
function func () { }
}
0684デフォルトの名無しさん2016/01/28(木) 19:32:32.95ID:63oiELTt
>>681
えっ?if(false)が許せるの?
0685デフォルトの名無しさん2016/01/28(木) 22:48:41.45ID:Ho2+Qj5E
>>683
それはsloppyモード限定の例外動作だ。
strictモードなら起きないし。

>>684
場合による
直ちに許せないとは言わないということだ
0686デフォルトの名無しさん2016/01/29(金) 01:45:59.32ID:i7byzhy6
直ちに許せないとは言わないなんて言わないよ絶対
0687デフォルトの名無しさん2016/01/29(金) 01:50:43.91ID:NW56arbt
使わないコードはコメントアウトする方がはるかに自明だと思うがな
「こんなことに一々コメントを書いていたら」というが、コメントアウトが多くなるのはデッドコードを量産するコーダーの問題
>>681の言葉を借りるならコメントアウトしなければ「デッドコードの方が多くなってしまう」だけだが、そんなことになるならコードの書き方が元からおかしい
0688デフォルトの名無しさん2016/01/29(金) 02:00:25.76ID:PQfy+X+f
>687
話が噛み合ってないよ
コメントアウトの手法の1つとしてif(false)を許容するかどうかで揉めてるんだよ
0689デフォルトの名無しさん2016/01/29(金) 07:26:50.53ID:F3zdOsh5
>>688
>>681の最後の一行を理解しかねるのだが
まさか、行頭に "//" が来る行数が多くなる事を懸念しているのか?
実際、コメントが多いのなら多いと自明である方がいいと思うが
0690デフォルトの名無しさん2016/01/29(金) 08:03:17.97ID:jWh3F8zy
1  質問者は、参考のために残す目的で、if(false){} で古い関数をくくろうと考えた
    理由は/* */範囲コメントが既にある場合に/* */を入れ子にするとエラーになるため
2  元の質問 if(false){ function func(){} } が文法面で問題があるかどうかについては基本的に「問題ない」が回答
3  選択範囲の行全てを // コメントアウトできるエディタを使えば解決、質問者はそれができるエディタを試すと言っている

はいもう終わってる案件です
0691デフォルトの名無しさん2016/01/29(金) 08:28:10.97ID:f9EfU1JG
コメントの後に半角スペース入れる?
0692デフォルトの名無しさん2016/01/29(金) 08:32:56.68ID:6vAZQ0Iu
>>690
質問者が終わっているのはわかっている
文意を読んでくれ
0693デフォルトの名無しさん2016/01/29(金) 08:40:43.51ID:AS58wzCZ
if(false)なんてgrep結果も邪魔するし、
コードメトリクスとるとか、その他ソース解析的な事をしようと思ったら、悪影響を与える可能性が高い。
それに言語によっては到達不能コードが警告やコンパイルエラーになるから、同じプロジェクト内でも言語によって、違う消し方をしなきゃいけなくなる。

こんな消し方は悪でしかないよ(断言)

そもそもプログラム上不要なものを、消すんじゃなくてそれを無力化するための処理を埋め込む、という考え自体がずれてると思う。
0694デフォルトの名無しさん2016/01/29(金) 08:57:29.68ID:G034Tjvl
コメントでコード残すより酷いよねw

コメントはコメントだからまだ使ってないコードだってわかるけど、
if(false)なんてしたら、何のためにこんなコード書いてるの?って
理由を調べることになる。
0695デフォルトの名無しさん2016/01/29(金) 09:03:55.02ID:BRy+Pidl
一時的にコードをON/OFFしたいときに使うデバッグコードだろ
0696デフォルトの名無しさん2016/01/29(金) 09:07:52.89ID:anzRyrfi
>695
じゃあ、それと間違えるからダメだな
0697デフォルトの名無しさん2016/01/29(金) 12:22:52.37ID:v9i1VCfv
if (debug == true)
ならまだ分かるんすよ
0698デフォルトの名無しさん2016/01/29(金) 12:43:43.87ID:7VD60tyB
まぁ、falseでなくて、何らかのfalseが中身の変数ならまだ納得は出来るんだけどね。
賢いエディタなら畳めるって意味くらいで。
最後にプリプロセッサで消して欲しいけど。
0699デフォルトの名無しさん2016/01/29(金) 13:09:21.61ID:yQckpqSo
quick hackなら
0700デフォルトの名無しさん2016/01/29(金) 16:36:51.98ID:lkEDj6wo
(function () { if (false) { function a() {} } a(); })()
これどうなるの?

(function () { 'use strict'; if (true) { function a() {} } a(); })()
これどうなるの?

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
これどうなるの?
0701デフォルトの名無しさん2016/01/29(金) 16:51:45.47ID:F8xSAXci
(function () { if (false) { function a() {} } a(); })()
ReferenceError: a is not defined

(function () { 'use strict'; if (true) { function a() {} } a(); })()
SyntaxError: in strict mode code, functions may be declared only at top level or immediately within another function

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined
0702デフォルトの名無しさん2016/01/29(金) 16:53:39.26ID:F8xSAXci
(function () { if (false) { function a() {} } a(); })()
Object expected

(function () { 'use strict'; if (true) { function a() {} } a(); })()
'a' is undefined

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined
undefined
eval code (4) (1,30)
0703デフォルトの名無しさん2016/01/29(金) 16:55:09.66ID:F8xSAXci
(function () { if (false) { function a() {} } a(); })()
オブジェクトを指定してください。

(function () { 'use strict'; if (true) { function a() {} } a(); })()
'a' は定義されていません。

(function () { 'use strict'; console.log(a); if (false) { var a = 123; } })()
undefined
undefined
0704デフォルトの名無しさん2016/01/29(金) 17:29:03.55ID:lkEDj6wo
>>701-703
ありがとうございます
マクロ風if文コメントアウトはクソの役に立つどころかクソ邪魔なそびえ立つクソのようですので
シングルラインコメントを使います
0705デフォルトの名無しさん2016/01/29(金) 19:32:41.27ID:HboDmfw3
その結果をみてどうしてその判断になったのかは疑問だが、
一つ言えることはシングルラインだろうがなんだろうが、
デッドコードを残すのは良くない。
コメントは文章にだけ使え。
0706デフォルトの名無しさん2016/01/29(金) 20:36:41.00ID:B53lZWqj
chromeのデバッガーで見ると、
グローバル変数名や関数名は
▼Scope
▼Global window
の中のメンバにありますが、
constで宣言した定数は
▼Script
の中にあります。
この定数名をプログラムから取り出したいのですが、方法が有れば教えて下さい。
グローバル変数ならwindowから取り出せたのですが。
0707デフォルトの名無しさん2016/01/29(金) 20:50:05.86ID:HboDmfw3
with-proxyでも使って、どうぞ
0708デフォルトの名無しさん2016/01/30(土) 01:30:26.61ID:1oljgPJ8
WEB+DB PRESS vol.90 (2016)に、
Electronで、Windows, OS X, Linux用の、
HTML5デスクトップアプリを作る記事が載っている

JSの実行エンジンは、Node.jsで、
HTML5の実行環境は、Chromeのオープンソース版のChromium。
アプリに、これら2つを内蔵して配布する

Electronは、Atomエディタ、Visual Studio Codeで使われている

ローカルファイルにもアクセスでき、
OS内の別のアプリも起動できる・連携できる。
Drag & Drop, Clipboard も使える

Babelを使って、ECMAScript2015(ES6)でも書ける。
ReactのJSXも、Babel, gulp で変換できる。
AngularJSも使える

GUIは、jQuery UI、Reactなら、Material UI などを使って
0709デフォルトの名無しさん2016/01/30(土) 10:43:58.68ID:VBvWbxk4
宣伝おめ
0710デフォルトの名無しさん2016/01/31(日) 05:07:58.18ID:003tX3GT
AngularのDatePickerがクソで、勝手に時間帯変換するんだけど
なんか他にお勧め無いすかね
0711デフォルトの名無しさん2016/01/31(日) 14:11:05.37ID:AEa1Mqyg
一つのhtmlファイルから複数のjsファイルを読み込んで実行する場合、グローバル変数はどのjsファイルのどの部分で宣言してもプログラム全体としては同じ動きをしますか?
0712デフォルトの名無しさん2016/01/31(日) 14:34:54.46ID:cx5Rrh1h
ためせ
0713デフォルトの名無しさん2016/01/31(日) 19:21:01.85ID:xLFAyxDw
タイミングによっちゃまだ宣言されてねえってこともあるかもね
0714デフォルトの名無しさん2016/02/01(月) 04:22:13.19ID:Ffe8O4Eb
いや、全部読み込まれた後、全部が順序通り結合された1つのコードとしてパースされてから実行されるのでそれはない。
0715デフォルトの名無しさん2016/02/01(月) 14:45:21.63ID:FYMx+qz7
つまり読むこむ順番を適切に書かないといけないから、答えはNOだ。
0716デフォルトの名無しさん2016/02/01(月) 20:54:43.49ID:kI0Xug8k
いや、宣言は巻き上げされるのでどこで書いても良い。
0717デフォルトの名無しさん2016/02/01(月) 22:44:41.59ID:v8JCH8t3
関数のでその変数を参照するような文を書いてたらダメだよ
0718デフォルトの名無しさん2016/02/01(月) 22:48:43.77ID:fURVaPFx
関数宣言ならともかく、変数宣言は undefined で巻き上げされるのでどこに書いても同じ動作にはなるわけじゃない
0719デフォルトの名無しさん2016/02/01(月) 22:51:52.10ID:kI0Xug8k
いや、宣言だけに限っては同じだろう
代入はまた別の話だし
0720デフォルトの名無しさん2016/02/01(月) 22:55:57.07ID:gPO3j3Rt
>>717
ごめん。関数の外でって書いたつもりでしたw
0721デフォルトの名無しさん2016/02/01(月) 22:58:49.36ID:v+j1QZdW
>>719
だから順番に影響するわけで、何処に書いても同じってわけじゃないよね。
まぁ、これはjsを別ファイルにするとか以前の話になってくるわけだけど。
0722デフォルトの名無しさん2016/02/01(月) 23:16:56.16ID:fURVaPFx
>>719
var foo = 1; は「変数宣言と代入演算子の組み合わせ」ではなく「変数宣言」
あと、下位スコープの変数は参照不可能なので「どこに書いても」は成立しない
0723デフォルトの名無しさん2016/02/02(火) 00:30:02.56ID:dbeuEpdb
>>722
いいや、今はそれについては言っていない。ちゃんと話の流れを見るように。
>>713
で分かる通り、タイミングと場所が関係あるかの話であって、一般的な話はしていない。
0724デフォルトの名無しさん2016/02/02(火) 00:43:41.20ID:/HZNIUzX
>>723
私も「タイミングと場所が関係している」という話をしているのだが

foo; // ReferenceError: foo is not defined
function hoge () { var foo = 1; }

console.log(foo); // undefined
var foo = 1;
console.log(foo); // 1
07257242016/02/02(火) 00:46:32.06ID:/HZNIUzX
グローバル変数なので>>724の前者のコードはこうか
foo; // ReferenceError: foo is not defined
function hoge () { this.foo = 1; }
hoge.call(this);
0726デフォルトの名無しさん2016/02/02(火) 01:33:45.90ID:NUEtrHjv
>>711
変数の宣言箇所と参照箇所の位置関係によっては同じ動きにはならない。
でFAです。
ファイルのロード順に気を付けてくだされ。
0727デフォルトの名無しさん2016/02/02(火) 11:53:44.01ID:H059HmUH
>>724
だからそういう話はしていない。>>721が言っているようにそれは別の話。
自分はタイミングが関係あるかどうかの話だけをしてる。
0728デフォルトの名無しさん2016/02/02(火) 13:19:10.18ID:dh99WtH+
>>727
私は>>716,719の「宣言は巻き上げされるのでどこで書いても良い」に反論しているだけだが、あなたの持論はどこにある?
どこに書いても良い事例となるコードで示してくれ
0729デフォルトの名無しさん2016/02/02(火) 14:58:36.94ID:3ts5bPpY
グローバル変数の話してんじゃないん?
0730デフォルトの名無しさん2016/02/02(火) 15:21:14.26ID:dh99WtH+
私はグローバル変数の話をしているのだが
0731デフォルトの名無しさん2016/02/02(火) 16:33:02.97ID:3ts5bPpY
725のfunction hoge () { this.foo = 1; }は宣言か?
0732デフォルトの名無しさん2016/02/02(火) 16:53:37.90ID:dh99WtH+
>>731
>>711の「宣言」は初心者の誤用だろうから「グローバル変数の初期化文」と勝手に置き換えている
>>725で書いたのはグローバルコードを想定していてグローバルオブジェクトのプロパティへの代入は該当すると思うが、どうか?
「プロパティ代入は宣言じゃない」という指摘なら、「変数文はあっても変数宣言はない。そもそも、>>711のいう宣言が何なのかを質問者に問うべき。」と反論するところだが
ついでに>>722で反論した部分も「13.3.2 Variable Statement」で規定されている
http://www.ecma-international.org/ecma-262/6.0/#sec-variable-statement
0733デフォルトの名無しさん2016/02/02(火) 17:22:31.99ID:dh99WtH+
もう一つ追加で const, let は巻き上がらないので ReferenceError になるパターンがあるな

'use strict';
/* グローバルコード */
foo; // ReferenceError: foo is not defined
hoge; // ReferenceError: hoge is not defined
const foo = 1;
let hoge = 2;
0734デフォルトの名無しさん2016/02/02(火) 19:28:13.95ID:3N5KmsWz
巻き上がらないのではなく未初期化状態で巻き上がる
それとlet/const宣言ではグローバル変数ではなく、
その直下の仮想ブロックスコープとして定義される
つまりグローバルオブジェクトのプロパティにはならない
0735デフォルトの名無しさん2016/02/02(火) 19:46:52.83ID:dh99WtH+
>>734
巻き上げについては私の認識と一致してる
だからこそ「どこに書いても同じ処理にはならない」と思うが
const, let については不勉強だった
確かにグローバルオブジェクトのプロパティにはならないな…
0736デフォルトの名無しさん2016/02/02(火) 20:29:26.53ID:3N5KmsWz
>>723
ようやく君が何が言いたいのかは分かった
>>721が>>714へのレスだと早とちりしてたみたいだ
しかし残念ながら>>716,719は別人だ
0737デフォルトの名無しさん2016/02/02(火) 20:42:53.08ID:dh99WtH+
>>726
あなたは満足したようだが、私はあなたが誰かわかっていない
私の発言は>>718,722,724-725,728とID:dh99WtH+
>>716,719がおかしいと思うので>>723の「今はそれについては言っていない。ちゃんと話の流れを見るように。 」の反論の意味が分からなかった
0738デフォルトの名無しさん2016/02/02(火) 21:01:38.63ID:ju/2Ysiz
いつまでどうでもいいこと続けるの?
これ以上質問者を置き去りにして言葉尻を取り合う喧嘩をしてもしょうがない。
仕様の宗教のような話なら別スレでどうぞ。
0739デフォルトの名無しさん2016/02/02(火) 21:46:00.10ID:N/tRsSuY
名前欄に自分の元レスの番号付けるとかしないと、横レスだってあるんだし会話が成り立たないだろ。
お前らは誰と闘ってるだよw
0740デフォルトの名無しさん2016/02/02(火) 21:50:59.18ID:dh99WtH+
誰と戦っているか分からない相手に明後日の方向に反論された気分
「そんな話はしていない」しか返さない相手と話すのが不毛だとは思ってるよ
0741デフォルトの名無しさん2016/02/02(火) 23:58:02.10ID:q1EzF9s6
いつまで根に持ってるんだよw
0742デフォルトの名無しさん2016/02/03(水) 02:33:05.91ID:WMsKvupE
会話しようとしている人が会話がどうでもいいと思っている人(自分の意見を出さずに相手から情報を引き出せればいい)に怒っている感じだな
会話が成立しないわけだ
0743デフォルトの名無しさん2016/02/03(水) 07:34:25.05ID:fNUqVTnf
そもそも回答者同士が議論する場ではないよね
0744デフォルトの名無しさん2016/02/03(水) 09:27:12.84ID:ToDOcZiy
結局はグローバル変数は宣言するファイルや場所が変わるとプログラムの挙動は変わる場合があるという結論でいいのですか?
0745デフォルトの名無しさん2016/02/03(水) 09:39:11.07ID:RqicRRsW
意味が分からん。
どんな場合にも絶対こうなる、ってことは殆ど無いぞ。
もっと具体的で限定的な部分部分の話をした方がいい。
0746デフォルトの名無しさん2016/02/03(水) 09:41:00.56ID:RqicRRsW
それともあれか
a=1
alert(a)
と
alert(a)
a=1
は同じかとかそういうレベルのことを聞いてるのか?
0747デフォルトの名無しさん2016/02/03(水) 10:03:28.21ID:KkuXsvhB
例えば

var a; //   No. 1
a = 1; //   No. 2
alert(a);//  No. 3

これを1行ずつ全部別のファイルに書き出して
あるHTMLで <script type="text/javascript" src="./1.js"></script> などと書いて順番に読むとき、読む順番全6パターンはそれぞれこうなる

num| 出力    | エラー
123 | 1      |
132 | undefined |
213 | 1      |
231 | 1      |
312 | n/a     | a is not defined
321 | n/a     | a is not defined

312と321に違和感を覚える人がいるかもしれないけどこうなる
0748デフォルトの名無しさん2016/02/03(水) 13:07:58.91ID:FRjmjuum
>>744
結論は勿論そうなんだけど、そりゃ当たり前の話。

上でもちょっと出てるが、ファイルを分離するとか以前に、変数宣言の前後や代入の前後等、各所でその変数を参照した場合、結果が変わるのは自明だろ?
つまりjsが外部か内部か以前の問題として、参照箇所によって挙動が変わる可能性は既にあるわけだ。

更に、外部jsにした場合、ファイルの読み込む順番により、参照と宣言の前後関係が変わる可能性がある。
それは挙動を変える要因が増えるというだけの事なんだよ。
0749デフォルトの名無しさん2016/02/03(水) 14:09:01.34ID:+1Rylgj+
http://analogic.jp/external-js-execute-timing/
0750デフォルトの名無しさん2016/02/03(水) 19:01:51.64ID:4vp1LVJQ
いや、外部JSにしてもasyncやdefer属性つけて無ければ、書いた順序での評価が守られる。
0751デフォルトの名無しさん2016/02/03(水) 21:34:04.11ID:FRjmjuum
また出た…
0752デフォルトの名無しさん2016/02/03(水) 22:04:19.79ID:zYHyrw+/
本当は理解出来てるのか出来てないのかはわからんが
今回は>>748の書き方が悪いな
0753デフォルトの名無しさん2016/02/04(木) 00:23:06.24ID:bE5bgH6f
ID:FRjmjuum はいつもの人じゃないか
また出た、はこっちの台詞だわ
0754デフォルトの名無しさん2016/02/04(木) 01:00:45.86ID:ND6Ylogh
質問者に本当に必要なものはjavascriptの処理フロー全容だろ
ECMAの仕様としてあるいはUAごとで、そういうのが存在するかどうか知らんけど
0755デフォルトの名無しさん2016/02/04(木) 11:28:50.84ID:EYZx+gFX
その答えはもう散々出てるだろ
嘘も真実も混じって
後はそのどれを信じるかは質問者の問題
0756デフォルトの名無しさん2016/02/08(月) 12:20:56.32ID:uAQYy5Bg
回答が割れてるように思えるが、質問の捉え方の違いっぽいな。
0757デフォルトの名無しさん2016/02/08(月) 13:08:23.67ID:9AywMO4K
またお聞きしますが
Javascriptをはじめて学習するのにベストな本はなんですか?
他言語で高度なプログラミング知識はすでにあるので幼稚園児に語りかけるような本はイヤです。
0758デフォルトの名無しさん2016/02/08(月) 13:18:28.03ID:e87P5enc
>>757
とほほで十分だと思う
あれで断片的になら問題なく学習できる

ある程度断片的な知識が貯まったところで
Effective JavaScriptを買ってくればいい
0759デフォルトの名無しさん2016/02/08(月) 13:20:41.15ID:e87P5enc
おライリーのサイ本持ってるのは大前提な
0760デフォルトの名無しさん2016/02/08(月) 13:53:33.09ID:REXLJUev
他のサイト例えば
www.yahoo.co.jp
のhtmlを文字列か何かに読み取るなどは可能ですか?
0761デフォルトの名無しさん2016/02/08(月) 14:13:45.58ID:kVh66luE
環境による
他のサイトって言い方をするならブラウザだろうから>>278かな
0762デフォルトの名無しさん2016/02/08(月) 18:30:14.93ID:oTIfYznp
質問失礼します。MAX/MSPという音楽ソフトで、javascriptを使う必要がどうしても出てきて慣れないプログラミングをしてるのですが、本当に初心者で申し訳ないのですが、どなたか教えてください。
【環境】OS,:Win8.1、MAX/MSP6.0
【期待する結果】2つの別々の配列を作り、1〜12までのランダムな数値を重複なくそれそれの配列に格納したい。1つめの配列については成功したが(ので省略しました)、2つ目の配列で、1つ目の配列と重複する要素がどうしても出てしまう。
【サンプルコード】
var generated = new Array();
var generated2 = new Array();
var count2 = 6;

function generate_randomx2(count2){
if(arguments.length){
var generatedCountb = generated2.length;
for(var i = 0 ; i < count; i++){
var candidate2 = Math.floor(Math.random() * 12);
for(var k = 0; k < generatedCountb; k++) {
for(var j = 0; j < generated.length; j++){
if(generated[j] == generated2[k] || candidate2 == generated2[k]){
candidate2 = Math.floor(Math.random() * 12);
j= -1; k= -1;
}}}
generated2[i] = candidate2;
generatedCountb++;
}
return generated2;
}
}

function bang(){
for (var i = 0; i < 6; i++){
outlet(2,i);
outlet(3,generated2[i]);
}
}
0763デフォルトの名無しさん2016/02/08(月) 18:41:00.79ID:E+wItWi7
bangとかoutletとかMAX/MSP特有のものが含まれるならMAX/MSPスレにいくべき

math.randomで乱数得るんじゃなくって
0から11までの配列作ってこれをfisher-yatesか何かで並び替えて使うんじゃダメなのか?>重複回避
07647622016/02/08(月) 18:52:05.67ID:oTIfYznp
>>763

回答ありがとうございます。
MAX/MSPスレで質問したいところなのですが、
そのスレでjavascriptを使う方がそもそも少ないという事情があります。

また、bang関数以下は無視してくださって大丈夫です。

>math.randomで乱数得るんじゃなくって
0から11までの配列作ってこれをfisher-yatesか何かで並び替えて使うんじゃダメなのか?>重複回避

なるほど、そういう手がありましたか、さっそく検索して調べてみます。
ご回答有難うございました。
07657622016/02/08(月) 19:50:39.92ID:oTIfYznp
>>763

fisher-yatesを使って驚くほど簡易に実現できました。
本当に有難うございました。
0766デフォルトの名無しさん2016/02/08(月) 19:53:14.61ID:hJZZUY1h
>>765
そのアルゴリズムの関数を提供しているライブラリがありまして。
このように簡単に使うことが出来ます。
https://lodash.com/docs#shuffle

Creates an array of shuffled values, using a version of the Fisher-Yates shuffle.

Arguments
collection (Array|Object): The collection to shuffle.
Returns
(Array): Returns the new shuffled array.

Example
_.shuffle([1, 2, 3, 4]);
// → [4, 1, 3, 2]
07677622016/02/08(月) 20:05:40.31ID:oTIfYznp
>>766

わざわざ有難うございます!
ありがたく活用させて頂きます。
0768デフォルトの名無しさん2016/02/08(月) 22:01:16.55ID:REXLJUev
>>761
ありがとうございました
0769デフォルトの名無しさん2016/02/09(火) 03:56:18.72ID:1o3XeJIl
shuffleは、Underscore.js, lodash ライブラリにある
0770デフォルトの名無しさん2016/02/09(火) 08:50:00.82ID:B5xk/vUm
ttp://naopr.hatenablog.com/entry/20140401/1396341503
このサンプル実行するとhoge.txtは
/Users/USERNAME/Library/Application Support/Google/Chrome/Default/File System/
に保存されますと書いてあるのですが、これはMacOSの場合のようですが、Window7の場合どこに出ますか?
0771デフォルトの名無しさん2016/02/09(火) 22:41:36.97ID:uq6Q+Hm9
>>770
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\File System
0772デフォルトの名無しさん2016/02/09(火) 22:43:33.85ID:kyiA5+yG
EclipseでJavascriptを開発するにはどうすればいいですか?
0773デフォルトの名無しさん2016/02/09(火) 22:48:09.47ID:3JUZFTfy
ゲーム特化型クラウドファンディングサービスCrowdrive(クラウドライブ)
https://www.crowdrive.com/
0774デフォルトの名無しさん2016/02/09(火) 22:51:13.86ID:uq6Q+Hm9
>>772
https://code.google.com/archive/p/jsdt/
0775デフォルトの名無しさん2016/02/09(火) 22:55:04.17ID:B5xk/vUm
>>771
ありがとうございました。
その後いろいろ試したのですがファイルが作成されません。
エラーもしません。何が悪いのでしょうか?
0776デフォルトの名無しさん2016/02/09(火) 23:05:48.37ID:kyiA5+yG
>>774
よっしゃ、ありがとう。
ところでその方法はどれくらい一般的ですか?
みんなJavascript開発はどのツールでやってるんだろ?
円グラフで見てみたいな。
0777デフォルトの名無しさん2016/02/09(火) 23:09:06.72ID:+jj6AtaF
秀丸
0778デフォルトの名無しさん2016/02/09(火) 23:19:23.54ID:kyiA5+yG
その禿丸って有名なの?
0779デフォルトの名無しさん2016/02/09(火) 23:24:16.37ID:DkDaZ+yJ
サクラ
0780デフォルトの名無しさん2016/02/09(火) 23:27:07.44ID:uq6Q+Hm9
>>776
Sublime Text 3

>>778
定番のテキストエディタだが、プログラミング用途ではない
0781デフォルトの名無しさん2016/02/09(火) 23:41:20.69ID:+jj6AtaF
>>780
正しくは「プログラミング専用ではない」といったところでは
プログラミング支援機能が無いかというとそうではない、しかしIDEでもない
0782デフォルトの名無しさん2016/02/09(火) 23:43:13.36ID:G1Osl5xS
秀丸はプログラミング支援機能が殆ど無いと言って等しい
0783デフォルトの名無しさん2016/02/09(火) 23:57:06.16ID:OJMdLEFS
brackets(白目)
0784デフォルトの名無しさん2016/02/10(水) 00:27:17.95ID:132OU3lg
秀丸だって補完やアウトライン解析などそれっぽい補助機能も無くはないけど
ほとんどC用で少なくともjsでは使い物にならんぬ
0785デフォルトの名無しさん2016/02/10(水) 01:00:37.31ID:p4v1ixKx
>>783
滅茶苦茶便利だけどな、brackets。軟派者用と見せかけて。
0786デフォルトの名無しさん2016/02/10(水) 02:35:59.18ID:6S3EaPtl
AtomエディタでGitのステータスが色で分かるのがすこ
0787デフォルトの名無しさん2016/02/10(水) 07:07:17.20ID:WrIiP8cs
Atom, Visual Studio Code などで使われているのは、Electron

Electron は、Chromium, Node.js を内包しているから、
これ一つで、何でもできる

ローカルHDDにアクセスもできる
0788デフォルトの名無しさん2016/02/10(水) 09:16:14.43ID:OMjrnwds
index.html
sub.html
があって
index.htmlの中で
var subWin = window.open('sub.html');
を開くとその後は
subWin.postMessage(...)
とすればデータ送信が出来ますが、その後、index.htmlをリロードするとsubWin変数もクリアされてしまい送信できません。
どうにか送信する方法ありますか?
0789デフォルトの名無しさん2016/02/10(水) 10:12:55.63ID:ppe9pP0j
subからindexにメッセージを送ることは出来ない?
0790デフォルトの名無しさん2016/02/10(水) 10:16:34.21ID:HYgNFwd5
>>778
めっちゃ人気あったんやぞ
http://image3-a.beetv.jp/basic/img/title/10003191_h_pc_l.jpg
0791デフォルトの名無しさん2016/02/10(水) 10:23:09.15ID:OMjrnwds
>>789
出来ます。
0792デフォルトの名無しさん2016/02/10(水) 10:23:48.33ID:OMjrnwds
いや、出来ません。
0793デフォルトの名無しさん2016/02/10(水) 10:34:13.50ID:jnF2JUJT
>>790
それはおぼっちゃまくんな。
0794デフォルトの名無しさん2016/02/10(水) 10:43:55.73ID:KVydSgEF
データベースのテーブルで「Date」型を使ってまして
2014-11-15
などと値が入ってます
これ、JavaScriptに渡ると
2014-11-15T00:00:00.000Z
UTC形式になっちゃうわけですよ。表示はまだいい。

HTML5のDateでもAngular bootstrap UIのDatePickerでも
2014-11-10
と変えてデータベースに書き込むと、そのときの書き込む値は
2014-11-09T15:00:00.000Z
と日本ローカルタイム2014-11-10 0:00をUTC変換した値になり
データベースには「2014-11-09」が書き込まれてしまう
想定した「2014-11-10」が書けないんですわwww

ぼすけてwww
スマートな解決求むorz
07957942016/02/10(水) 11:35:08.49ID:KVydSgEF
getTimezoneOffset()
は使いましたが、検索の開始日付けに使う
→検索実行時に、日本なら-(-540分)する。おkおk
→複数回検索すると、日付けが9時間ずつズレていく
という失敗しています
0796デフォルトの名無しさん2016/02/10(水) 11:45:25.15ID:ppe9pP0j
もうちょい詳しく
データベースってのはIndexedDB?
07977942016/02/10(水) 12:15:44.12ID:KVydSgEF
>>796
DBはPostgreSQL、他にも使われてるのでtimestamptz型への変更は無理です
根本的に、JavaScriptのDate型はUTC秒数であって日付けじゃないのが原因なわけですが

書き込み一回だけ使うならば
getTimezoneOffset = -540 (日本) を使い、
表示2014-11-10
内部2014-11-09T15:00:00Z
- (-540) = 2014-11-10T00:00:00Z
として書き込めば出来ます

しかしDOMで持ってる値を操作してしまうと、すでに操作済みなのかまだ操作してないのかも管理しないといけない
(画面によっては複数回生きてるものがある、検索用とか)

文字列に変換してサーバ側に渡すのはコントローラのコードが煩雑過ぎる

どうするんや!となってます
0798デフォルトの名無しさん2016/02/10(水) 12:45:44.13ID:khnAsa7k
webで送信してるならDB関係無いじゃねーか・・
DOMの読み書きのコード提示しろ
0799デフォルトの名無しさん2016/02/10(水) 12:45:49.30ID:9zFOz3LH
適当に日付扱いされない文字列化して日付操作はラッパを用意するとか
0800デフォルトの名無しさん2016/02/10(水) 12:57:25.47ID:ppe9pP0j
node.js使ってんのかな?思いつくのは

javascript側で表示する時は
地方時を一切切り捨ててUTCメソッドのみを用いる
var date = new Date()する時だけ意図的に+540する
08017942016/02/10(水) 14:03:06.19ID:KVydSgEF
>>798
読みはAngularで、
$scope.oneOrder = ServiceOrders.get({ repairID: selectedID });
とか。修理オーダーに受付日付などが入っておるわけで

書き込みもAngularで、

dt = $scope.oneOrder.AcceptedDate;
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset());
ServiceOrders.update($scope.oneOrder, $scope.onrefresh);
//複数回使うなら以下も必要
dt.setMinutes(dt.getMinutes() + dt.getTimezoneOffset());

ServiceOrdersはAngularの$resource(AJAX)で、JSON REST APIです
getで返って来るのはもちろん文字列で、
"AcceptedDate": "2014/11/15",
DBにもこう入ってます
日付が出てくるたんびにマイナスしてプラスして、はダサ過ぎると思うわけですよ
799さんの言うように文字列で扱う専用のディレクティブ作るしかないんやろか
0802デフォルトの名無しさん2016/02/10(水) 14:54:55.86ID:jnF2JUJT
バカすぎ。
勝手にUTCからローカルタイムになるなら、
その逆の仕組みもあるって考えるべきだろ。
コード書く前に何故そうなるのかの理由を調べろよ
0803デフォルトの名無しさん2016/02/10(水) 17:48:39.37ID:vMRcdgqQ
>>797
PostgreSQL に "timestamp without time zone" でデータ入力したのがそもそもの問題では?
全データをエクスポートした後に "timestamp with time zone" でテーブルを作り直せば解決すると思われる
http://www.postgresql.jp/document/9.3/html/datatype-datetime.html#AEN5823
0804デフォルトの名無しさん2016/02/10(水) 18:09:30.99ID:jnF2JUJT
んなわけねーだろ
0805デフォルトの名無しさん2016/02/10(水) 19:20:39.44ID:0hGKO9sH
>>788
BroadcastChannelを使う
0806デフォルトの名無しさん2016/02/10(水) 19:44:31.88ID:xnMn0ijk
>>801
ユーザーにロンドンで使えと言え
0807デフォルトの名無しさん2016/02/14(日) 14:25:58.15ID:t425P/AR
楽しいロンドン愉快なロンドン
0808デフォルトの名無しさん2016/02/14(日) 15:14:34.17ID:f4GEMmHV
ロンドンどんより晴れたらパリ
0809デフォルトの名無しさん2016/02/18(木) 00:06:50.22ID:7t/CnJqD
jQueryのloadについて質問です。
階層が異なるhtmlをloadした後、そのhtml内に定義した外部ファイルのjavascriptの読み込みに失敗してしまいます。
外部ファイルじゃなくscriptタグ内に記載すれば起動できるのですが、外部jsは読み込めないのでしょうか・
$.getScriptでもダメでした。
相対パスで階層違い、スペルミスもチェック済みです。何か考えられることはありますか?
0810デフォルトの名無しさん2016/02/18(木) 02:15:10.23ID:9FL8VTOJ
>>809
htmlやそこに直に書いてあるscriptはロード完了すれば存在するけど
src=で指定したさらに外部のスクリプトは、htmlのロード直後にはまだ存在しないわけだし

htmlのload読み込み完了したらgetScriptで読み込めばいいんでないの
0811デフォルトの名無しさん2016/02/20(土) 09:36:48.27ID:jtnfjqEh
Javascriptでクラスを勉強するのにオススメな簡単なサイト教えてください。
0812デフォルトの名無しさん2016/02/20(土) 10:59:15.87ID:oGPVFEGt
>>811
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain
0813デフォルトの名無しさん2016/02/20(土) 15:21:01.73ID:izAI/KRP
>>810
ありがとうございます。
load先のhtmlでreadyしてからgetScriptしても読み込み失敗してしまいます。
読み込み後にalert出してみたら表示されたので書き方は間違っていないようですが失敗してしまいます。
やっぱりload先で外部jsの読み込みは不可能ですかね?
0814デフォルトの名無しさん2016/02/20(土) 15:43:35.99ID:jtnfjqEh
>>812
簡単なサイトって言ってるのが理解できなかったようですね。
そういうリファレンスサイトなんて誰も求めていません。
0815デフォルトの名無しさん2016/02/20(土) 16:06:52.20ID:LyOsXfce
10秒ぐらい待ったら、読み込まれるのか、試してみれば?
0816デフォルトの名無しさん2016/02/20(土) 16:45:02.16ID:izAI/KRP
>>815
自己解決しました!
外部jsファイルの前後に<!-- -->があったためでした。
(本体のHTMLの<script>タグからだと読めましたがgetScriptではだめなようです。)
解決方法ですがgetScriptにdone()とfail()を指定してで読み込み成功可否判別したら、
failの第3引数のexceptionをalert表示してみると構文エラーと出てたので解決にいたりました。
お答えいただいたた方、ありがとうございました。
0817デフォルトの名無しさん2016/02/20(土) 16:53:13.46ID:nGlsW33n
Chromeのdeveloperツールのsourceタブで時々javascript入れてるフォルダや一部のファイルが表示されなくなる時があるんですが同じ様な現象の方、解決された方どうしたら表示されたか教えてください
0818デフォルトの名無しさん2016/02/20(土) 17:29:59.68ID:xKbu6SpW
>>814
MDNは俺にとっては十分簡単だし、必要十分な情報があると思うけどな
あなたが「簡単」と感じる尺度はあなた自身にしか分からない
0819デフォルトの名無しさん2016/02/20(土) 17:49:53.50ID:jtnfjqEh
>>818
レスしていただかなくて結構ですよww
あなたの簡単なんて尺度でモノを図ってる段階で論外ですからww
0820デフォルトの名無しさん2016/02/20(土) 18:04:58.14ID:CX3BRGG/
なんだこいつ
特に酷い回答されたわけではないのに不快にする言い方するんだ
あらしたいのかよ
0821デフォルトの名無しさん2016/02/20(土) 18:10:38.66ID:54hZ2zfb
javascriptのクラスは難解だからなー
初心者にわかりやすいサイトなんて存在しないんじゃない?
0822デフォルトの名無しさん2016/02/20(土) 18:21:37.11ID:mUUTz7yX
見てみたけどめっちゃ単純化したHighlight済みコードで順を追って説明してるじゃん
わざわざURL探してきたのに煽られてる>>812が不憫すぎる
0823デフォルトの名無しさん2016/02/20(土) 19:08:28.41ID:7FJRvlZ/
>>822
リファレンスなんて誰も求めていないんですよ。
そんなもの最初からあることくらい知ってますから。
0824デフォルトの名無しさん2016/02/20(土) 19:09:40.52ID:7FJRvlZ/
>>821
自分で書くしかないようですね。
ありがとうございます。
0825デフォルトの名無しさん2016/02/20(土) 19:11:06.04ID:7FJRvlZ/
>>822
それと、ソレを簡単って言ってるなら、まぁ、ぶっちゃけ病院言って、
空気読めないんですが治りますか?って行ってくるといいよ。
0826デフォルトの名無しさん2016/02/20(土) 19:15:54.84ID:7FJRvlZ/
>>820
何勘違いしてんのか知らないけれど、俺はクラス使えるからねww
質問の意図間違えてるようだけど。

酷い解答されたわけではない?これ、初心者に渡すのお前?
僕は簡単でしたって?ww そういう奴多いよねぇ、ココ。そういう
の病気だって知ってるか?
0827デフォルトの名無しさん2016/02/20(土) 19:26:10.73ID:HOPxSzsv
ID:jtnfjqEh = ID:7FJRvlZ/ みたいなキチガイがJavaScriptスレには特に多いよな。
病院行った方がいいよマジで。
0828デフォルトの名無しさん2016/02/20(土) 20:19:46.92ID:izAI/KRP
クラス使えるレベルなら初心者とは言わない。
初心者に渡すならとほほのjavascriptサイトを勧めるね。
http://www.tohoho-web.com/js/start.htm#HelloWorld
順を追ってば中級者程度になれるけどこれでも簡単じゃないなら本人の努力不足か理解不足
だな
0829デフォルトの名無しさん2016/02/20(土) 20:49:02.08ID:Y5ep2gbm
バカには無理
0830デフォルトの名無しさん2016/02/20(土) 20:59:19.56ID:HOPxSzsv
なおキチガイはVBAスレも荒らし中の模様
http://peace.2ch.net/test/read.cgi/tech/1455817784
0831デフォルトの名無しさん2016/02/20(土) 22:22:29.66ID:3MTra0yO
Javaの案件で「testは大嫌いです」とかいう人が
採用されてしまうのが謎。
意味がわからん。
俺がオッサンなのは認めてもいいが理由を知りたい。
0832デフォルトの名無しさん2016/02/20(土) 22:23:46.52ID:3MTra0yO
ごめん、場所を間違えた
0833デフォルトの名無しさん2016/02/20(土) 23:05:41.06ID:cJNMkscd
>>817
俺もなるよ。
何度かリロードすればたいてい治るとよ。
0834デフォルトの名無しさん2016/02/21(日) 01:14:25.60ID:/Ied2krL
ES6かTypeScriptなりを使ってjavascriptでクラスを書かないのが正解
0835デフォルトの名無しさん2016/02/21(日) 01:27:42.97ID:YmVWQy/y
ES6はJavaScriptですはい
0836デフォルトの名無しさん2016/02/21(日) 09:01:18.95ID:lDbEdv1b
JavaScriptのクラスはかんたんでしょ。
これがクラスだと言えばクラスになるんだから。
0837デフォルトの名無しさん2016/02/22(月) 13:01:37.48ID:oJepb8hB
「JavaScript本格入門」 山田 祥寛
ってどうですか?他言語でプログラミング言語の知識はある程度以上あります。
でもJavaScriptは初心者でHTMLの知識はひととおりある程度です。
0838デフォルトの名無しさん2016/02/22(月) 13:52:00.47ID:7K+LTY2x
>>837
他の言語をある程度分かっている人が手っ取り早くスタートに着くにはいいと思います。
複数のファイルに分かれているソースの実行順序やJavaScriptではクラスをこうやって実現しますなどの
多言語から来た人が知りたいことが、要領よく説明されています。

これでさっさとスタートして、後はデビッドフラナガンの本(オライリー)で埋めていけばいいと思います。

山田嫌いも多いようなので、合わないかも知れませんが。
0839デフォルトの名無しさん2016/02/22(月) 14:12:54.47ID:oJepb8hB
>>838
そうでございますか、ありがとう。さっそく買ってきますわ。
0840デフォルトの名無しさん2016/02/23(火) 01:18:03.36ID:H8f9+DBt
JavaScriptもJavaのような資格試験はあるんだっけ?
0841デフォルトの名無しさん2016/02/23(火) 08:25:59.40ID:ltvQNGjy
>>837
推薦図書/必読書のためのスレッド 78
ttp://peace.2ch.net/test/read.cgi/tech/1447165038/46

マルチポストは禁止!
同じ質問を、他のスレや他のサイトで、聞いてはいけない

必ず、一方を取り消してから、書き込むこと
0842デフォルトの名無しさん2016/02/23(火) 08:36:29.00ID:EYfFVqfr
参考書の質問って特にマルチポストされやすい印象
0843デフォルトの名無しさん2016/02/23(火) 11:38:39.26ID:H8f9+DBt
>>841
あれれ?おかしいですよ。

>>837は
「JavaScript本格入門」 山田 祥寛

http://peace.2ch.net/test/read.cgi/tech/1447165038/46は
山田祥寛(よしひろ)、翔泳社 10日でおぼえる jQuery 入門教室 第2版

本が違うようですが。
「JavaScript本格入門」 山田 祥寛は良くないということですか?
0844デフォルトの名無しさん2016/02/23(火) 12:16:56.65ID:vAHT/KiX
>>843
マルチ
0845デフォルトの名無しさん2016/02/23(火) 12:27:17.28ID:Oh6h4g2T
技術書を多数執筆している山田祥寛さんという方がいます
https://esepin.net/log/213

高すぎる評価

ただ、Amazonではこの方(WINGSプロジェクトも)の著書は高すぎじゃないかというくらい高評価です(著書の内容が良くないとは言いませんが)
更にこの方の著書のレビュアーをよく見ると少しヘンです
さらっと見ただけで以下の共通のレビュアーが見つかります。大体が★5を付けています

http://www.amazon.co.jp/gp/pdp/profile/A2ZBMYCKBPL6P5/
http://www.amazon.co.jp/gp/pdp/profile/A2UPYKSC9X5959/
http://www.amazon.co.jp/gp/pdp/profile/A3VKNIQU5HOOF6/
http://www.amazon.co.jp/gp/pdp/profile/A2B3Q5QQVGSOFU/
おそらくは献本を受けた方のレビューじゃないかと思うのですが、ここまで露骨だとサクラとかステマといわれても仕方がありません
0846デフォルトの名無しさん2016/02/23(火) 13:47:47.87ID:H8f9+DBt
>>845
そんなことはどうでもええ。

「JavaScript本格入門」が厨さんの候補に挙がってなくて
「10日でおぼえる jQuery 入門教室」のほうか挙がっているのは
後者のほうができがいい本なのかどうかがいま問題だ。

あまりわたしを怒らせないほうがいいぞ。
0847デフォルトの名無しさん2016/02/27(土) 01:32:05.89ID:IUWCqsoH
さわってみたがややこしい言語だな
FileReaderが特に意味不明過ぎる
なんであんな余計な手順踏んでるんだ?Cなら一発なのに
0848デフォルトの名無しさん2016/02/27(土) 01:36:34.47ID:g3DkZYTV
>>847
セキュリティのためだよ。

Cはブラウザで動かないでしょ?そのまま動かしたら脆弱性になるから。
Cならっていうならば、Cの問題点までわかるようになろう。
Cを使いこなせていない。
0849デフォルトの名無しさん2016/02/27(土) 01:53:16.41ID:IUWCqsoH
調べてたらCSSとHTMLの属性が原因っぽいな
0850デフォルトの名無しさん2016/02/27(土) 02:30:08.52ID:IUWCqsoH
firefoxってjavascriptだめなのか?
document.getElementById("menu").innerText = "1";
がつかえねぇけどhtmlの方の書式が間違ってるのか
0851デフォルトの名無しさん2016/02/27(土) 03:05:36.63ID:lXntGSmH
innerTextは非標準
https://developer.mozilla.org/ja/docs/Web/API/Node/textContent
0852デフォルトの名無しさん2016/02/27(土) 04:27:25.68ID:IUWCqsoH
なるほど
textContentの方がいいのか
0853デフォルトの名無しさん2016/02/27(土) 05:55:12.95ID:g3DkZYTV
>>852
そういう罠にハマりたくなかったらjQueryを使うのがいい。
どのブラウザでも、古いブラウザでも同じように動く。
0854デフォルトの名無しさん2016/02/27(土) 08:45:03.85ID:39+8+0w9
互換性系は下記サイトを見ておけば問題ない
http://caniuse.com/
http://kangax.github.io/compat-table/es5/
https://developer.mozilla.org/ja/docs/Web
0855デフォルトの名無しさん2016/02/27(土) 10:08:48.72ID:g3DkZYTV
読まないといけない時点で・・・
0856デフォルトの名無しさん2016/02/27(土) 10:12:11.27ID:1upMdKx/
C言語でもWindowsとLinuxの両方で動くようにするには少しは勉強しなきゃだろ
0857デフォルトの名無しさん2016/02/27(土) 10:15:25.99ID:g3DkZYTV
そこで同じように動くライブラリを使うんですよ。
0858デフォルトの名無しさん2016/02/27(土) 10:44:04.12ID:0gvyIPvr
俺らが考えるよりも、すごい人が書いたライブラリ使えばええんやで
0859デフォルトの名無しさん2016/02/27(土) 18:12:52.92ID:7I6x18bI
ブラウザの場合はクロスブラウザって言うけど、
C言語の場合も昔からクロスプラットフォームライブラリっていうのがあって
それを使うことで簡単にWindowsでもLinuxでもMacOSXでも動かすことができた。
0860デフォルトの名無しさん2016/02/27(土) 19:27:59.56ID:IUWCqsoH
innerの方が遥かに使いやすかった、contentって表示だけか<script>がそのまま表示された
0861デフォルトの名無しさん2016/02/27(土) 19:31:45.90ID:39+8+0w9
jQueryでもjQuery API Docを読まないといけないのだから同じだと思うがな
DOMどころかESも理解してないjQuery初心者が多くて困る
基礎はしっかりと理解しておかないといかんよ
0862デフォルトの名無しさん2016/02/27(土) 19:35:40.34ID:39+8+0w9
>>860
試してないが、<script><!-- --></script> で回避できるのでは?
innerTextは非標準だから全ブラウザで同じ挙動が保証されてない
特殊な事をやるなら再帰処理して独自に組んだ方が良いとは思うが
0863デフォルトの名無しさん2016/02/27(土) 19:35:46.29ID:IUWCqsoH
何を理解するのですか?
考え方なんてどれも一緒だろ?
0864デフォルトの名無しさん2016/02/27(土) 19:36:11.83ID:IUWCqsoH
やってみよう
0865デフォルトの名無しさん2016/02/27(土) 20:09:14.33ID:7I6x18bI
>>861
ドキュメントを読むことで生産性をあげられるんだから
それはいいことだよ。

ただ、罠を探すためにドキュメントを読むっていうのは
生産性あがってないので、なんだかなぁって思う。
0866デフォルトの名無しさん2016/02/27(土) 21:59:38.68ID:39+8+0w9
>>865
罠を探すのではなく、標準化されたAPIでの実装方法を読む
>>850は独自拡張機能を使ったからFirefoxに対応できなかった
jQueryでも例えば、下記URLの問題はjQuery APIだけでは解決できない
https://teratail.com/questions/16247
jQueryは基本的にDOM要素ノードへ変更を加えるAPIしか実装していないからだ
html()で既存DOMを全て上書きする実装なら出来なくはないが、既存DOMの参照が失われるのは影響力が大きい
0867デフォルトの名無しさん2016/02/27(土) 22:02:25.14ID:39+8+0w9
イベントバブリングはDOM Eventsでの重要な仕組みだが、jQuery API Documentでは基本的にDOMを理解している前提での説明しかない
そのせいかjQuery初心者の中にはイベントバブリングを知らない人が多いようだ
学ぶのが無駄と面倒くさがらずにDOMの基礎知識を蓄えた方が良い
0868デフォルトの名無しさん2016/02/27(土) 22:15:50.66ID:7I6x18bI
× そのせいかjQuery初心者の中にはイベントバブリングを知らない人が多いようだ
○ そのせいか初心者の中にはイベントバブリングを知らない人が多いようだ
0869デフォルトの名無しさん2016/02/27(土) 22:17:23.02ID:IUWCqsoH
イベントバブリング知らないならそもそもinnerTextなんてでねーって
0870デフォルトの名無しさん2016/02/27(土) 23:09:10.73ID:ILp1d0We
さすがにそりゃ無いわ
0871デフォルトの名無しさん2016/02/28(日) 08:04:50.54ID:w1saw6Ta
JavaScriptって配列の一部分を取り出すのって
最新仕様でもArray.slice()しかなかったっけ?

10個の配列の3番目以降を取り出すとか
もうちょっとスマートに書きたい。
0872デフォルトの名無しさん2016/02/28(日) 08:29:40.99ID:TgU16/Zq
十分スマートだろ
0873デフォルトの名無しさん2016/02/28(日) 09:46:56.89ID:w1saw6Ta
>>872
Pytyhonだったら、array[3:] こんな感じで指定できるんだよね。
0874デフォルトの名無しさん2016/02/28(日) 12:29:40.31ID:BSW9y1ih
>>871
うろ覚えだけど、ES6で...があったような
0875デフォルトの名無しさん2016/02/28(日) 13:12:14.75ID:owgscgJU
あれは展開するだけだな
0876デフォルトの名無しさん2016/02/28(日) 17:12:37.24ID:++QKNm1D
オワコン言語
0877デフォルトの名無しさん2016/02/29(月) 04:43:37.57ID:nFq7qn1m
オープンソースのエディタ「Visual Studio Code」がChromeブラウザのデバッガプロトコルに対応。エディタから直接デバッグ可能に
http://www.publickey1.jp/blog/16/visual_studio_codechrome.html
0878デフォルトの名無しさん2016/02/29(月) 13:29:46.97ID:2WZsxuUY
>>877
いいね。つーか、今までなかったのが問題。 
0879デフォルトの名無しさん2016/02/29(月) 15:17:01.65
プロジェクトフォルダにスタート時のURL指定して、
F5でデバッグ開始とか出来るんすかね
すごいじゃん
0880デフォルトの名無しさん2016/02/29(月) 15:23:35.63ID:HA1lXX7z
>>4
和訳とか書いてて全く訳されてねーぞおい
0881デフォルトの名無しさん2016/02/29(月) 15:43:27.80ID:HA1lXX7z
DOM操作するメソッド一覧ないのかよ
0882デフォルトの名無しさん2016/02/29(月) 22:42:12.21ID:CdGG6jro
DOMで和訳されてない仕様書なんてあったっけ?
0883デフォルトの名無しさん2016/03/02(水) 10:47:36.78ID:feGTXuu1
web製作板のjs質問スレが荒れてたからこっち来たけど
こっちはクライアント側の内容もOKですか?
それともサーバサイド限定ですか?
0884デフォルトの名無しさん2016/03/02(水) 10:51:00.67ID:VnxQ1mQx
OK
0885デフォルトの名無しさん2016/03/02(水) 16:51:14.81ID:6ui9eqXM
久々に来てみたら同じスレが10個以上建ってるし…
ここが本スレでいいのか?
0886デフォルトの名無しさん2016/03/03(木) 02:37:37.99ID:DpvZjIDd
OK
0887デフォルトの名無しさん2016/03/03(木) 12:37:26.25ID:1CnjBF0e
どっちも本スレみたいなもん
ここは荒らしが一番酷かった時期にテンプレ作ってる人が避難所として建てたスレ
今Web製作板で続いてるのは一度荒らしに潰された後にまた建て直したスレ
0888デフォルトの名無しさん2016/03/03(木) 16:14:50.84ID:36qgesZJ
避難所っていうか隔離所な
0889デフォルトの名無しさん2016/03/03(木) 17:03:04.97ID:RZS145YN
誰かweb制作板の荒らし報告できる神いないの?
0890デフォルトの名無しさん2016/03/03(木) 17:04:59.79ID:eajzZFGl
>>883
大丈夫
0891デフォルトの名無しさん2016/03/03(木) 17:22:24.50ID:mSb5CsI7
重複は荒らしとして見なされなくなったよ
0892デフォルトの名無しさん2016/03/04(金) 00:11:55.90ID:2r5vBeAu
抽象的な質問で申し訳ないのですが、input type textの中にカンマ区切りでタグを並べた時に、はてなブログみたいにボタンになってバツ印で消したりできるライブラリってありますか?
0893デフォルトの名無しさん2016/03/04(金) 03:23:00.07ID:uWFpW8iU
Arreyname[0]=new Arrey();
これ使えなくなったんですか?
0894デフォルトの名無しさん2016/03/04(金) 03:26:45.34ID:uWFpW8iU
ブラウザバグってました使えました
0895デフォルトの名無しさん2016/03/04(金) 07:38:21.33ID:CMO4mVzn
バグってるのはお前な
0896デフォルトの名無しさん2016/03/04(金) 07:40:10.49ID:d7osXy+s
バグってるのはハニーだ、3、2、1、0
0897デフォルトの名無しさん2016/03/04(金) 08:43:45.87ID:OJjul4c/
ハドソンはもう無いんだよ
0898デフォルトの名無しさん2016/03/04(金) 23:19:01.61ID:uWFpW8iU
質問しようと思ったけど書き込んでたら自己解決しました!
0899デフォルトの名無しさん2016/03/04(金) 23:45:00.25ID:gdje5nyo
何に詰まってどう解決したのか書いておくと誰かが助かるかもしれんぞ
0900デフォルトの名無しさん2016/03/05(土) 02:52:42.13ID:g+lUxJxQ
<div id="unko"></div>
<div id="unkomenu"></div> node[0]
.....                      ←ここを指定したい
<div id="unkomenu"></div> node[1]
  
<div id="unkomenu"></div> node[2]
どうすればいいですか?
0901デフォルトの名無しさん2016/03/05(土) 03:07:03.20ID:g+lUxJxQ
Innerhtml(<div id="unkomenu">〜</div>) + strで自己解決しました
0902デフォルトの名無しさん2016/03/05(土) 03:15:56.37ID:g+lUxJxQ
みすりました
classナメでいけました
0903デフォルトの名無しさん2016/03/05(土) 05:39:47.15ID:g+lUxJxQ
アップロードせずにディレクトリ上でXMLHttprequest を使うにはどうしたらいいですか?
0904デフォルトの名無しさん2016/03/05(土) 05:41:14.84ID:g+lUxJxQ
ちょろめしてますがサポートナントカカントカでファイル読み込んでくれません
0905デフォルトの名無しさん2016/03/05(土) 05:46:51.80ID:g+lUxJxQ
function get(unkoURL)
{
var xhr = new XMLHttpRequest();
xhr.open("GET",unkoURL);
xhr.send(null);

console.log(xhr);  ←アップロードして走らせないとresponseText: ""になってしまってオフライン上で走らせられない
}
0906デフォルトの名無しさん2016/03/05(土) 06:53:21.37
node.js なりApache なりIISなり入れないと
HTTPRequestに応えるサーバが居ないだろ
0907デフォルトの名無しさん2016/03/05(土) 12:37:20.65ID:4VOSHNz2
Chromeでローカルのファイル読みたいならChromeアプリのAPI使うかFileAPI使うしかないな
0908デフォルトの名無しさん2016/03/05(土) 13:54:56.39ID:U5mUFT1+
今のバージョンに残ってるか知らんがコマンドラインオプションつければいける
0909デフォルトの名無しさん2016/03/05(土) 18:29:45.29ID:5EKNIcAx
>>905
ローカルファイルを読み込もうとしてるならこれでいけるんじゃない?
1. Chromeのショートカットのプロパティ開く
2. ショートカットタブのリンク先に以下追記
  「{既にあるパスやらの後}△--allow-file-access-from-files」 ※:△は半角スペース
0910デフォルトの名無しさん2016/03/05(土) 21:44:58.79ID:g+lUxJxQ
>>909
いけました
意味は何ですか?
0911デフォルトの名無しさん2016/03/05(土) 21:53:19.90ID:g+lUxJxQ
ありがとうございますこれでねられます
0912デフォルトの名無しさん2016/03/05(土) 22:25:37.88ID:k8iimxyY
はい現行すれ〜

+ JavaScript の質問用スレッド vol.129 +
http://echo.2ch.net/test/read.cgi/hp/1456250334/l50
0913デフォルトの名無しさん2016/03/08(火) 07:01:08.16ID:UnVfEOQI
本職のjavascript使いはライブラリ五個も六個も入ってるようなプロジェクトでもすんなりと途中参加出来るの?
どこでどれの関数使ってるのかもうワケわからんすぎて死にそう……
これ絶対後々メンテナンス出来る奴いなくなって負の遺産になる気がするんだけど
0914デフォルトの名無しさん2016/03/08(火) 07:08:00.04ID:JBWz0dYt
常識で考えろムリに決まってる

開発速度「だけ」を最優先で伸ばすためだ
メンテナンス性なんて考えてはいけない
0915デフォルトの名無しさん2016/03/08(火) 08:44:04.77ID:sZ/VQ/J3
>>913
いや、なんで出来ないのかのほうがわからんのだが?
ライブラリたった5個、6個だろ?
どういうときに困るのか言ってくれよ。
0916デフォルトの名無しさん2016/03/08(火) 08:45:25.57ID:sZ/VQ/J3
>>914
一般的にライブラリを使うとメンテナンス性は上がります。

なぜなら同じことを、そこに書くよりも
使ったほうが、コードの量は減るからです。
メンテナンスするべきコードの量が減るのです。
0917デフォルトの名無しさん2016/03/08(火) 08:49:19.59ID:c3cSycoQ
>>914
は?

>>913
は?
0918デフォルトの名無しさん2016/03/08(火) 10:10:37.15ID:V7sn28DS
>>915
Marionette.js入れてるのにBackbone.jsの関数ばっか使って、本当にごく稀にいきなりMarionette.jsの関数使われたりでどこ調べりゃいいのか悪戦苦闘してる
C#とかなら呼び出し元辿ってどのライブラリの所属か一発で分かるのにそういうこと出来ないからどれについて調べればやってること理解できるのかサッパリ
そこまでバカにするのなら本人達で完結するならいいけと別言語のメンバーをヘルプにとか入れないでくれ
0919デフォルトの名無しさん2016/03/08(火) 10:29:58.84ID:sZ/VQ/J3
>>918
公式サイトで調べればいいだけだと思うけど?

今までどこ見てたのさw
0920デフォルトの名無しさん2016/03/08(火) 10:31:51.72ID:c3cSycoQ
>>919
ですね。馬鹿はドキュメントも見ずに、アホな解析を始めるから手におえません。

っていうかさ、JavaScript使いってこんな馬鹿ばかりなの?
0921デフォルトの名無しさん2016/03/08(火) 10:36:49.35ID:sZ/VQ/J3
馬鹿じゃないから使ってるんだろ。
お前もJavaScript使いのせいにするな。
0922デフォルトの名無しさん2016/03/08(火) 10:45:43.75ID:v53LvxMN
>>918
使用してるモジュールの生api触らせるとはなかなか変なプロジェクトだなぁ。
普通、アーキチームが作ったライブラリ経由で呼ぶもんじゃないの?csなんか使ったことあるメンバーだったら余計に。
ライブラリがクソいのであれば申し訳ないとしか言いようが無いかもしれんが。
0923デフォルトの名無しさん2016/03/08(火) 10:51:12.45ID:sZ/VQ/J3
> 普通、アーキチームが作ったライブラリ経由で呼ぶもんじゃないの?
なんのために?

ライブラリが使いづらいからという理由で
オレオレライブラリでラップするのは
アンチパターン。
0924デフォルトの名無しさん2016/03/08(火) 10:58:55.97ID:V7sn28DS
>>919>>922
誰も説明してくんないからどのライブラリの公式見ればいいのかわっかんねーという話
ただでさえjavascript変な実装出来るのにどうして書くべきなのかすら見当もつかないから前に進むことすら出来ない
0925デフォルトの名無しさん2016/03/08(火) 11:02:36.49ID:sZ/VQ/J3
>>924
使用しているライブラリはわかるだろ。
最大でも5〜6個のライブラリのドキュメント見るだけだろ。

実際にそこに書いてあるコードを見ればどのライブラリだろうかって
予測つくんだから探し回ることもない。
最悪ブレークポイントでも置いてステップ実行すればいいだけ
0926デフォルトの名無しさん2016/03/08(火) 11:17:10.70ID:V7sn28DS
>>925
コードについては>>918
せめて統一されてればなぁ……やたら細かくviewが階層化されて処理が分散しまくってるし
最終的に成果物出せてはいるけど本職のjavascript使いなら途中から入ってもこんなの対応できるのか?って思ったから>>913だったんだよ
C#とかならどんだけ大きくなってもGoogleで検索するキーワードとか簡単に割り出せるからさ
0927デフォルトの名無しさん2016/03/08(火) 11:19:30.75ID:sZ/VQ/J3
>>926
俺なら知らなくても調べられるから
単にお前の能力不足。お前の会社の能力不足かもしれんがなw
ともかく言語のせいにするな。
0928デフォルトの名無しさん2016/03/08(火) 11:48:19.11ID:V7sn28DS
そうだな……俺の力不足だな
javascriptの既存ソースに正規表現間違ってるようにしか見えない記述見つけたけどきっとこれも偉大なjavascript使い様が深謀遠慮した結果なんだろう
0929デフォルトの名無しさん2016/03/08(火) 11:51:04.10ID:iEJDAboh
(同じようなラッパー)ライブラリ五個も六個も入ってるようなプロジェクト

つまりこういう事だろ?
0930デフォルトの名無しさん2016/03/08(火) 11:52:13.14ID:yRHzElyn
関係ない事例持ち出して、俺は頭悪くないと自己弁護w
0931デフォルトの名無しさん2016/03/08(火) 11:53:45.88ID:yRHzElyn
>>929
ラッパーライブラリと継承や拡張は意味が違うからね。

継承や拡張はオリジナルの機能を失うこと無く
機能追加している。

ラッパーライブラリ、特にオレオレとか、
そういうのは、オリジナルの機能を制限してるので不便になる。
0932デフォルトの名無しさん2016/03/08(火) 11:58:19.74ID:c3cSycoQ
>>931
まぁ、同梱のjqueryとCDNで取ってきたjqueryとで使った時に、同梱のは不具合無く動くが、
CDNのだと同じバージョンなのにへんな挙動でたりとかあって、

差分しらべたら、jquery自体に手が入っていたなんて事はあるけれどね。手抜きだねこれは。
0933デフォルトの名無しさん2016/03/08(火) 11:59:50.00ID:yRHzElyn
中身が違うので、それは同じバージョンじゃない。
同じバージョン番号であるだけで
違うバージョンだ。
0934デフォルトの名無しさん2016/03/08(火) 12:05:09.13ID:v53LvxMN
>>923
使いづらいからな訳無いだろw
ライブラリから別のライブラリへの移行を楽にする為と、トランザクションじみた処理をコミット・ロールバックも含めた形でラップするとか、
複数ライブラリの引数の並び順を整理するとか、
普通に使うけど。
>>924
そりゃアーキがボンクラなんだと思うよ。
0935デフォルトの名無しさん2016/03/08(火) 12:07:38.75ID:yRHzElyn
>>934
> ライブラリから別のライブラリへの移行を楽にする為と、トランザクションじみた処理をコミット・ロールバックも含めた形でラップするとか、
見事なアンチパターンw

移行とか考えると、2つのライブラリに共通することしかできなくなるから、
性能を発揮できなくなる。便利な機能が使えなくなる。

トランザクションをラップすると、勝手に内部でトランザクションが行われるから
複数の処理をまとめたときに使いづらくなる。
0936デフォルトの名無しさん2016/03/08(火) 12:11:06.62ID:yRHzElyn
こういうときに必要なのはラッパーライブラリではない。

一つは階層構造の導入。フレームワーク・ライブラリに依存した部分を分離する。
その分離した部分ではフレームワーク・ライブラリの機能をフルに使っていいし
そうでない部分では使わない。

もう一つはヘルパーライブラリ。ある特定の処理専用に便利ツールを用意するだけで、
特定の部分以外はライブラリの機能を普通に使って良い。

原則として元々ある機能は全て使って良いとしなければいけない。
0937デフォルトの名無しさん2016/03/08(火) 12:48:08.96ID:v53LvxMN
>>935
2つのライブラリに共通する機能しか使えないってなんだよw
どっちも使えるようにする、じゃないよ?(笑)

例えば、ajaxでサーバにトークン投げてあるデータを取得するんだけど、失効してたらログイン処理投げて、トークン更新できるか試して更新できればそのまま続投、ダメならエラーにする、
みたいな処理を用意してて
・データを取得出来なかったら直近に取ったキャッシュに、キャッシュ値ですよフラグを立てて返す処理を足す
みたいな改修あったら自分の所に用意しとかないとめんどくさいし、
逆に、
jQuery使ってたけど、もうjQuery使ってるのajaxくらいだし、いつでも切れるようにsuperagentにajax系を載せ替えよう、ってなった時に全部直して回るのかって話じゃん。
superagentだとjsonpそのまま書けないから拡張書こうとか、そうなってDIが増えるのはわかるけど、
superagent自体に自分のシステムの処理を入れるのはDIを履き違えてるよ。
それこそ共通する機能しか発揮できなくなるけどね。
0938デフォルトの名無しさん2016/03/08(火) 12:49:31.17ID:v53LvxMN
>>936
階層構造の導入こそが、言ってる「ラッパーライブラリ」なんでは?
ラッピングして子階層に落としちゃうんだから。
0939デフォルトの名無しさん2016/03/08(火) 12:51:54.04ID:v53LvxMN
>>935
内部でトランザクションを切りたくないなら、そんなもんは、もともと「トランザクション」じゃない。
トランザクションはその中で中断「出来ないもの」を分離するべきなんだから、
大きなトランザクションであれば、それは単に大きなトランザクションか、そもそもやるべき事が間違ってる。
0940デフォルトの名無しさん2016/03/08(火) 14:13:41.18ID:yRHzElyn
>>938
ラッパーライブラリと階層構造は違う

>>922で書いてあるだろ?
> 使用してるモジュールの生api触らせるとはなかなか変なプロジェクトだなぁ。
> 普通、アーキチームが作ったライブラリ経由で呼ぶもんじゃないの?

生APIを触らせないようにして、ライブラリ経由で呼ぶって書いてある。
こういうのは階層構造ではない。
0941デフォルトの名無しさん2016/03/08(火) 14:16:11.69ID:yRHzElyn
>>939
> 内部でトランザクションを切りたくないなら、そんなもんは、もともと「トランザクション」じゃない。

トランザクションと処理は別物。
処理は単体で呼ぶ場合もあるし、複数まとめて呼ぶときもある。

本来、複数まとめて処理したときにそれをまとめるのがトランザクション。
なので処理単体にトランザクションを含ませるのは間違い。

DIコンテナタイプのサーバーサイドフレームワークを使えばわかるよ。
トランザクションは、処理の中ではなくて、処理の境目に
挿入するような仕組みになってる。
0942デフォルトの名無しさん2016/03/08(火) 15:51:19.81ID:v53LvxMN
>>940
だから、生apiを触らせずにライブラリで、依存しない形で利用するんだが。
それを生apiのラッパーと呼ぶか、M、V、CだとかVMだとか、どう呼ぶか呼ぶかなんかは瑣末な問題で。
実態としては、余計な事をさせずに生の実装に対しての依存度を下げる為のものが、フレームワークだよ。
ただ単に、2、3個のモジュールから便利そうな関数をexportしまくる物をラッパーライブラリと呼ぶんでるなら、それはお里が知れるとしか言い様が無いが。

>>941
お前頭おかしいか、実務経験無いのか?
いくつか纏めてトランザクション呼ぶトランザクションは、一つの大きなトランザクションであって、その際の、小さな一つずつトランザクションの存在意義は無いよ。
部分ロールバック可能であれば、そもそも分割すべき。
処理の中に入れるわけねえだろ。
分割不能なものがトランザクションだよ。
古典的な例を出すと、片方の口座の残高を引いて、片方の残高に足すまでがトランザクションだよ。
50%取り分の仲介者Bがいる時の、
口座Aの残高から100円引いて口座Bの残高に100円足して口座Bの残高から50円引いて口座Cの残高に50円足す動きは、2つのトランザクションではない。
0943デフォルトの名無しさん2016/03/08(火) 15:59:22.79ID:yRHzElyn
> だから、生apiを触らせずにライブラリで、依存しない形で利用するんだが。

だからそうすると、生APIの機能のうち使えないものが出てくるだろ。
全ての機能を使えるようにするには手間がかかる
使用しているライブラリがのバージョンが上がったら、
オレオレライブラリもいちいち対応するのか?アホらしいw

MVCとかいう話はしてねーよ。
0944デフォルトの名無しさん2016/03/08(火) 16:01:44.25ID:yRHzElyn
> 口座Aの残高から100円引いて口座Bの残高に100円足して口座Bの残高から50円引いて口座Cの残高に50円足す動きは、2つのトランザクションではない。

だから100円引く処理の中にトランザクション処理を入れるな、
100円足す処理にトランザクション処理を入れるな。
処理の中にトランザクション処理を入れてはいけないって話だ。

計算処理とトランザクション処理は分離するべきもので、
一つにまとめたいときに、複数の処理の前後に挿入するものなんだよ。
0945デフォルトの名無しさん2016/03/08(火) 17:35:59.53ID:V7sn28DS
>>943
ライブラリのバージョンって不具合が出たとかでもない限り安易に上げたりしないだろ?
動作保証の観点から言って
0946デフォルトの名無しさん2016/03/08(火) 18:07:21.13ID:v53LvxMN
>>943
馬鹿かよ。
使えないようにするんだよ。それが階層構造の..じゃねえの?それすら聞きかじっただけか?
使ってるライブラリのバージョンが上がったら?
上げねえよ。
上げるなら、対応計画切ってやるけど、その中で対応するのはそのライブラリだけで済むだろうが。

>>944
中に入れてねえよ…
全部がトランザクションだよ。どちらかと言うとトランザクションに包まれてるよ。
分割できない計算処理がトランザクションだよ。
100円引くのと100円足すのがトランザクションじゃないってどんな考え方だよ。
計算処理しないならトランザクションなんか要らねえじゃん。
相手方に100円足そうとして足せなかったから、引かなかったことにする、を綺麗な形でトランザクションから外して計算処理だけしてもらいたいもんだな。
0947デフォルトの名無しさん2016/03/08(火) 18:10:03.08ID:v53LvxMN
>>944
あ、お前なんか勘違いしてるのか?
2つのトランザクションじゃない、って事は、
小さなトランザクションを2つ連続で行う事を容認してるわけじゃないからな。
一つの大きなトランザクションで、そもそも分割不能だからナンセンスだ、存在意義も無い。
それはそれで別処理で作れ、って話だけど。
0948デフォルトの名無しさん2016/03/08(火) 18:17:42.56ID:V7sn28DS
トランザクションの意味のすり合わせする必要があるように見える
>>944はSQL的な意味でのトランザクションとしては正しいように思える
これが違うというなら>>947はトランザクションの意味から説明した方が理解が捗ると思うけど
0949デフォルトの名無しさん2016/03/08(火) 18:20:55.01ID:yRHzElyn
>>946
> 使えないようにするんだよ。それが階層構造の..じゃねえの?それすら聞きかじっただけか?

やっぱり分かってないなw
もう一回書いてやろうか?

>>922で書いてあるだろ?
> 使用してるモジュールの生api触らせるとはなかなか変なプロジェクトだなぁ。
> 普通、アーキチームが作ったライブラリ経由で呼ぶもんじゃないの?

アーキチームは何をやってる?
アーキチームが作ったライブラリ経由で呼ぶ?
つまり生APIを使えるのはアーキチームだけ。

アーキチームはアーキテクチャを作るんじゃなくて、
ある一階層を作ってるのかよw

アーキテクチャって何かわかってるか?w
そういう話だよ。
0950デフォルトの名無しさん2016/03/08(火) 18:40:21.69ID:V7sn28DS
>>936で言いたいのは画面描画などの部分と業務に依存するビジネスロジックを分離しろという話なんかね
0951デフォルトの名無しさん2016/03/08(火) 19:18:49.31ID:yRHzElyn
>>950
その通り。

階層構造に分離するってだけで、使うAPIを禁止するわけじゃない。
画面部分とビジネスロジックに担当者が分かれることで、
事実上使わないってことはあるかもしれないが、
それにしたって、

> 使用してるモジュールの生api触らせるとはなかなか変なプロジェクトだなぁ。
> 普通、アーキチームが作ったライブラリ経由で呼ぶもんじゃないの?

アーキテクチャチームが、画面部分かビジネスロジック部分かはしらないが、
生APIを隠すなんてことはしない。アーキテクチャチームは全体に渡って
設計するもので役割がおかしい。
0952デフォルトの名無しさん2016/03/08(火) 19:54:06.48ID:v53LvxMN
>>949
>>951
よくわからんな。
つまり、開発者は適当に好きなライブラリ使ってやってくれてオッケー、
管理も各自でやってね!
って感じなのか。
生API使わせないのどこか変なのか全然わからん。
全体にわたって設計するために、ある程度縛るのはあたりまえじゃね?
この画面のこのモジュールではこれ、ここではこれ、ここではこれ、って別々のモジュールを好き勝手呼んでたらwebpackしても肥大して仕方ないし、
この画面ではイベントベース、この画面ではpromise、この画面ではコールバックベースとなって、引き継ぎ大変だろ。
一生面倒見れるオープンソースプロジェクトでもあるまいし。
0953デフォルトの名無しさん2016/03/08(火) 20:22:23.10ID:yRHzElyn
>>952
誰も好きなライブラリを使ってOKとか書いてないし、
なんでそういう勘違いするんだ?
0954デフォルトの名無しさん2016/03/08(火) 20:58:41.70ID:V7sn28DS
なんか両方とも同じ事をちょっと言葉変えて言ってるだけに見える
0955デフォルトの名無しさん2016/03/08(火) 23:11:13.01ID:ZAwwBadw
>>954
JavaScriptスレに虚しさを感じたら以下へどうぞ。
http://echo.2ch.net/test/read.cgi/tech/1449440793/

俺はJavaScript本職ではないから、そちらと同様他言語出身としての見方になるが、
引っかかるところは同様の所だろうから。
JavaScriptのスレはどうにもおかしな奴が多すぎる。
(最近は他言語も酷いが)

以下は多分だが、、、
ライブラリが混在して使われているのは、実際に書いた奴はそれを普段使っているから。
だから彼等は問題を感じない。使い慣れている物を使っているだけ。
JavaScriptはその用途から、大規模で長く保守しなければならない事がほとんど無い。
だからきっちり設計することに慣れていてそれ前提でいると話が噛み合わない。
とはいえWebのUIの最前線の言語だから、実際に寿命も短い。
だからかっちり設計して時間をかけたところで意味がない。
さっさと動く物をリリースしていって、駄目なら最初から作り直すと割り切るのも一つの手だ。
この場合は使い慣れているライブラリを自由に使う事になる。おそらくそちらの状況がこれだ。
そちらの感覚に合わせると、sh, awk, perl, ruby の書き捨て数行スクリプト同程度というべきか。

クライアントスクリプトの場合は、「毎回」「常に」「同意無し」で最新版がダウンロードされて使われる。
だからバグっていても差し替えに手間取ることもないし、最悪「リロードしてください」で済む。
サイレントリコールもありありだろう。(というか気づかれない)
ここら辺は他言語の商用アプリとは根本的に違う。だから開発のスタイルも自ずと異なってくる。

先のスレは質問スレではないので、
・これってどうやるの?←少なくとも他言語でそれが出来るようになってから来い
・これってどうなのよ?←ああ、それはなあ、、、、(今回)
ということになる。
そして繰り返すが俺はJavaScript本職ではない。それでよければ。
0956デフォルトの名無しさん2016/03/08(火) 23:52:21.79ID:gX55kFUW
>>954
引用からして一方はいつもの奴だから話半分でいいと思うけどね
あと950踏んだなら次スレよろしく
09579552016/03/09(水) 00:16:05.36ID:1eDcIrNx
>>956
いや君が立てるべきだ。

950は多分このスレには新参だ。
俺は多分1年くらいいるが、それでも君らが何をしたいのか分からない。
少なくとも、訳の分からないテンプレ争いに新人を巻き込むべきではないし、
このスレのテンプレの完全コピーでいいのでなければ新人に頼むべきではない。

少なくともこのスレのテンプレには次ぎスレ指示は入っていないから、950は関知していない。
また、この板には124がまだあるわけだが、それが駄目な理由も950には分からないだろ。
だったら、ここら辺を分かる人が立てるべきだ。
その際に、改訂すべき部分は改訂しておけばいい。
09589562016/03/09(水) 00:56:42.17ID:S0itb4sM
>>957
なるほど言い分はもっともだわ
とはいえ俺も既に滅茶苦茶に乱立していた状況からしか知らんのだが

まず前置きとして、JS質問スレの現状は>>883以降にまとまってると思う
テンプレ改定はそもそもテンプレの中の人がWeb製作板で書き直したものがあるけど
荒らされてついには雑談禁止まで至ったものをここで使うのも適切ではないだろうから
今回は従来のものをそのまま使うので必要なら次スレで改定議論してほしい
0959デフォルトの名無しさん2016/03/09(水) 01:02:43.56ID:S0itb4sM
ほい次

+ JavaScript の質問用スレッド vol.119 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1457452716/
0960デフォルトの名無しさん2016/03/09(水) 12:05:37.15ID:Ul54lJM1
スクリプトでマウスのXButtonの検知をすることは可能でしょうか?
0961デフォルトの名無しさん2016/03/09(水) 15:24:09.24ID:S0itb4sM
左右とホイールクリックならマウスイベントのイベントオブジェクトから可能
他は無理だな
0962デフォルトの名無しさん2016/03/10(木) 13:15:59.90ID:nlYLYIl+
>>961
そうですか
やっぱり無理なんですね
ありがとうございました!
0963デフォルトの名無しさん2016/03/10(木) 14:40:46.11ID:oCKA3bvp
Xボタンって何ですか
0964デフォルトの名無しさん2016/03/10(木) 14:49:50.09ID:cOoRDwdC
右上のボタンじゃなかったっけ?
0965デフォルトの名無しさん2016/03/12(土) 09:28:17.27ID:VuT0YpOP
テキストボックスの内容の変化を監視したいのですがそれに適したイベントや方法はありますか?
Changeやblurは一連の入力が終わってから発生するので目的に合いません
Keydownやkeyupはかなり目的に近いのですがマウスを使った編集に反応しません
0966デフォルトの名無しさん2016/03/12(土) 09:33:23.66ID:MdoZbOS8
>>965
昔いろんなイベントを使って監視して、
変更時に独自のイベントを発生させる
jQueryプラグイン作ったことあるな。
0967デフォルトの名無しさん2016/03/12(土) 09:54:07.62ID:SQSEHhDO
>>965
https://developer.mozilla.org/ja/docs/Web/Events/input
http://caniuse.com/#feat=input-event
0968デフォルトの名無しさん2016/03/12(土) 10:12:59.19ID:lYynFgyi
>>966
そのプラグインのURLを教えてくれないと回答にならないのでは?
IE9のバグはなかなか致命的なので補完できるなら実装した方がいいだろうな
delete bug は keydown で補完できるとして、cut は Clipboard API で補完できるんかね
0969デフォルトの名無しさん2016/03/12(土) 11:13:53.34ID:OwLY3dTs
angular1.5を使っています
$resourceを使ってサーバーとやりとりしユーザーデータを管理しているserviceがあって、このserviceのサーバーとのやり取りに関する関数をcontrollerでボタンのクリック時に起動する関数に囲っています

ここまではわかったのですがservice内のデータが更新されたとき
どうやってcontrollerの$scopeに値を同期させるかを迷っています
今はservice内で$resourceのアクション?のコールバック内でservice内の値を更新し$rootScopeに向けてイベントを発行しcontrollerはそれを聞くたびに$scopeの値を更新しています

これよりもserviceの関数は$resourceのアクションのpromiseを返してcontrollerはそのpromiseを使ってコールバックを書くのかどっちがいいのでしょうか?
promiseはservice内の値を更新してから返します
service内の値は色々なところで使いたいです
こういう場合はどうするのが普通なのでしょうか?

独学でやっていてだんだん混乱してきたので変な質問かもしれません
0970デフォルトの名無しさん2016/03/12(土) 11:22:00.50ID:OwLY3dTs
すみません$rootScopeに向けてイベントというのは間違いで
$rootScopeにブロードキャストさせるです
0971デフォルトの名無しさん2016/03/12(土) 15:07:36.36ID:VuT0YpOP
>>967
ありがとうございます
うまく行きました
0972デフォルトの名無しさん2016/03/13(日) 22:45:12.48ID:csVJMymO
>>969
watchが本筋
0973デフォルトの名無しさん2016/03/14(月) 22:39:52.27ID:lJ6PDaUj
>>972
なるほどwatchですか
確かに値を監視して同期させるという意味にそのままあってそうですね
ありがとうございます

たびたび質問ですみません
Angularについてですcontrollerから呼び出すserviceAの関数が別serviceBが持つ値に依存するとき
serviceAにserviceBを注入して関数内で固定して使うよりも
controller側でserviceAとserviceBを注入してserviceAの関数をserviceBの値を引数として呼び出すほうが
service(モデル?)同士が分離できていて大きくなった時後々苦労が少ないってイメージを書いていて思ったのですが間違ってはいないですか?
0974デフォルトの名無しさん2016/03/15(火) 11:58:09.20ID:je+WaRQn
IE9を切っていい場合はletを使っても問題ないですか?
あと() => {}も使っても問題ないですか?
0975デフォルトの名無しさん2016/03/15(火) 12:31:20.52ID:I/SC09is
ところがどっこい糞safariとIE11(letは使える)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/arrow_functions
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/let
0976デフォルトの名無しさん2016/03/15(火) 12:39:46.45ID:dn4mluAf
>>975
確かに未サポートだけど、MDNではSafariは?になっているような
http://kangax.github.io/compat-table/es6/
http://caniuse.com/#search=let
0977デフォルトの名無しさん2016/03/15(火) 14:10:19.09ID:9TmQQfsX
>>974
babelを使って変換すれば
古いブラウザでも動くよ
0978デフォルトの名無しさん2016/03/15(火) 14:11:47.55ID:9TmQQfsX
IEを切っても〜っていう古いブラウザ対応で苦しいのは
実は古いAndroidスマホ対応だったりするわけだけどねw
0979デフォルトの名無しさん2016/03/15(火) 16:46:31.51ID:klVcIh6V
未だに2.4を使ってるやつもいるしな
0980デフォルトの名無しさん2016/03/15(火) 22:59:08.19ID:23WcffoN
>>973
viewが絡まない限りそこまでしないでいいよ
逆にコントローラーが肥大化する
0981デフォルトの名無しさん2016/03/16(水) 10:32:21.16ID:DWd03YbI
babelとtypescriptどっちがいいのか教えてください
0982デフォルトの名無しさん2016/03/17(木) 10:19:02.14ID:wQ7g2qGB
>>979
2.4ってIE?
0983デフォルトの名無しさん2016/03/17(木) 13:40:53.68ID:aFB20JuL
>>982
流れ的にAmdroid OSのバージョンでは?
0984デフォルトの名無しさん2016/03/17(木) 14:12:54.11ID:LtlKgYTa
>>981
俺はtypeScript押し! playgroundから補完効くの気持ちいい!
0985デフォルトの名無しさん2016/03/17(木) 14:19:39.58ID:KIngzVrZ
2.3.4のタイポかな
生JSで今書いてるならBabelの方が楽だと思う
0986デフォルトの名無しさん2016/03/18(金) 13:26:08.35ID:qgVzYe8h
保守
0987デフォルトの名無しさん2016/03/18(金) 13:45:57.08ID:8ofbdWvy
http://echo.2ch.net/test/read.cgi/tech/1457452716/
0988デフォルトの名無しさん2016/03/18(金) 13:57:19.83ID:FZ8Syrlv
保守というより埋めじゃね
0989デフォルトの名無しさん2016/03/19(土) 13:31:22.84ID:LDQ1EFLl
んじゃ梅 
0990デフォルトの名無しさん2016/03/19(土) 14:01:55.81ID:+cxBRpaX
竹
0991デフォルトの名無しさん2016/03/19(土) 14:21:21.34ID:7WDpnV8l
ガム
0992デフォルトの名無しさん2016/03/19(土) 14:41:44.34ID:MNmjmgAA
jsのできることが増えすぎて、逆に死ぬ。
es2015にimportの定義があるの?
その場合はプラウザで使う場合はどうなるんだろ?ネットワーク経由で持ってきてくれるのか?
0993デフォルトの名無しさん2016/03/19(土) 15:15:43.61ID:+cxBRpaX
そうなるだろうね
0994デフォルトの名無しさん2016/03/19(土) 18:33:02.47ID:3qG5a3Tt
1年ぐらい勉強すれば結構できるようになる?
0995デフォルトの名無しさん2016/03/19(土) 21:59:58.69ID:Zs2nLmW7
どんな素人でも1 projectでものになるだろう
それで間に合わないなら向いてないから転職すべき
0996デフォルトの名無しさん2016/03/20(日) 03:47:04.60ID:MJknwlhg
なお35歳を超えると間に合わなくなってみんなマネージャーになる模様
0997デフォルトの名無しさん2016/03/20(日) 15:32:07.34ID:UabNifz1
うめ
0998デフォルトの名無しさん2016/03/21(月) 09:27:24.45ID:Xz9aFOH3
梅と言えば、病気で全滅しちゃった、青梅の吉野梅郷は復活するんですかね?
梅酒の梅がとても美味しいお土産です。
0999デフォルトの名無しさん2016/03/21(月) 09:41:56.46ID:lwkXzPK7
>>998
それすっげーまずいだろw
お前の舌おかしいんじゃねーの?www
1000デフォルトの名無しさん2016/03/21(月) 09:42:33.24ID:lwkXzPK7
おらおら、なにかいいかえしてみろよーw
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 334日 8時間 7分 25秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。