のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,686,504人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.109 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
201 : Name_Not - 2013/09/24(火) 00:33:53.38 ID:9UbBiTed (+30,+29,-23)
>>197
でもさ、これからはletを使って、ブロックレベルのスコープやるでしょ?
その時どうやって元に戻すの?
202 : Name_Not - 2013/09/24(火) 00:39:39.20 ID:??? (+3,-30,-241)
ES7で入りそうなもの

・ES6の補強(ES6に間に合わなかったもの)
・数値型系の大拡張(8xbit、巨大数、十進数、分数、複素数、その他SIMD系など)
・演算子の拡張(モジュロなどの追加)
・DOMからの逆輸入(PromiseやWorker)
・型情報付加(guard)
・部分マルチスレッド処理(Parallels)
・メタプロ大拡張(演算子オーバーロード、ValueProxy)
・遅延評価、遅延コール

それ以降か、無しになりそう

その他注目的な動向
・DOMがJS標準になる?
・typeof再設計の試み再び(typeofを設定可能に?、typeof null = "null")
203 : Name_Not - 2013/09/24(火) 00:39:43.17 ID:??? (+76,+24,-4)
元に戻すとは?
204 : Name_Not - 2013/09/24(火) 00:40:22.89 ID:??? (+67,+29,+0)
>>200
心が醜いね
宣伝じゃないよ
205 : Name_Not - 2013/09/24(火) 00:45:21.07 ID:??? (+70,+29,-19)
おれ馬鹿だからわからないけどこれ>>193でprototype汚染が解決されるの?
206 : Name_Not - 2013/09/24(火) 00:47:55.79 ID:??? (-2,-30,-57)
good partsには、paerseIntが載っていて、parsefloatが載っていない
のは何故なのでしょうか?何か意味があるのでしょうか?
207 : Name_Not - 2013/09/24(火) 00:48:41.96 ID:??? (+82,+29,-68)
一言で言えば「解消される」だが、いろいろ言いたいことがあるな。
まず汚染というのがfor-in等での列挙の事であれば、それを使わなければいいし、そういう風潮になってきたこと。
それから>>193はそういう機能があることの説明ではなく、もっと踏み込んだものであること。
208 : Name_Not - 2013/09/24(火) 00:49:27.14 ID:??? (+51,+28,+0)
綺麗に汚染できる
209 : Name_Not - 2013/09/24(火) 00:49:43.92 ID:??? (+4,-29,-20)
え、paerseIntはとうぜんbad partsとして載ってるんだよね?
210 : Name_Not - 2013/09/24(火) 00:51:24.63 ID:??? (+26,-1,-3)
forinとかwithみたいな嫌われた構文を使わなければ汚染なんて関係ないこと
211 : Name_Not - 2013/09/24(火) 00:52:25.47 ID:??? (+102,+29,-7)
>>203
要するにvarじゃなくてletを使えって言ってるんだよ。
そうすれば上に持ってこなくて済むじゃん。
212 : Name_Not - 2013/09/24(火) 00:54:58.52 ID:??? (+9,-30,-36)
paerseIntはCSSの~pxみたいなときのパースでしか使うことはない
今はinput要素には.valueの他に.valueAsNumberがあるのでそちらを使うべき
勿論n = +strもとてもいい
213 : Name_Not - 2013/09/24(火) 00:55:46.16 ID:??? (+71,+29,-7)
>>211
その話は色んな奴がこの前したがダメなんだとよ
214 : Name_Not - 2013/09/24(火) 01:05:42.68 ID:??? (+56,+19,-35)
Object.prototypeがライブラリ同士でバッティングしててもこれからは忍者のように隠れてわからなくなるってこと?
215 : Name_Not - 2013/09/24(火) 01:06:49.51 ID:??? (-1,-29,-27)
javasriptは次から次へ似たようなAPI出てきてカオスすぎるわ
216 : Name_Not - 2013/09/24(火) 01:07:11.89 ID:??? (+73,+29,-31)
letって今普通に使えるんですか?
MDN見たらまた不確定機能みたいに書かれてますが。
しかも
let で宣言された変数はそれを取り囲んでいるブロックの先頭へ引き上げられます。
ってletも巻き上げられるんじゃ?
217 : Name_Not - 2013/09/24(火) 01:13:58.93 ID:??? (+17,-26,-44)
>>214
列挙されないってだけだよ
上書きを防止することもできるけど

