1. 단항 연산자
1. 삭제 연산자: 이전에 정의된 개체 속성 또는 메서드에 대한 참조를 삭제합니다. 예:
var o=new Object; o.name="superman"; alert(o.name); //输出 "superman" delete o.name; alert(o.name); //输出 "undefined"
는 name 속성을 제거하고 정의되지 않음(즉, 생성된 초기화되지 않은 변수의 값)으로 설정합니다. delete는 개발자가 정의하지 않은(즉, ECMAScript에서 정의한) 속성과 메서드를 삭제할 수 없습니다.
예를 들어 다음 코드는 오류를 발생시킵니다. delete o.toString();
2. void 연산자: 모든 값에 대해 정의되지 않은 값을 반환합니다. 이 연산자는 일반적으로 출력되어서는 안되는 값이 출력되는 것을 방지하기 위해 사용됩니다.
예: HTML 페이지에서 675eda870be2316d492275bfd24cd4c7나를 클릭하세요5db79b134e9f6b82c0b36e0489ee08ed
링크를 클릭하면 웹페이지의 링크가 사라지고 "[ object]가 표시됩니다." (IE와 Firefox에서는 "[object Window]"가 표시되고, Google에서는 링크가 그대로 유지됩니다.) window.open() 메서드는 새로 열린 창에 대한 참조를 반환하기 때문입니다. 그런 다음 개체는 표시할 문자열로 변환됩니다. 이 결과를 방지하려면 void 연산자를 사용하여 window.open() 함수를 호출할 수 있습니다.
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
이렇게 하면 window.open() 호출이 정의되지 않은 값을 반환하게 됩니다. 이는 유효한 값이 아니며 브라우저 창.
3. 사전 증가/사전 감소 연산자: C와 사용법이 동일합니다. 연산은 표현식이 평가되기 전에 발생합니다. 예: ++i --i;
4. 후위 증가/후위 감소 연산자: 후위 연산자는 이를 포함하는 표현식을 계산한 후 증가 또는 감소 연산을 수행합니다. 예: i++;
5. 단항 덧셈과 단항 뺄셈
단항 덧셈은 본질적으로 숫자에 영향을 주지 않습니다: var iNum=25; Alert(iNum); //출력 25
단항 덧셈 연산자는 문자열을 계산할 때 작동합니다. parsInt()와 유사한 방식으로 문자열을 계산합니다. 주요 차이점은 "0x"(16진수 표시)로 시작하는 문자열의 경우 단항 연산자가 이를 10진수 값으로 변환할 수 있다는 것입니다. 따라서 단항 덧셈을 사용하여 "010"을 변환하면 항상 10이 되고 "0xB"는 11로 변환됩니다.
var sNum="25"; Alert(typeof sNum); //"문자열" 출력
var iNum=+sNum; //"숫자" 출력
1위안 빼기 및 1위안 더하기 연산자와 유사하게 단항 빼기 연산자도 문자열을 대략적인 숫자로 변환하고 값을 부정합니다.
var sNum = "25"; // "문자열" 출력
var iNum = -sNum; // "-25" 출력
alert(typeof iNum); number"
2. 비트 연산자: 이진수와 관련된 일련의 연산자
비트 연산자 NOT은 부정 기호(~)로 표시됩니다.
비트 연산자 AND는 앰퍼샌드 기호(&)로 표시됩니다.
비트 연산자 OR은 기호(|)로 표시됩니다.
비트 연산자 XOR은 기호(^)로 표시됩니다.
왼쪽 시프트 연산은 두 개의 작은 기호(1c9e33b972372fc50f3ac9c03dd55481>)로 표시됩니다.
부호 없는 오른쪽 시프트는 세 개의 보다 큰 기호(>>>)로 표시됩니다.
3. 부울 연산자
부울 연산자에는 NOT, AND 및 OR의 세 가지 유형이 있습니다.
1. 논리 NOT은 느낌표(!)로 표시됩니다. 이 연산자는 일반적으로 루프를 제어하는 데 사용됩니다. 논리 OR 및 논리 AND 연산자와 달리 논리 NOT 연산자는 부울 값을 반환해야 합니다. 논리 NOT 연산자는 다음과 같이 동작합니다.
피연산자가 객체이면 false를 반환합니다.
피연산자가 숫자 0이면 true를 반환합니다.
피연산자가 0이 아닌 숫자이면 false를 반환합니다.
피연산자가 null이면 true를 반환합니다.
피연산자가 NaN이면 true를 반환합니다.
피연산자가 정의되지 않은 경우 오류가 발생합니다.
예: var b = true;
while(!b){… }
2. 이중 앰퍼샌드(&&)로 표현되는 논리 AND 연산자. 결과가 true인 경우는 단 하나뿐입니다. true && true = true
논리적 AND 연산의 피연산자는 부울 값뿐만 아니라 모든 유형이 될 수 있습니다. 피연산자가 기본 부울 값이 아닌 경우 논리 AND 연산이 반드시 부울 값을 반환할 필요는 없습니다.
피연산자 중 하나가 객체이고 다른 피연산자가 부울 값이면 객체가 반환됩니다.
두 피연산자가 모두 객체이면 두 번째 객체를 반환합니다.
피연산자가 null이면 null을 반환합니다.
피연산자가 NaN이면 NaN을 반환합니다.
피연산자가 정의되지 않은 경우 오류가 발생합니다.
첫 번째 피연산자가 거짓이면 두 번째 피연산자의 값이 무엇이든 결과는 참이 될 수 없습니다.
3. 이중 수직 막대(||)로 표시되는 논리 OR 연산자. 결과가 false인 경우는 단 하나뿐입니다. false || false=false; 다른 경우는 true입니다.
논리 AND 연산자와 유사하게 피연산자가 부울 값이 아닌 경우 논리적 OR 연산은 반드시 부울 값을 반환하지 않습니다.
피연산자 중 하나가 객체이고 다른 피연산자가 부울 값이면 객체가 반환됩니다.
두 피연산자가 모두 객체이면 첫 번째 객체를 반환합니다.
피연산자가 null이면 null을 반환합니다.
피연산자가 NaN이면 NaN을 반환합니다.
피연산자가 정의되지 않은 경우 오류가 발생합니다.
논리 OR도 간단한 연산입니다. 논리 OR 연산자의 경우 첫 번째 피연산자 값이 true이면 두 번째 피연산자는 계산되지 않습니다.
4. 곱셈 연산자
1. 별표(*)로 표시되는 곱셈 연산자는 두 숫자를 곱하는 데 사용됩니다. 그러나 특수 값을 처리할 때 ECMAScript의 곱셈에는 몇 가지 특별한 동작이 있습니다.
피연산자가 모두 숫자인 경우 일반 곱셈 연산이 수행되며 결과가 너무 크거나 너무 작으면 생성된 결과는 Infinity 또는 -Infinity입니다.
피연산자가 NaN이면 결과는 NaN입니다.
무한대에 0을 곱하면 결과는 NaN입니다.
무한대 0이 아닌 숫자를 곱하면 결과는 두 번째 피연산자의 부호에 따라 결정되는 무한대 또는 -무한대가 됩니다.
2. 슬래시(/)로 표시되는 나누기 연산자는 첫 번째 숫자를 두 번째 숫자로 나눕니다. 특수 값의 경우 특수 동작은 다음과 같습니다.
피연산자가 모두 숫자인 경우 일반 트리거 작업이 수행됩니다. 결과가 너무 크거나 너무 작으면 생성된 결과는 Infinity 또는 -Infinity입니다.
피연산자가 NaN이면 결과는 NaN입니다.
0은 무한대가 아닌 숫자를 나누면 결과는 NaN입니다.
무한대는 0이 아닌 임의의 숫자로 나누어지며 결과는 두 번째 피연산자의 부호에 따라 결정되는 무한대 또는 -무한대입니다.
3. 백분율 기호(%)로 표현되는 모듈로 연산자. 피연산자가 둘 다 숫자인 경우 일반 산술 나눗셈을 수행하고 나머지를 반환합니다. 특수 동작:
배당이 무한대이거나 제수가 0인 경우 결과는 NaN입니다.
제수가 무한수이면 결과는 배당입니다.
배당금이 0이면 결과는 0입니다.
5. 덧셈 연산자
1. 덧셈 연산자(+), 특수 동작:
피연산자가 NaN이면 결과는 NaN입니다.
Infinity plus -Infinity, 결과는 NaN입니다.
피연산자가 문자열이면 다음 규칙이 적용됩니다.
두 피연산자가 모두 문자열이면 두 번째 문자열을 첫 번째 문자열에 연결합니다.
하나의 피연산자만 문자열인 경우 다른 피연산자를 문자열로 변환하면 결과는 두 문자열을 연결한 문자열이 됩니다.
2. 뺄셈 연산자(-), 두 피연산자가 모두 숫자이면 산술 뺄셈이 수행됩니다. 특수 규칙:
피연산자가 NaN이면 결과는 NaN입니다.
피연산자는 숫자가 아니며 결과는 NaN입니다.
六、关系运算符
关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。每个关系运算符都返回一个Boolean值。
对于字符串,第一个字符串中每个字符的代码都会与第二个字符串中对应位置上的字符的代码进行数值比较。
1、大写字母的代码都小于小写字母的代码,所以要得到按照真正的字母顺序比较结果,必须把两个运算数转换成相同的大小写形式,再进行比较。
2、在比较两个字符串形式的数字时,比较的是它们的字符代码。
3、比较一个字符串和数字,ECMAScript都会把字符串转换为数字,然后按照数字顺序比较它们。如果字符串不能转换成数字,那么返回NaN,任何包含NaN的关系运算都要返回false。因此,这样会返回false。
七、等性运算符
1、等号(==) 和非等号(!=),为确定两个运算数是否相等,这两个运算符都会进行类型转换。执行类型转换的基本规则如下:
如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。False转换成0,true转换成1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查等性之前,要尝试把对象转换成字符串(调用toString()方法)。
如果一个运算数是对象,另一个是数字,在检查等性之前,要尝试把对象转换成数字。
在进行比较时,该运算符还遵守下列规则:
值null和undefined相等。
在检查相等性时,不能把null和undefined转换成其他值。
如果某个运算数是NaN,等号将返回false,非等号将返回true。即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。
如果两个运算数都是对象,那么比较的是他们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。
2、全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是他们在检查相等性前,不执行类型转换。
全等号由三个等号(===)表示,只有在无需类型转换运算数就相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum==iNum); //输出 "true" alert(sNum===iNum); //输出 "false"
非全等号由两个感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回true。
var sNum="55"; var iNum=55; alert(sNum != iNum); //输出 "false" alert(sNum !== iNum); //输出 "true"
八、其他运算符
1、条件运算符,即三元运算符 : variable = boolean_expression ? true_value : false_value;
2、赋值运算符(=) 复合赋值运算符:+=、-=、*=、/=、%=、c1416f47236dd7b5b9b6ea098534dc8d>=、>>>=
3、逗号运算符 用逗号运算符可以在一条语句中执行多个运算。 如: var iNum1=1,iNum2=2;
위 내용은 JavaScript의 8가지 연산자 유형 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!