(function () { // code })();
var a = 1 (function () { // Uncaught TypeError: 1 is not a function })()
または:
void function () { // code }();
!function () { // code }();
どちらを選択するかは個人の好みによって異なります。js には、standardjs 標準と呼ばれる標準があり、行末のセミコロンを省略することを推奨しています (私はこの習慣に慣れていません)。変えられること。
2. 空のオブジェクト null
型が与えられており、これまで、そして今後も変更されることはないと言えます。 null はオブジェクトとしての基本的な特性を持たず、元の
データ型 に属します。私が説明したいのは、変数がオブジェクトであるかどうかを判断する前に、まず null であるかどうかを判断する必要があるということです。 ;(function(){
//code
})()
例: 0.1+0.2 は 0.3 に等しいですか? 答えは次のとおりです: 0.1+0.2=0.30000000000000004
同様に: 0.4-0.3=0.1000000000000003
そのような計算が存在する場合は、10 進数を 0.3 に変換します。まず
文字列を使用します。 toFixed to go 小数点以下の桁数を比較します: if (opt!== null && typeof opt=== 'object') {
// opt是一个对象
}
(0.1 + 0.2).toFixed(2) === '0.30'
4. NaN を常に覚えておいてください
変数が NaN であるかどうかを判断する必要がある場合は、変数自体と比較してください。等しくない場合は、それは NaN です。
数値が NaN かどうかを判断するには、isNaN() メソッドを使用できます。ただし、変数の具体的なデータ型がわからない場合は、この方法を安易に判定しないでください。isNaN には、まず判定対象の変数を数値に変換して計算してしまうという奇妙な特性があるからです。
Math.abs(0.1+0.2 - 0.3) <= 1e-10 // true
それでは、今度はあなたの判定結果に驚きをもたらすでしょう。
もう 1 つの注意点は、opt===NaN など、変数を NaN と決して比較しないことです。
5. Null と unknown を比較するだけでなく、非厳密な == and! も決して使用しないでください。 =
を実行するためです (見つけにくいバグが発生します)。 まず見てください:
isNaN('abc') // true isNaN('123') // false isNaN('') // false isNaN([]) // false isNaN({}) // true
上記の判断に疑問がある場合は、次のルールを覚えてください:
'true' == true // => false 'true' == false // => false [] == {} // => false [] == [] // => false
つまり、x が null か未定義かを判断するには == を使用し、それ以外の場合は決して使用しないでください。
6. 使用には注意してください || デフォルト値を設定する
それでは、まず true に変換できない値を見てみましょう?
1.未定義2.null
3.NaN
4.整数0
5.空の文字列「 」
所以如果当用户传给arg1的参数是0或者为空字符串“”的时候,那么最终的值就会取默认的(||后面)值是不是?好,问题来了。如果用户传给后台的查询关键字data(上面代码)是空字符串“”,那么就应该按照空字符串“”去后台数据库查询,而结果传给后台的却是“你好”,显然查询结果也就不对。
好,回到主题,实际上只有undefined才应该被认为是用户没有指定其具体值,我曾看过有人这样理解(null
表示 用户让你给他把这个位置空着
;而 undefined
表示 用户没发表意见
)
so :
page = page !== undefined ? page : 0; data = data !== undefined ? data :'你好';
只需判断undefined即可。
个人理解如果有需求,可以把null加进去判断。
以上が日常の JavaScript コードで注意すべき 6 つのことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。