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

  • 时间:2021-03-20 21:00 作者:前端萧萧 来源: 阅读:520
  • 扫一扫,手机访问
摘要:逻辑运算符JavaScript中有三个逻辑运算符,&&与、||或者、!非。JavaScript 中的逻辑运算符可用来确定变量或者者是值之间的逻辑关系。通常用于布尔型值,会返回一个布尔值true 或者 false。而 &&、|| 运算符能够使用非布尔值的操作数,此时会返回一个非布尔型值。1. 逻辑与 &&j

逻辑运算符

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
  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部