http://www.javascriptlint.com/online_lint.php
の構文チェックをしてみたら 全部同じtrueの所が赤字でした。
初心者で良く分からないのですが、動作はできているようです。
何の注意なのでしょうか? (true)で囲めって意味でしょうか?
if(getId("abc").checked==true){
str = str.replace(/AA|BB/gi, "");
}
========================^
lint warning: comparisons against null, 0, true, false, or an empty string allowing implicit type conversion (use === or !==)
No.3ベストアンサー
- 回答日時:
#1です。
比較するときは、「型」をそろえましょう!ということ。
数値型と文字列型を比較したらまずい
if( 1=="1" ) alert("no");
if( ''+1 =="1" ) alert("ok");
同じように、true/falseを返すのはboolean型。
===や!==は、型を含め厳密に比較します。
なので、普段からそういう癖をつけなさいよ!って意味でとらえたら?
自分も含めてですが、ここの回答者でも、使わない人が多いよ!
俺はたまに使うけどね^^;
それから、比較するときは、
var a = "babu";
if( a === "babu" )としないで
if( "babu" === a ) という書き方を心がけています。
もしタイプミスで
if( "babu" = a ) なんてときがあると、文字列に値は代入できないのでミスを発見できる。
というか、過去にも#2様には、「型」でお世話になっているので、納得できるまで
説明があるかもしれません!(と、ふってみる)
詳しい説明ありがとうございました。
でも初心者すぎて、どうすれば良いのかまったくわかりませんでしたww
もう少し勉強してみます <(_ _)>
No.4
- 回答日時:
>if(getId("abc").checked==true){
javascriptは良く言えば柔軟、悪く言えばいい加減な言語なので
そう目くじらをたてて===を使うこともないでしょう。
if(getId("abc").checked){ ・・・ }
でもいいんじゃない?
No.2
- 回答日時:
言っていることは#1と同じ
===============
ECMAScriptは型に厳密な言語でないです。
ところで、暗黙の型変換、って話があるんです。(コメントも含めて読んでみてね)
http://d.hatena.ne.jp/gallu/20061108/p1
http://www.tokumaru.org/d/20090924.html
http://vb.mvps.org/articles/pt199511.pdf
異なる型で比較するな、型を揃えろ、と。
同じことがECMAScriptにも言えて、
23 <= "023" はどういう比較が行われるんだ?という話がついてまわります。
(いくつかの言語ではこのLintと同じように揃えないとコンパイルエラーになったりします)
さて、おそらくcheckedはbooleanしか返さないのでまぁ、この場合問題はないといえば、ない。
ただ、Lintは、
http://takagi-hiromitsu.jp/diary/20051227.html#p02
>たしかにこれは脆弱性ではない。プログラムの全体を精査すれば、「$row['id']」の値が数値しかとらないことを確認できるだろうし、「$row['postdate']」の値が日付を表す文字列しかとらず、HTTPリクエストの値(CGI入力)に依存していない式だとということも確認できるのだろう。
だが、そのような確認作業をしないと正しいコードかどうかわからないような、プログラムの書き方をすべきでない
って考えで動いて、普段からそういう習慣をつけて書くようにしなさい、と言っています。
#htmlspecialchar嫌いだけどね、俺は。俺はDOM派
============
あんま今回の話には関係ないけど
VB.NETのOption Strict On,Option Explicit On, Option Compare Binary,Option Infer Offあたりなんか調べてみると面白かったりするし、
http://www.ipa.go.jp/security/vuln/websecurity.h …
これの改訂第4版の「根本解決」なんか読んだりするといいかもね
この回答への補足
紹介サイトを拝見しましたが、
初心者すぎて理解できませんでした _/ ̄|○
>if( 1 === true ); else alert("4:実行されなかった");
("4:実行されなかった")って事は ===falseかな?と思いましたが
==true を === true とだけ変更し確認しましたら正常に動作しました。
構文チェックも問題ありませんでした。
しかし、これが正しいのかわかりませんが、
if(getId("abc").checked===true){
これで良いのでしょうか?↑=が3個。 混乱しています。教えてください。
No.1
- 回答日時:
if( 1 ) alert("1:実行される");
if( true ) alert("2:実行される");
if( 1 == true ) alert("3:実行される");
if( 1 === true ); else alert("4:実行されなかった");
この回答への補足
初心者すぎてすみませんが、正解を教えてください。
>if( 1 === true ); else alert("4:実行されなかった");
("4:実行されなかった")って事は ===falseかな?と思いましたが
==true を === true とだけ変更し確認しましたら正常に動作しました。
構文チェックも問題ありませんでした。
しかし、これが正しいのかわかりませんが、
if(getId("abc").checked===true){
これで良いのでしょうか? 混乱しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Java java 引数 戻り値のあるメソッド 3 2023/02/12 06:23
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
if(1){...}とはどういうことで...
-
デザイン時のVisible=Falseは実...
-
JSPの処理の途中で、JavaScript...
-
jQuery ui Datepicker 明日以降...
-
innerHTMLなどの反映タイミング
-
C#でボタン名を変更しても動く
-
〔Excel:VBA〕マクロの実行が異...
-
PowerPointで時計表示
-
初心者です。gulpでコンパイル...
-
ラベルの色がかわってくれない
-
Excelのマクロ一括実行ができな...
-
VBの実行シーケンスについて
-
VBA ステータスバー DoEvents
-
resizeToメソッドが動作しません
-
1つのVBAコードをすべてのコア...
-
再帰呼び出しになってしまうの...
-
共通の値をもつ座標の組み合わ...
-
リクエスト結果が一瞬しか表示...
-
既存のwebサイトで、ローカルの...
-
計算結果が毎回違う。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
以下のコードを実行しても、オ...
-
JSPの処理の途中で、JavaScript...
-
if(1){...}とはどういうことで...
-
1つのVBAコードをすべてのコア...
-
VBA ステータスバー DoEvents
-
〔Excel:VBA〕マクロの実行が異...
-
jQuery ui Datepicker 明日以降...
-
デザイン時のVisible=Falseは実...
-
VBA SORT Applyでエラー
-
リクエスト結果が一瞬しか表示...
-
C#でボタン名を変更しても動く
-
PowerPointで時計表示
-
innerHTMLなどの反映タイミング
-
javascriptで最初のところに戻...
-
初心者です。gulpでコンパイル...
-
onbeforeunload と aタグの hre...
-
ラベルの色がかわってくれない
-
エクセル VBA タイマー動作 の...
-
JavaScriptで、実行するたび値...
-
Excel VBA にて JavaScript の...
おすすめ情報