>>216
それは旧仕様
具体的にはFirefoxが昔から導入してた
ES6の元になったJS1.なんちゃらではそう

実際のES6やChromeの実装では巻き上がらない
218 : Name_Not - 2013/09/24(火) 01:17:07.82 ID:??? (+57,+29,-29)
だからMDNの情報は古いことがあるから鵜呑みにするなって前言ったろ。
とは言ってもES6に関してはESwikiは勿論、
ドラフトもところどころ、なんと1年も反映が遅れてる部分もあるから注意。
219 : Name_Not - 2013/09/24(火) 01:21:03.60 ID:??? (+57,+29,-18)
ES6にletがあっても今現在のコーディングが変わるわけでもないし
だから何としか言いようがないですね
220 : Name_Not - 2013/09/24(火) 01:22:07.42 ID:??? (+57,+29,-11)
ES6に関してはこういう微妙なところも追っておかないと将来絶対アレ!?ってなるな
http://esdiscuss.org/topic/removal-of-noin-grammar-productions-and-for-loop-parsing
221 : Name_Not - 2013/09/24(火) 01:28:40.87 ID:??? (+7,-30,-135)
>>209
はい。ひどいパーツで載ってました。

>>212
自分は、<div id="a1">199</div>
の199を$("#a1").html()で取得すると文字列になっているので、
文字列199を整数の199にするためにparseIntを使ってました。
.valueAsNumberってどのブラウザでも動くのでしょうか?
ieはどのバージョンから対応してますか?
222 : Name_Not - 2013/09/24(火) 01:35:33.66 ID:??? (+4,-30,-15)
223 : Name_Not - 2013/09/24(火) 01:36:50.97 ID:??? (+49,+21,-71)
HTML5ベーシックの一部だから
HTML5対応をちょっとでも謳うんなら実装してないとおかしい
224 : Name_Not - 2013/09/24(火) 01:44:28.86 ID:??? (+3,-30,-53)
>>222
ありがとうございます。
10ですか、私のwebサイトではie8まではサポートしてるので
とりあえず、paerseIntを使っときます。
parseFloatってgood partsに載ってないのは、紙面に限りがある
とかですかね? 
225 : Name_Not - 2013/09/24(火) 01:46:58.48 ID:??? (+96,+29,-109)
クロックフォードスタイルがletによって変わるかは疑問がありますね
宣言しなければ自動的にローカル変数になる言語になったならともかく
宣言が必要ならば、ブロックの最初でするのがベストなのでは?
最初に宣言しておけば、それ以降は宣言したかどうかを気にする必要がないので。
varでもそうですが、多重宣言にならないように気を付けるのは面倒なものです
226 : Name_Not - 2013/09/24(火) 01:55:47.07 ID:??? (+57,+29,-19)
letの多重宣言はコンパイルタイムエラーだから発見が容易だし
varの多重宣言はと言うのはズレてる、スタイルに関連する問題ではない
227 : Name_Not - 2013/09/24(火) 02:23:28.32 ID:??? (+57,+29,-26)
ズレてるのは自分では・・
言葉の意味は分かりますが文章全体としては何を言いいたいのか全く分かりませんよ
228 : Name_Not - 2013/09/24(火) 02:25:18.02 ID:??? (+70,+29,-18)
>>225
それは歴史が証明している。

他の言語でブロックの最初で定義する人は
もうほとんどいない。
229 : Name_Not - 2013/09/24(火) 02:28:32.28 ID:??? (+57,+29,-22)
何が言いたいのか分からんのはそっちだよ
でも最大限推測してあげて色んなケースを考えてみたけど
varの重複を気をつける必要があるシチュが思いつかない
230 : Name_Not - 2013/09/24(火) 02:45:53.22 ID:??? (+63,+30,-52)
変数名の重複を気にしなければならないほど巨大な関数をつくろうとしているのが問題なのでは。
普通に書いてればそんなこと起こらないでしょ。
そもそも似たような名前の変数を同じ関数内で宣言しなければならないという状況自体、
同じような処理を何度もやろうとしてるとかしか思いつかないんだけど。
231 : Name_Not - 2013/09/24(火) 02:47:18.95 ID:??? (+47,+19,-3)
変数名の重複ではなく宣言の重複の話です。
232 : Name_Not - 2013/09/24(火) 02:56:13.09 ID:??? (+36,-30,-55)
宣言を重複させる例

function foo() {
  for(var i = 0; i < 10; i++) {
    ・・・
  }
  for(var i = 0; i < 10; i++) {
    ・・・
  }
}

