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

みんなの評価 :
502 = :
ちょっとまてお前は何の話しているんだ
画面の大きさのインチと解像度は違うぞ
503 = :
質問です
プログラム初めてでJavaScriptやってるんだけど
セミコロンを付けるとこがいまいちわからない。
入門書見ながら例題をやっているんだけど
セミコロン付け忘れてても動く行もあるし、わけわかめ。
504 = :
全部付けとけばいい
505 = :
セミコロンは命令文の終了を表します
alert(1);
これはアラートで1を出力する命令文を終了させるためセミコロンを付けました
if (1 == 1) {
alert(1);
}
これはifは言語構造なので命令文ではありません
ですので真ん中に登場する命令文alert(1)にセミコロンを付けてあげます
506 = :
>>503
504の言うとおり、基本は全部つける。
間違ったらエラーで怒られるから、その都度覚えていけばいい。
507 = :
付けなくても文末だってわかるところは自動で補ってくれるから基本は必要ない
508 = :
いい加減なこと言うな
509 = :
JavaScriptがいい加減な言語だから仕方がない
付けても付けなくても同じなら付けないのがベストなのは言うまでもないだろう
510 = :
コンマで区切れるところはセミコロンじゃなくコンマを使う
511 = :
付ける付けないは個人の自由だけど、付けないのがベストになる理由が分からない
書き手とインタプリタがまったく同じ理解をするとは限らないし。なおさら初心者だったらreturnの問題もある。
512 = :
変数宣言をコンマで並べるやつとは仲良くなれない
513 = :
>>509
最近は圧縮したりする場合もある。
その場合;無かったら不具合の原因になるんだから;は付けたほうが良い。
514 = :
改行消さなくてもセミコロン省略は不具合に原因になりうる
515 = :
>>509
セミコロンがどのような規則で自動挿入されるのかは言語仕様で
厳密に定められている。いい加減なのはあんたの知識だ。
516 = :
質問です。
window.open()で作成したページを保存できるようにすることってできませんか?
他の方法でもいいんですが、JSで整形したページ内のデータをHTMLなどにして保存したい場合、
どのようにするのが一般的な方法なんでしょうか?
517 = :
javascriptの言語仕様信用するとかsliceの引数の取り方とかみてたら無理だわ。
518 = :
>>512
え?全部 var 付けて並べてんのw
519 = :
流石にそこはマンコ使えよ
520 = :
512ではないけど、基本的にはvar付けるよ。
var hoge;
var huga = [], hugaIndex = 0;
521 = :
まあ好みの問題だな。
varを一本化する人は巻き上げのこともあって、先頭で全部宣言するタイプじゃないかな。
522 = :
>>520
いや、>>512 は↓の様にすると言ってる。
var hoge;
var huga = [];
var hugaIndex = 0;
523 = :
var付けるとあちこちで呼び出せないから不便だろ
そもそもvarなんていらん
a = 1;
function a(){
console.log(a);
b =2;
}
a();
function b(){
b *= 100;
}
b();
console.log(b);
こういうふうにどこでも変数にアクセスできるように書くのが楽
524 = :
>>523
セミコロン付けないのがベストと言ってるのと同じくらい酷い。
526 = :
コンマ演算子は今の話題と関係ないから。
527 = :
俺配列宣言は必ずvar h = new Array();ってやってるな
そっちの方が見やすい
528 = :
529 :
>>527
しかし、それは速度面でほんの、ほんーの少しだけ遅いんじゃなかったっけ。
531 = :
動的に配列を作成するときに気を付けないとエラーが出ることがあるらしいよ
javascriptパターンの受け売りだけどw
532 = :
配列を空っぽにするときもarray = [];の方がいいのか?
533 = :
空っぽにするって新たに空の配列を生成するってこと?それなら[]が広く使われてるよ。
534 = :
開いて一度実行したら二度と使わない関数と変数をnullで上書きしたらページが軽くなります亜k?
535 = :
>>534
その程度じゃ何も変わらないし、GCに任せればいい。昔は例外も多かったけれど。
536 = :
jqueryで
var img = $("<img>").attr("src",src)
としても読み込まれないんだけどなぜですか?
537 = :
>>533
その配列に上書きするから、その配列を一度空にしてまた入れる時
var a = [];
a[0]=1;
a[1]=2;
a[2]=3;
ってやって要素を一度全部削除して
a[0]=11;
a[1]=22;
alert(a[2]);ってやったら 見つかりません みたいな
538 = :
>>532
var a = [1,2,3,4];
a.length = 0;
これがベストだと思うよ
539 = :
>>537
その場合は"普通は"同じ配列を使いまわすから、a.length=0でクリアするのが正しい。
最初の意図と違ってるけどね。
540 = :
varも;も基本付けた方がいいみたいな決まりはない
効果と見やすさをケースバイケースで考えて使うか決めるべき
542 = :
>>538>>539
なるほど、そういう時に使うのか
質問宣言してないけどめっちゃ勉強になった
543 = :
>>542
ここでそういうレス見つけたらメモ帳にでもレスごと保存しておくのをオススメする
544 = :
AudioBufferとかでかい配列のときに
a.length=0;みたいにやると
予約枠が取りっぱなしにされて
メモリの断片化が起こる場合があるので注意
a=[];だと100%GCが片付けてくれる
546 = :
>>544-545
確認だけど、(a.length=0)と(a=[])は全く別のものだよ。
ケースバイケースではなくて、両者はまったく別のケース。
まあ、単純に新しい配列を用意したいってことならどちらか選べばいいけど。
547 = :
×全くの別のもの
○厳密には違うもの
◎実質同じもの
548 = :
いやぜんぜん違うだろ
549 = :
同じ配列を使いまわすのと新しい配列を用意するのは別だと思うよ。
546が言うように空にしたいだけなら大差はないけど、一般的にはやはり別もの。



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.98 + (1001) - [97%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2012/1/1 4:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [97%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.114 + (1001) - [95%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.142 + (984) - [95%] - 2020/8/27 19:15
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.142 + (926) - [95%] - 2019/12/23 13:15
トップメニューへ / →のくす牧場書庫について