JS演算子「|」と「||」の使い方と機能を詳しく解説

高洛峰
リリース: 2016-12-07 15:43:39
オリジナル
1854 人が閲覧しました

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は次のようになります。 100=4

8|3

を取得するために追加されます。バイナリに変換した後、1000 |011 を追加して 1011=11

を取得します。ここでは 1 つずつ列挙しません。 |" 操作はバイナリに変換した後です。結果を追加してください。

JS 二重縦棒演算子

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

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


概要

パフォーマンスの比較

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

関数の使い方

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

&と|は、もともとビット演算子です。 JS は型のない言語なので、& や | を使って「論理演算」を行うと、実際には true は 1、false は 0 に変換されます。

var objOne = undefined || 1 || null || new Date();
var objTwo = new Date();
var objThree = objOne || objTwo;
alert(objThree.toString()); //out put "1"
ログイン後にコピー

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

document.write(true & false); //JS,结果为0
ログイン後にコピー

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


上記は、JS 演算子の単一の縦棒「|」と「||」の使用法と機能の詳細な説明です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。

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