JavaScript逻辑运算符与赋值运算符
逻辑运算符
JavaScript中有三个逻辑运算符,&&与、||或者、!非。
JavaScript 中的逻辑运算符可用来确定变量或者者是值之间的逻辑关系。通常用于布尔型值,会返回一个布尔值true 或者 false。而 &&、|| 运算符能够使用非布尔值的操作数,此时会返回一个非布尔型值。
1. 逻辑与 &&
js中逻辑与和其余语言不太一样,假如第一个操作数是true(或者者能够转为true),计算结果就是第二个操作数,假如第一个操作数是false,结果就是false(短路计算),对于少量特殊数值不遵循以上规则.
<script type="text/javascript">var a = [1,2,3];var b = "hello";var obj = new Object();var d;console.log(true && 10);//10console.log(false && b);//flaseconsole.log(100 && false);//flaseconsole.log(undefined && false);//undefinedconsole.log(NaN && false);//NaNconsole.log(null && false);//nullconsole.log('' && false);//空串console.log(0 && 100);//0console.log(5 && 100);//100console.log(a && b);//helloconsole.log(obj && 200);//200</script>
2. 逻辑或者 ||
假如第一个操作数不是false,结果就是第一个操作数,否则结果是第二个操作数。假如第一个操作数能够转为true,结果就是第一个操作数。
<script type="text/javascript">var a = [1,2,3];var b = "hello";var obj = new Object();var d;console.log(true || 10);//trueconsole.log(false || b);//bconsole.log(100 || false);//100console.log(undefined || 9);//9console.log(NaN || false);//第一个操作数是NaN转false,结果第二个操作数console.log(null || a);//aconsole.log('' || false);//第一个操作数是空串转false,结果第二操作数console.log(0 || 100);//100console.log(5 || 100);//5console.log(a || b);//aconsole.log(obj || 200);//obj</script>
3. 逻辑非 !
首先把数据转化为布尔值,而后取反,结果为true或者false。
<script type="text/javascript">var a = [1,2,3];var b = "hello";var obj = new Object();var d;console.log(!"");console.log(!d);console.log(!a);console.log(!b);console.log(!obj);</script>
赋值运算符
基本的赋值运算符是等号(=),该运算符把它右边的运算值赋给左边。即,x = y 把 y 的值赋给 x。 其余的赋值运算符通常是标准运算符的简写形式。
1. 赋值
简单的赋值运算符,把一个值赋给一个变量。为了把一个值赋给多个变量,可以以链式使用赋值运算符。
语法:
Operator: x = y
例:
// Assuming the following variables// x = 5// y = 10// z = 25x = y // x is 10x = y = z // x, y and z are all 25
2. 加赋值
加赋值运算符把一个右值与一个变量相加,而后把相加的结果赋给该变量。两个操作数的类型决定了加赋值运算符的行为。
语法:
Operator: x += yMeaning: x = x + y
例:
// 定义下列变量// foo = 'foo'// bar = 5// baz = true// Number + Number -> additionbar += 2 // 7// Boolean + Number -> additionbaz += 1 // 2// Boolean + Boolean -> additionbaz += false // 1// Number + String -> concatenationbar += 'foo' // "5foo"// String + Boolean -> concatenationfoo += false // "foofalse"// String + String -> concatenationfoo += 'bar' // "foobar"
3. 减赋值
减赋值运算符使一个变量减去右值,而后把结果赋给该变量。
语法:
Operator: x -= yMeaning: x = x - y
例:
// 假定已定义了下面的变量// bar = 5bar -= 2 // 3bar -= "foo" // NaN
4. 乘赋值
乘赋值运算符使一个变量乘以右值,而后把相成的结果赋给该变量。
语法:
Operator: x *= yMeaning: x = x * y
例:
// 假定已定义了下面的变量// bar = 5bar *= 2 // 10bar *= 'foo' // NaN
5. 除赋值
除赋值运算符使一个变量除以右值,而后把结果赋给该变量。
语法:
Operator: x /= yMeaning: x = x / y
例:
// 假定已定义了下面的变量// bar = 5bar /= 2 // 2.5bar /= "foo" // NaNbar /= 0 // Infinity
6. 模赋值
模赋值运算符使一个变量除以右值,而后把余数赋给该变量。
语法:
Operator: x %= yMeaning: x = x % y
例:
// Assuming the following variable// bar = 5bar %= 2 // 1bar %= 'foo' // NaNbar %= 0 // NaN
7. 指数赋值
指数赋值运算符使一个变量为底数、以右值为指数的指数运算(乘方)结果赋给该变量。
语法:
Operator: x **= yMeaning: x = x ** y
例:
// Assuming the following variable// bar = 5bar **= 2 // 25bar **= 'foo' // NaN
8. 左移赋值
左移赋值运算符使变量向左移动指定位数的比特位,而后把结果赋给该变量。
语法:
Operator: x <<= yMeaning: x = x << y
例:
var bar = 5; // (00000000000000000000000000000101)bar <<= 2; // 20 (00000000000000000000000000010100)
9. 右移赋值
右移赋值运算符使变量向右移指定位数的比特位,而后把结果赋给该变量。
语法:
Operator: x >>= yMeaning: x = x >> y
例:
var bar = 5; // (00000000000000000000000000000101)bar >>= 2; // 1 (00000000000000000000000000000001)var bar = -5; // (-00000000000000000000000000000101)bar >>= 2; // -2 (-00000000000000000000000000000010)
10. 无符号右移赋值
无符号右移赋值运算符向右移动指定数量的比特位,而后把结果赋给变量。
语法:
Operator: x >>>= yMeaning: x = x >>> y
例:
var bar = 5; // (00000000000000000000000000000101)bar >>>= 2; // 1 (00000000000000000000000000000001)var bar = -5; // (-00000000000000000000000000000101)bar >>>= 2; // 1073741822 (00111111111111111111111111111110)
11. 按位与赋值
按位与赋值运算符使用两个操作值的二进制表示,执行按位与运算,并把结果赋给变量。
语法:
Operator: x &= yMeaning: x = x & y
例:
var bar = 5;// 5: 00000000000000000000000000000101// 2: 00000000000000000000000000000010bar &= 2; // 0
12. 按位异或者赋值
按位异或者赋值运算符使用两个操作值的二进制表示,执行二进制异或者运算,并把结果赋给变量。
语法:
Operator: x ^= yMeaning: x = x ^ y
例:
var bar = 5;bar ^= 2; // 7// 5: 00000000000000000000000000000101// 2: 00000000000000000000000000000010// -----------------------------------// 7: 00000000000000000000000000000111
13. 按位或者赋值
按位或者赋值运算符使用两个操作值的二进制表示,执行按位或者运算,并把结果赋给变量。
语法:
Operator: x |= yMeaning: x = x | y
例:
var bar = 5;bar |= 2; // 7// 5: 00000000000000000000000000000101// 2: 00000000000000000000000000000010// -----------------------------------// 7: 00000000000000000000000000000111
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » JavaScript逻辑运算符与赋值运算符