JavaScript中有哪些强大的运算符

技术JavaScript中有哪些强大的运算符小编给大家分享一下JavaScript中有哪些强大的运算符,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、??空值合并运算符如果你第一次遇到它,看到的是两个

边肖将和大家分享一些JavaScript中强大的操作符。希望大家看完这篇文章后有所收获。我们一起讨论一下吧!

00-1010如果是第一次遇到,会看到两个问号。估计你脑子里的问号会更多(你的问号多吗~ ~ ~)?

两个问号?它被称为空值组合运算符。如果第一个参数不是null/undefined,则返回第一个参数;否则,它将返回第二个参数。

console.log(1?www . shanzhzonglei.com ');//1

console.log(false?www . shanzhzonglei.com ');//false

console.log(null?www . shanzhzonglei.com ');//www . shanzzhsonglei.com

console.log(未定义?www . shanzhzonglei.com ');//////www . shanzzhsonglei.com因此,只有当第一个参数为null/undefined时,才会返回第二个参数。

请注意,尽管未定义,JS中的空对象null、数值0、空数字NaN、布尔值false和空字符串“”都是false值,非null运算符只处理null/undefined。

与逻辑或运算符(||)不同,当左操作数为假时,逻辑或运算符返回右操作数。例如,当它是假值('或0)时。

console . log(1 | | 2);//1

console . log(“| | 2”);//2

一、??空值合并运算符

哦,现在不仅有两个问号,还有一个等号。问题是不是越来越难了?

?=null赋值运算符,仅当值为null或未定义时才赋值。

const student={ age :20 };

学生年龄?=18;

console.log(学生.年龄);//20

学生姓名?=' shanguaguagua ';

console . log(student . name);///《山瓜瓜》它和上面的一样吗?空值组合运算符相关:x?=y相当于x?(x=y),只有当x为null或未定义时,才会执行x=y。

letx=null

x?=20;

console . log(x);//20

lety=5;

你呢。=10;

console . log(y);//5

二、??=空赋值运算符

可选连锁运营商?允许读取位于连接对象链深处的属性值,而无需显式验证链中的每个引用是否有效。运算符隐式检查对象的属性是null还是undefined,这使得代码更加优雅简洁。

const obj={ 0

名为:‘山呱呱’,

foo:{

bar:{

baz:18,

fun:()={},

},

},

学校:{

学生[

{

(=NationalBureauofStandards)国家标准局

p;     name: "shanguagua",
      },
    ],
  },
  say() {
    return "www.shanzhonglei.com";
  },
};
console.log(obj?.foo?.bar?.baz); // 18
console.log(obj?.school?.students?.[0]["name"]); // shanguagua
console.log(obj?.say?.()); // www.shanzhonglei.com

四、?:三元运算符

它也叫三目运算符。额,这个就很常用了。

对于条件表达式b ? x : y,先计算条件 b,然后进行判断。如果 b 的值为 true,计算 x 的值,运算结果为 x 的值;否则,计算 y 的值,运算结果为 y 的值。

console.log(false ? 1 : 2); // 2
console.log(true ? 1 : 2); // 1

五、逻辑与(&&)和逻辑或(||)

先来复习一下吧:

逻辑与(&&):当第一个操作数为 true 时,将不会判断第二个操作数,因为无论第二个操作数为何,最后的运算结果一定是 true。

实际开发中,利用设个特性,可实现如下操作:

1、如果某个值为 true,则运行某个 function

function say() {
  console.log("www.shanzhonglei.com");
}
let type = true;
type && say(); // www.shanzhonglei.com

2、判断某个值

// 如果age大于10并且小于20才会执行
if (age > 10 && age < 20) {
  console.log(age);
}

逻辑或(||): 当第一个操作数为 false 时(也就是 js 的假值),将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是 false。

实际开发中,利用设个特性,可实现如下操作:

1、给某个变量设置初始值

let student = {
  name: "shanguagua",
};
console.log(student.age || "www.shanzhonglei.com"); // www.shanzhonglei.com

2、判断某个值

// 如果age等于10或者等于20或者等于30都执行
if (age === 10 || age === 20 || age === 30) {
  console.log(age);
}

六、位运算符 & 和 |

位运算符是按位进行运算,&(与)、|(或),使用位运算符时会抛弃小数位,我们可以利用|0来给数字取整。也可以使用&1来判断奇偶数。

实际开发中,利用设个特性,可实现如下操作:

1、取整

1.3 |
  (0 - // 打印出 1
    1.9) |
  0; // 打印出 -1

2、判断奇偶数

let num = 5;
!!(num & 1); // true
!!(num % 2); // true

七、双位运算符 ~~

可以使用双位操作符来替代正数的 Math.floor( ),替代负数的 Math.ceil( )。

双否定位操作符的优势在于它执行相同的操作运行速度更快,对正数来说~~运算结果与 Math.floor( ) 运算结果相同,而对于负数来说与 Math.ceil( ) 的运算结果相同。

Math.floor(5.2) === 5; // true
~~3.2 === 3; // true
Math.ceil(-6.6) === -6; // true
~~-4.5 === -6; // true

七、逻辑运算符 !

!,可将变量转换成 boolean 类型,null、undefined 和空字符串''取反都为 true,其余都为 false。一般来说会有好几种用法,!,!!,!=,!==。

7.1 利用!取反

let cat = false;
console.log(!cat); // true

7.2 利用!!做类型判断

判断变量 a 不等于 null,undefined 和''才能执行的方法。

var a;
if (a != null && typeof a != undefined && a != "") {
  //a有内容才执行的代码
}

等价于:

if (!!a) {
  //a有内容才执行的代码...
}

7.3 两个值是否相等

一般来说都是用的全不等于!==,因为使用不等于!=的话,0 != ""返回的是 false,原因是 JS 中 0 和''转化成布尔型都为 false,所以推荐还是使用全不等于!==。

let a = 0;
let b = 0;
let c = "0";
let d = '';
a != b       //false
a != c      // false    number和string的0 被判断为相等
a != d      // false    0和空字符串被判断为相等
a !== b    // false
a !== c   // true
a !== d   // true

看完了这篇文章,相信你对“JavaScript中有哪些强大的运算符”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/88241.html

(0)

相关推荐

  • 如何使用MySQL字符集

    技术如何使用MySQL字符集本篇内容介绍了“如何使用MySQL字符集”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近迁

    攻略 2021年10月22日
  • 抖音如何刷粉丝,抖音刷粉丝有靠谱平台吗

    技术抖音如何刷粉丝,抖音刷粉丝有靠谱平台吗抖音怎么涨粉丝比较快,抖音怎么做才会涨粉丝,学着点!抖音是一款深受大众喜欢的短视频app,虽然已经出现几年了,但是有很多用户的粉丝还是没有多少个。抖音刷粉平台有吗?这个肯定有的,

    测评 2021年10月21日
  • 关于C++的坑有哪些

    技术关于C++的坑有哪些这篇文章主要讲解了“关于C++的坑有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“关于C++的坑有哪些”吧!1. string的字符串拼接,导

    攻略 2021年10月25日
  • vscodepython翻译插件(vscode中好用的中文翻译插件)

    技术如何开发一个vscode百度翻译插件本篇文章给大家分享的是有关如何开发一个vscode百度翻译插件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。每次给元

    攻略 2021年12月13日
  • VSCode的使用技巧有哪些

    技术VSCode的使用技巧有哪些本篇内容主要讲解“VSCode的使用技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VSCode的使用技巧有哪些”吧!1. 查看日志步

    攻略 2021年10月27日
  • 如何理解MyBaitis的源码

    技术如何理解MyBaitis的源码如何理解MyBaitis的源码,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Mybatis 架构怎么看源码下载源码 (

    攻略 2021年10月21日