これよりも、こう書くがいいでしょう?

function foo() {
  var i;
  for(i = 0; i < 10; i++) {
    ・・・
  }
  for(i = 0; i < 10; i++) {
    ・・・
  }
}

理由はvarを上にまとめたほうがいいという言ってる人が説明してね。
233 : Name_Not - 2013/09/24(火) 03:08:42.77 ID:??? (-1,-29,-18)
それこそletを使えば良いじゃん
なぜわざわざvarで重複させたり、
iが必要ないforの外でまでiを参照できるようにしとく必要があるの?
234 : Name_Not - 2013/09/24(火) 03:14:22.82 ID:??? (+57,+29,-1)
どっちがいいかという話でletは関係ないお
235 : Name_Not - 2013/09/24(火) 04:13:04.40 ID:??? (-1,-29,-17)
letのサポートSafari×、IE10以上って結構ザックリいくんだな
236 : Name_Not - 2013/09/24(火) 04:21:03.29 ID:??? (-1,-29,-21)
そういう時に使うのがES6からES5に変換してくれる
コンパイラだよ。
http://github.com/google/traceur-compiler
237 : Name_Not - 2013/09/24(火) 04:25:37.12 ID:??? (-1,-29,-17)
デモもあったけどURLが長いんで、
traceur-compiler online で検索してくれ

右上のoptionsに全部チェック入れると
letもアロー関数も対応してるのがわかる。
238 : Name_Not - 2013/09/24(火) 04:29:55.78 ID:??? (+57,+29,-10)
あ、googleで提示されたURLが長いだけだったw
ここから試せる。
http://traceur-compiler.googlecode.com/git/demo/repl.html
239 : Name_Not - 2013/09/24(火) 04:57:26.03 ID:??? (+34,-14,+0)
>>193
よく見たらコンステレーションって人、escodegenの作者なんですね
240 : Name_Not - 2013/09/24(火) 05:07:57.28 ID:??? (+62,+29,-8)
>>232
これは非常に気持ち悪く感じる…感性の問題かもしれんけど
241 : Name_Not - 2013/09/24(火) 06:42:06.81 ID:??? (+57,+29,-21)
他の言語では大抵重複宣言はエラーになるから、
意識する様に習慣付いてるという理由で JavaScript でも
それに従う、という程度かな。
242 : Name_Not - 2013/09/24(火) 09:07:20.86 ID:??? (+89,+29,-18)
他の言語のやり方に従うというであれば、
使う所で宣言する習慣にしたがえよw
243 : Name_Not - 2013/09/24(火) 09:51:44.35 ID:??? (+3,-30,-179)
sには10進数の文字列が入っていてほしいんですが、sにはいろんな型が入っているかもしれません
parseInt(s, 10)でint型に変換してint型で利用したいんですが
いい方法教えてください

parseInt("0x0a", 10)と parseInt(0x0a, 10) は 0 と 10 になるのでNG。元が16進数なので省きたい
parseInt("true", 10) やparseInt(true, 10) は NaN になるから省けるのでOK
244 : Name_Not - 2013/09/24(火) 10:58:15.06 ID:??? (-6,-29,-2)
+'0x0a' //10
245 : Name_Not - 2013/09/24(火) 11:09:51.12 ID:??? (+52,+24,-25)
16進数を10進数に直したいのではないんです
とにかく第一引数が10進数の整数・文字列じゃないときは全部NGにしたいんですよ
246 : Name_Not - 2013/09/24(火) 11:15:29.89 ID:??? (+2,-30,-11)
if(typeof s == "symbol" || !(""+s).match(/^\d+$/)) throw "10進数値だけよ";
247 : Name_Not - 2013/09/24(火) 11:34:13.72 ID:??? (-1,-29,-9)
>>246

0x0a // 10
"0110" // "0110"
0110 // 72
10.0 // 10
248 : Name_Not - 2013/09/24(火) 11:56:27.87 ID:??? (-1,-29,-13)
/\d*\.?\d*/ とか?
1.0e6みたいな表現にも対応するのは面倒だな。
249 : Name_Not - 2013/09/24(火) 12:00:54.56 ID:??? (-1,-29,-11)
if(!Number.isFinite(+s)) throw "じゃあの"
250 : Name_Not - 2013/09/24(火) 12:22:29.14 ID:??? (-2,-30,-28)
これでFA
if (parseFloat(s,10) != +s) throw "んじゃの"
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について