元スレ+ JavaScript の質問用スレッド vol.113 +
JavaScript覧 / PC版 /みんなの評価 :
56 = :
>>51
>>52
それは違う。たまたまグローバルオブジェクトがwindowなだけ。
未定義の変数を直接参照するとエラーになるけど、
windowオブジェクトのプロパティとして参照するとundefinedが返る。
つまり、hogeが定義されていなければ、
alert(hoge); //エラーになる
alert(window.hoge); //undefinedと表示される
58 = :
関数は全部先頭にかけってことでしょ?
60 = :
>>58
意味がわからん。
そもそも多くの言語で関数はどこに書いてもいいものだよね?
61 = :
>>50 圧縮の時ネームスペースmに勝手にバインドされることで悪影響が出ないことを保証するためのもので、良いものではない
>>51 OK
>>60
good partsはだいぶ古い情報だから今は当てにしなくていい
あれはJSにコーディングスタイルというものが根付いてなかったときに、根付かせようとしたものだから
「道で人に出会ったら挨拶しましょう」みたいなもので、良い悪いの基準が違う
もう一つ言えばブロック文(ifなんか)中の関数宣言の挙動が定義されてなかったというか、
本来ESの仕様では出来ないはずなのに実装では独自に出来るようにして、挙動差があったりもしてた
そういう少しでも怪しい物には触らないようにして、JSをきっちり書いていこうというスタンスがgood parts
因みにその件はES5のstrict modeで一旦禁止され(形だけ)、ES6で『ブロックスコープ内(let)』の『全域(var)』で有効になった、つまり
function func() {} は var func = ~ でも let func = ~ でもなく、その中間の挙動を取る
Chromeはもうその通りの挙動をする、Firefoxは無茶苦茶、他は知らん
62 = :
>>51
>>52
>>61
addEventListnerと書きたい場所で参照されるスコープのどこかでaddEventListnerを定義して無ければOK
addEventListnerが定義されてたらwindow.addEventListenerとかにしないとそっちを参照してしまうからNG
被せて定義してくる方が悪いって大抵は言われると思うし普通は気にしなくてもいいんだけどな
63 = :
今世紀最大のバカwwwwwww
addEventListnerなんかよりwindowの方がよっぽど定義され得るだろww
どうしてそっちは考えないんだよワロスプゲラw
64 = :
JavaScriptにはfromCharCode()という関数がありますが、
文字列をコード配列に変換する関数(逆方向の関数)は無いのでしょうか?
65 = :
>>63
windowは上書き禁止
今世紀最大のバカとか、いきり立つのも程々に
66 = :
>>64
String.prototype.charCodeAt
http://es5.github.io/#x15.5.4.5
67 = :
>>65
windowは上書き禁止だが、スコープチェーンにのせることは出来る
それはそうと気の触れた人にはあまり触らないほうがいい
68 = :
>>66
配列にしたかったら、文字数分ループして、code[]=charCodeAt(i);すれば良いということですか?
69 = :
× code[]=charCodeAt
○ code[]=string.charCodeAt
です、ごめんなさい
71 = :
"abc".split('').map(function(ch) {return ch.charCodeAt()})
"abc".split('').map(ch => ch.charCodeAt())
72 = :
ロジックは合ってるがそんな冗長なコードは書かない。
73 = :
パフォーマンス重視でfor文にしてる
function toStringCodes (string) {
for (var i = 0, l = string.length, array = []; i < l; ++i) {
array.push(string.charCodeAt(i));
}
return array;
}
toStringCodes('abc'); // [97, 98, 99]
75 = :
スリムな方は>>72、パフォーマンス重視は>>73ですね。
>>69,71-74の皆さんありがとうございました!
76 = :
また間違えました、>>68,70-74の皆さんです、ごめんなさい
本当にありがとうございました。
77 = :
>>76
別にいいんだけど、レスアンカーは>>66,70-74が正しいんじゃない?
78 = :
めんどくせーから、>>78さんありがとうございました! でいいだろ。
79 = :
>>78さんありがとうございました!
80 :
var
foo = tonikaku.nagai.namae,
bar = foo.puropati,
nullpo = (function(){ return bar * 10; })(),
gatxu = (function(){ return nullpo * 100; })(),
.....
↑こんな風に変数の宣言を
カンマでどんどん繋げる書き方って問題ですか?
なんか書きやすいので、こうしているのですが・・・。
81 = :
window.onresize = function() {
window.alert("hellow")
}
この構文なんて名前ですか?
window.onresizeはonclick, onmouseover とかのイベントと何か違いますか
82 = :
>>81
構文じゃない
違わない
83 = :
>>80
jQueryとか更にひどいし、
そういうふうにしろって言ってる人もいる。
個人的にはあまり多すぎるとシンタックスエラー出た時に
場所がよくわからなくなるから、数個程度にしたり
複雑なコードは書くなって思うが。
84 = :
var hoge,
hoge2,
hoge3;
こっちのが見やすくないか?
85 = :
var hoge, hoge2, hoge3;
こっちの方がいい。無意味にコードの行数増やすなよ。
スクロールする必要が増えてあっちこっち見なくちゃいけなくなるだろ?
86 = :
>>82 thank
87 = :
>>85
見る人のエディタの横幅にもよる
必ずしも横に長く縦に短くが良いわけでもない
難しいところじゃが
88 = :
>>80 の書き方、
jQueryも使ってるって事は何かメリットあるのかな?
少しだけ処理が速いとか・・・。
そうでもなかったら一行ずつ var いれた方が見やすい気がする。
89 = :
速度は変わらん
こればかりは好みの問題だな
jQuery作者がああ書くのをコーディングルールにしたんだろうさ
90 = :
>>88
1行ずつ var を入れたら行数文だけ VariableStatement が増えるので遅くなる。
理論上は VariableStatement が一つだけの方が処理速度は速い。
91 = :
>>80 の書き方はシンプルでいいと思うけど、カンマ忘れてもエラーにならないのがな…
安全策として先頭にvar入れていった方がいいと思う
初期化がいらない場合は、>>85 を使う
92 = :
セミコロン付け忘れはJSLintでチェックできるので>>80を使う
93 = :
>>91
カンマ忘れたらエラーになったが…。
var hoge,
hoge2
hoge3; // ReferenceError: hoge3 is not defined
94 = :
>>93
var hoge = 1,
hoge2 = 1
hoge3 = 1
こういうことじゃろ
95 = :
>>94
なるほど。
その問題は JSLint や Strcit Mode で回避できるな…。
96 = :
97 = :
>>80
最初に全部代入せずに宣言するのが至高
98 = :
宣言と宣言&代入を混ぜて書いていた時には、どこまでを宣言に含めるか悩んでいたものだけど
至高の宣言に辿り着いてからはそんな悩みなど無縁
使う直前に代入するから分かりやすい
100 = :
textareaだとCSSの属性を揃えてもブラウザ間の見た目が変わるので
contenteditable=trueでtextareaを実現しようと思うのですが
どうやればいいですか?
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [100%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
トップメニューへ / →のくす牧場書庫について