JS演算子「|」と「||」の使い方と機能の紹介

高洛峰
リリース: 2016-11-02 15:19:04
オリジナル
1724 人が閲覧しました

JS 開発アプリケーションでは通常「|」と「||」が使用されますが、操作では「|」と「||」は何を意味しますか?

jsの整数演算では、parseIntの小数点を削除することに相当します。正の数の場合は Math.floor() と同等、負の数の場合は Math.ceil() と同等 注:

1 は切り上げに使用されます。
2. Math.floor() は切り捨てに使用されます。
3. Math.round() 丸めは数学でよく使用されます。

console.log(0.6|0)//0
console.log(1.1|0)//1
console.log(3.65555|0)//3
console.log(5.99999|0)//5
console.log(-7.777|0)//-7

単一の垂直バーの演算ルール

上記の例を読むと、単一の垂直バーは丸め演算、つまり正の部分のみに使用できることが一般的にわかります。は保持され、小数部分は渡されます。それを削除します。しかし、「|0」はどのように演算を実行するのでしょうか?なぜ「|0」は丸めの目的を達成できるのでしょうか?横棒と縦棒が 0 でない場合、それは何でしょうか?

これらの質問を踏まえて、次の例を見てみましょう:

console.log(3|4); //7
console.log(4|4);//4
console.log(8|3); / /11
console.log(5.3|4.1);//5
console.log(9|3455);//3455


ここには単一の縦棒「|」が記載されていますが、JavaScript はありません。

それでは、ここで答えを発表しましょう。実際、単一の縦棒「|」はバイナリに変換された後の加算の結果です。たとえば、簡単な例を見てみましょう:

3|4
がバイナリに変換された後、011|100が追加され、111=7

4|4
が取得されます。バイナリに変換された後、100|100が追加されます。 get 100=4

8|3
バイナリに変換した後、1000 |011 を追加して 1011=11 を取得します

など、ここでは 1 つずつ列挙しません。バイナリに変換して加算した結果!

JS 二重縦棒演算子

1. JS 二重縦棒演算子: はいまたは比較。たとえば、null||'1' は '2' を返し、'2' を返します。つまり、OR 演算子では、最初の演算子は true であり、後続の演算子は計算する必要がないため、「2」が得られます。

2. js で二重縦棒演算子「||」を使用して、最初の有効な値を返します

var objOne = unknown || new Date();最初のオペランドが false の場合、2 番目のオペランドは考慮されず、直接 false が返されます。 || の最初のオペランドが true の場合、2 番目のオペランドは考慮されず、直接 true が返されます。 & および | 演算子の場合はそうではありません。結果を得るために常に 2 つのオペランドを比較する必要があるため、&& および || のパフォーマンスは向上します。

関数の使い方

&&と||は論理演算しか実行できませんが、&と|は「論理演算」だけでなくビット演算も実行できます

&と|は、もともとビット演算子です。 JS は型のない言語であり、それぞれのデータ型を自由に変換できるため、「論理演算」が実行できます。実際には、& と | を使用して「論理演算」を実行すると、true は 1 に変換され、false は 0 に変換されます。次に、ビット単位の演算を実行します:

document.write(true & false); //JS、結果は 0 です

上記の文、例は、次のビット演算に変換されて実行される論理演算と同等です。

document.write(1 & 0); //JS、結果は 0 です

最初の点で説明したのは、まさに & と | がビット単位の演算子であるため、常に比較する必要があります。これには 2 つのオペランドが必要です結果を取得するため、&& や || よりもパフォーマンスが低下します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート