JavaScript逻辑运算符与赋值运算符

作者 : 开心源码 本文共3934个字,预计阅读时间需要10分钟 发布时间: 2022-05-14 共138人阅读

逻辑运算符

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逻辑运算符与赋值运算符

发表回复