1、操作符有哪些?
2、什么是一元操作符?
3、在应用于不同值时,递增和递减应该遵循什么规则?
4、如何使用加和减操作符?
5、如何使用布尔值操作符?
6、如何使用乘法操作符?
7、如何使用加法操作符?
8、如何使用关系操作符?
9、相等和不相等可以做什么?
10、如何使用条件操作符?
11、如何理解赋值操作符?
12、逗号操作符可以做什么?
1、操作符有哪些?
用于操作数据值的操作符,有算术操作符(如加号和减号)、位操作符、关系操作符、相等操作符。
ECMAScript操作符适用于很多值,如: 字符串、数字值、布尔值甚至对象。
2、什么是一元操作符?
只能操作一个值的操作符叫做一元操作符,这是最简单的操作符。
a: 递增和递减操作符,有前置型,位于操作的变量之前,有后置型,位于操作变量之后,在使用前置递增符给一个数值加1时,要把两个加好(++)放在这个数值变量前面。如下:
var age = 29;
++age;
这个例子前置递增操作符把age的值变成了30(为29加上1),实际上与下面的效果相同。
var age = 29;
age = age + 1;
执行前置递减操作的方法也类似,结果会从一个数值中减去1,把操作符减号(--)放在相应变量前面,如下
var age = 29;
--age;
这样,age变量的值就减少为28(从29中减去了1)3、在应用于不同值时,递增和递减应该遵循什么规则?
a: 在应用有效数字字符时,先将其转换为数字值,再执行减1的操作,字符串变量变成数值变量。
b: 在应用不包含有效数字字符串时,将变量的值设置为NaN,字符串变量变成数值变量。
c: 在应用布尔值为false时,先转换为0再执行加减1的操作,字符串变量变成数值变量。
d: 在应用布尔值为true时,先转换为1再执行加减1的操作,字符串变量变成数值变量。
e: 在应用于浮点数值时,执行加减1的操作。
f: 在应用于对象时,先调用对象的valueOf()方法,以取得可供操作的值,然后对该值应用前述规则,如果结果是NaN,则调用toString()方法后再应用前述规则;对象变量变成数值变量。
以下实例展示上面的规则:
var s1 = "2";
var s2 = "z";
var b = false;
var f = 1.1;
var o = {
valueOf: function() {
return - 1;
}
};
s1++; //值变成数值2
s2++; //值变成NaN
b++; //值变成数值0
f--; //值变成1.1
o--; //-1
4、什么是加和减操作符?
一元加操作符以加好表示,放在数值前面,如下:
var num = 25;
num = +num;
在对非一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。
布尔值false、true将转换为0、1
对象先是调用它们的valueOf()或toString()方法,再转换得到的值。
下例展示应用一元加操作符的结果:
var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = {
valueOf: function(){
return -1;
}
};
s1 = +s1; //值变成数值1
s2 = +s2; //值变成数值1.1
s3 = +s3; //值变成NaN
b = +b; //值变成数值0
f = +f; //值变成1.1
o = +o; //值变成-1
一元减操作符主要用于表示负数,例如将1转换成-1。如下:
var num = 25;
num = -num; //值变成了 -25
var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var o = {
valueOf: function(){
return -1;
}
};
s1 = -s1; //值变成数值-1
s2 = -s2; //值变成数值-1.1
s3 = -s3; //值变成NaN
b = -b; //值变成数值0
f = -f; //值变成-1.1
o = -o; //值变成1
跳过位操作符
5、什么是布尔值操作符?
布尔操作符有三个:非(!false)、与(&&)、或(||)。
A、逻辑非操作符由一个叹号(!)表示,逻辑非操作符首先会将它的操作数转换为布尔值,然后再求反。
逻辑非规则如下:
a: 操作数是对象,返回false;
b: 操作数是空字符串,返回true;
c: 操作数是非空字符串,返回false;
d: 操作数是数值0,返回true;
e: 操作数是任意非0数值(包含Infinity),返回false;
f: 操作数是null,返回true;
g: 操作数是NaN,返回true;
i: 操作数是undefined,返回true;
实例:
alert(!false); //true
alert(!"blue"); //false
alert(!0); //true
alert(!NaN); //true
alert(!""); //true
alert(!123456); //false
B、逻辑与操作属于短路挫折,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值,对逻辑与操作来说,如果第一个操作数是false,则无论第二个操作数是什么值,结果都不再可能是true了。
逻辑与操作符由两个和号(&&)表示,有两个操作数:如下
var result = true && false;
逻辑与的真值表如下:
第一个操作数 第二个操作数 结果
true true true
true false false
false true false
false false false
逻辑与规则如下:
a:第一个操作数是对象,则返回第二个操作数
b:第二个操作数是对象,则只有在第一个操作数的求值结果为true时才返回该对象
c:两个操作数都是对象,则返回第二个操作数
d:有一个操作数是null,则返回null
e:有一个操作数是NaN,则返回NaN
f:有一个操作数是undefined,则返回undefined
如下:
var found = true; // 如果将found设置为false;就不会报错了
var result = (found && someUndefinedVariable); // 报错
alert(result); //不会执行
C、逻辑或操作符由两个竖线符号(||)表示,如果第一个操作数的求值结果为true,就不会对第二个操作数求值了
逻辑或有两个操作数,如下:
var result = true || false;
逻辑或的真值表如下:
第一个操作数 第二个操作数 结果
true true true
true false true
false true true
false false false
逻辑或规则如下:
a: 第一个操作数是对象,则返回第一个操作数
b: 第一个操作数的求值结果为false,则返回第二个操作数;
c: 两个操作数都是对象,则返回null
d: 两个操作数是NaN, 则返回NaN;
e: 两个操作数是undefined,则返回undefined
f: 两个操作数都是对象,则返回第一个操作数
实例:
var found = true; //如果改为false,则报错
var result = (found || someUndefindVariable); //不会发生错误
alert(result);
6、如何使用乘法操作符?
乘法操作符由一个星号(*)表示,用于计算两个数值的乘积,用于计算两个数值的乘积;如下:
var result = 34 * 56;
7、如何使用加法操作符?
加法和减法操作符是最简单的算术操作符,加性操作符会在后台转换不同的数据类型;如下:
var result = 1 + 2;
var result = 2 -1;
8、如何使用关系操作符?
小于(<)、大于(>)、小于等于(<=)和大于等于(>=) 这几个关系操作符用于对两个值进行比较
var result1 = 5 > 3; //true
var result2 = 5 < 3; //false
9、相等和不相等可以做什么?
能确定两个变量是否相等,可以比较字符串、数值、布尔值、对象等,需要先转换再比较。
转换规则如下:
a: 布尔值 false转换为0, true转换为1
b: 一个字符串、一个数值,先将字符串转换为数值
c: 一个对象,另一个不是,则调用对象的valueOf()方法,用得到的基本类型值比较
d: null和undefined是相等的、比较相等性之前,不能转换为其他任何值
e: 如果都是NaN,则相等返回false,不等返回true,两个都是NaN,相等操作符也返回false,NaN不等于NaN
f: 如果都是对象,则比较是否是同一个对象
特殊情况比较结果如下表:
表达式 值
null == undefined true
"NaN" == NaN false
5 == NaN false
NaN == NaN false
NaN != NaN true
false == 0 true
true == 1 true
true == 2 false
undefined == 0 false
null == 0 false
"5" == 5 true
全等和全不等
var result1 = ("55" == 55); //true 因为转换后相等
var result2 = ("55" === 55); //false,因为不同数据类型不相等
var result1 = ("55" != 55); //false 因为转换后相等
var result2 = ("55" !== 55); //true,因为不同数据类型不相等
10、条件操作符如何使用?
boolean_expression 是求值结果,决定给变量variable赋什么值,如果求值结果为true,则给变量variable赋true_value,如果为false,则给变量variable赋false_value值
语法:variable = boolean_expression ? true_value : false_value;
实例:var max = (num1 > num2) ? num1 : num2;
11、赋值操作符如何理解?
简单的赋值操作符由等于号(=) 表示,其作用是把右侧的值赋给左边的变量:如下
var num = 10l;
如果在等于号(=)前面再添加乘、加或位操作符,就可以完成复合赋值操作;
常规表达式:
var num = 10;
num = num + 10;
复合赋值表达式:
var num = 10;
num += 10
12、逗号操作符可以做什么?
可以在一条语句中执行多个操作,多用于声明多个变量,也可以用于赋值
如下:
var num1 = 1, num2 = 2, num3 = 3;
var num = (5,2,4,5,6,0); //这是由于0是表达式中的最后一项,因此num的值为0
提问式学习你将会更优秀!!GOGO加油!!
鼓励自己养成良好的学习习惯,坚持不定时更新。