iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解JavaScript中常用操作符的使用
  • 804
分享到

详解JavaScript中常用操作符的使用

JavaScript操作符使用JavaScript操作符 2023-05-17 05:05:52 804人浏览 八月长安
摘要

目录1、可选链操作符(optional chaining operator)2、空值合并操作符(nullish coalescing operator)3、箭头函数(Arrow Fu

javascript 中,有一些操作符可以使代码更简洁、易读和高效。以下是一些常见的操作符:

1、可选链操作符(optional chaining operator)

?.可选链操作符(optional chaining operator)?. 可选链操作符用于访问可能为空或未定义的属性或方法,它允许我们安全地访问嵌套对象的属性,如果中间的属性为空或未定义,则不会抛出错误,而是返回 undefined。例如:

const obj = {
  foo: {
    bar: 123
  }
};

// 普通访问属性的方式
const x = obj.foo.bar; // x = 123

// 使用可选链操作符
const y = obj?.foo?.bar; // y = 123

// 如果对象未定义,则返回 undefined
const z = undefined?.foo?.bar; // z = undefined

2、空值合并操作符(nullish coalescing operator)

??空值合并操作符(nullish coalescing operator)?? 空值合并操作符用于检查一个变量是否为 null 或 undefined,如果是,则返回一个默认值,否则返回该变量的值。与传统的逻辑运算符 || 不同,?? 只会在左侧的值为 null 或 undefined 时返回右侧的默认值,对于其他假值(如空字符串、0、false 等)并不会返回默认值,而是会返回它本身。例如:

const x = undefined ?? 'default'; // x = 'default'

const y = null ?? 'default'; // y = 'default'

const z = 'value' ?? 'default'; // z = 'value'

const a = '' ?? 'default'; // a = ''

const b = '' || 'default'; // b = 'default'

需要注意的是,?? 操作符需要在 ES11 及以上的版本才能使用。

3、箭头函数(Arrow Function)

使用箭头(=>)可以更简洁地定义函数。例如:

const add = (a, b) => a + b;
console.log(add(1, 2)); // 3
const obj = {
  x: 1,
  add(y) {
    return this.x + y;
  },
  double: () => this.x * 2,
};
console.log(obj.add(2)); // 3
console.log(obj.double()); // NaN

注意,箭头函数中的 this 指向的是定义时的上下文,而不是调用时的上下文。

4、模板字面量(Template Literals)

使用反引号(`)可以定义包含变量、表达式和换行符的字符串。例如:

const name = "Alice";
const age = 20;
console.log(`My name is ${name}, and I am ${age} years old.`);
// 'My name is Alice, and I am 20 years old.'

5、展开操作符(Spread Operator)

使用三个点(...)可以将数组或对象展开为一个列表或多个参数。例如:

const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr3); // [1, 2, 3, 4, 5, 6]

const obj1 = { x: 1, y: 2 };
const obj2 = { z: 3 };
const obj3 = { ...obj1, ...obj2 };
console.log(obj3); // { x: 1, y: 2, z: 3 }

6、短路求值(Short-circuit Evaluation)

使用逻辑运算符&&||可以进行短路求值,简化条件分支的写法。例如:

const obj = { prop: "value" };
const propValue = obj.prop || "default";
console.log(propValue); // 'value'

const arr = [];
const firstValue = arr[0] && arr[0].prop;
console.log(firstValue); // undefined

7、简写的条件语句(Conditional (Ternary) Operator)

使用问号和冒号(?:)可以简化 if-else 语句的写法。例如:

const age = 20;
const message = age >= 18 ? "You are an adult" : "You are not an adult";
console.log(message); // 'You are an adult'

8、简写的自增和自减操作符(Short-circuit Evaluation)

使用双加号(++)和双减号(--)可以简化变量的自增和自减操作。例如:

let count = 0;
count++;
console.log(count); // 1

let num = 5;
const result = --num;
console.log(result); // 4

9、简写的赋值操作符(Assignment Operator)

使用加等号(+=)、减等号(-=)、乘等号(*=)、除等号(/=)等可以简化复合赋值操作。例如:

let count = 0;
count += 1;
console.log(count); // 1

let num = 5;
num *= 2;
console.log(num); // 10

10、双重否定运算符(Double NOT Operator)

双重否定运算符(Double NOT Operator)即为两个连续的叹号("!!"),也称为逻辑非非运算符。它可以将一个值转换为其对应的布尔值。例如:

const x = "hello";
console.log(!!x); // true

const y = 0;
console.log(!!y); // false

需要注意的是,使用!!运算符进行布尔值转换时,要注意避免隐式类型转换带来的副作用(具体内容参考文末补充内容),以免导致意外的行为。

11、?: 在 TypeScript 中表示可选属性

在 TypeScript 中,可以使用 ? 表示一个属性是可选的。例如:

interface Person {
  name: string;
  age?: number;
}

const person1: Person = { name: "Alice" };
const person2: Person = { name: "Bob", age: 20 };

在上面的例子中,Person 接口有一个可选属性 age,这意味着可以创建一个 Person 类型的对象,其中 age 属性是可选的。

补充

JavaScript 隐式类型转换有哪些副作用

在 JavaScript 中,隐式类型转换指的是在运行时自动将一个数据类型转换为另一个数据类型。虽然 JavaScript 中的隐式类型转换有时可以使代码更简洁,但也会带来一些副作用,包括:

1.难以预测的结果:由于 JavaScript 在隐式类型转换时会自动进行一些操作,因此在代码中进行类型转换时可能会产生意外的结果。例如:

console.log(1 + "2"); // '12'
console.log(true + true); // 2
console.log("10" - 5); // 5

在上述例子中,JavaScript 自动将数字 1 转换为字符串类型,将布尔值 true 转换为数字类型,并将字符串 '10' 转换为数字类型。

2.可读性差:隐式类型转换可能会使代码难以理解和维护,因为读者需要知道代码中所有的类型转换规则才能正确地解释代码的含义。

3.性能下降:JavaScript 在进行隐式类型转换时需要进行额外的计算,这会导致代码的性能下降。在性能要求较高的场景下,应尽量避免使用隐式类型转换。

4.安全问题:隐式类型转换可能会导致一些安全问题,例如在比较两个值时,如果类型不同,可能会产生意想不到的结果,如:

console.log("100" == 100); // true
console.log("0e1" == 0); // true
console.log("0e0" == 0); // true

在上述例子中,由于 JavaScript 进行了隐式类型转换,因此字符串 '100' 被转换为了数字类型 100,字符串 '0e1' 被转换为了数字类型 0,导致了比较结果与预期不符。

为了避免隐式类型转换带来的副作用,可以使用显式类型转换来代替。例如,使用 Number() 函数将字符串转换为数字,使用 String() 函数将其他类型的值转换为字符串等。这样可以使代码更加明确和易于理解,也可以提高代码的性能。

到此这篇关于详解JavaScript中常用操作符的使用的文章就介绍到这了,更多相关JavaScript操作符内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解JavaScript中常用操作符的使用

本文链接: https://www.lsjlt.com/news/210640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解JavaScript中常用操作符的使用
    目录1、可选链操作符(optional chaining operator)2、空值合并操作符(nullish coalescing operator)3、箭头函数(Arrow Fu...
    99+
    2023-05-17
    JavaScript操作符使用 JavaScript操作符
  • JavaScript中强大的操作符使用详解
    目录一、一元操作符1. 递增和递减操作符(++ --)2. 加和减操作符二、位操作符1. 按位与操作符(&)2. 按位或操作符(|)3. 按位非操作符 (~)4. 按位异或运...
    99+
    2024-04-02
  • JavaScript中的new操作符的具体使用
    JavaScript中的new操作符是一个非常重要的概念,它可以让我们创建一个自定义的对象类型或者一个内置的对象类型,比如Array、Date、Function等。那么,new操作符...
    99+
    2023-05-18
    JavaScript new操作符 js new运算符
  • JavaScript的typeof操作符怎么使用
    本篇内容介绍了“JavaScript的typeof操作符怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • 如何在JavaScript中使用new操作符
    本篇文章给大家分享的是有关如何在JavaScript中使用new操作符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、说明(1)创建一个空对象。(2)将对象的__proto指...
    99+
    2023-06-15
  • JavaScript中new操作符的原理示例详解
    new的用处 new的作用是通过构造函数来创建一个实例对象,该实例与原型和构造函数之间的关系如下图所示: 先来总结一下 创建一个空对象 空对象的内部属性 __pr...
    99+
    2024-04-02
  • Python中列表的常用操作详解
    目录打印出列表的数据一、列表的循环遍历1、for循环遍历2、while循环遍历二、列表的添加操作1、append()2、extend()3、insert()三、列表的修改操作四、列表...
    99+
    2024-04-02
  • KotlinFlow操作符及基本使用详解
    目录一、Flow的基本概念二、Flow的生命周期与异常处理2.1 开始与结束2.2 异常的处理2.3 retry的处理2.4 超时的处理2.5 Flow的取消三、Flow的创建方式四...
    99+
    2024-04-02
  • Python学习之字符串常用操作详解
    目录1、查找字符串2、分割字符串3、连接字符串4、替换字符串5、移除字符串的首尾字符6、转换字符串的大小写7、检测字符串(后续还会更新)1、查找字符串 除了使用index()方法在字...
    99+
    2024-04-02
  • 详解Java线程中常用操作
    目录线程的常用操作守护线程(后台线程)线程串行化线程优先级线程中断线程的常用操作 设置线程名字:setName() 获取线程名称:getName() 线程唯一Id:getId() /...
    99+
    2024-04-02
  • javaScript操作字符串的一些常用方法
    目录1. 获取字符串长度2. 获取字符串指定位置的值(1)charAt()(2)charCodeAt()3. 检索字符串是否包含特定序列(1)indexOf()(2)lastInde...
    99+
    2024-04-02
  • JavaScript中rxjs与Observable操作符怎么使用
    这篇文章主要讲解了“JavaScript中rxjs与Observable操作符怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中rxjs与Observable操作符...
    99+
    2023-07-02
  • JavaScript中new操作符的作用是什么
    这篇文章给大家介绍JavaScript中new操作符的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScrip...
    99+
    2023-06-06
  • Rxjava功能操作符的使用方法详解
    Rxjava功能个人感觉很好用,里面的一些操作符很方便,Rxjava有:被观察者,观察者,订阅者,被观察者通过订阅者订阅观察者,从而实现观察者监听被观察者返回的数据下面把Rxjava常用的模型代码列出来,还有一些操作符的运用:依赖:comp...
    99+
    2023-05-30
    rxjava 操作符
  • JavaScript中new操作符的原理与实现详解
    目录一、new做了哪些事二、返回不同类型时有哪些表现三、手写new的实现原理一、new做了哪些事 先看看new的使用场景: // 1、创建一个构造函数 function Vehicl...
    99+
    2022-11-13
    JavaScript new操作符 JavaScript new
  • Vue常用的修饰符的作用详解
    目录一、Vue的修饰符是什么二、修饰符的作用1、表单修饰符2、事件修饰符3、鼠标按钮修饰符4、键盘修饰符5、v-bind修饰符三、常用的应用场景一、Vue的修饰符是什么 Vue中的修...
    99+
    2022-11-13
    Vue 修饰符 Vue 修饰符作用
  • JavaScript如何使用逗号操作符
    这篇文章将为大家详细讲解有关JavaScript如何使用逗号操作符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。逗号操作符var a = 0...
    99+
    2024-04-02
  • 如何在JavaScript中使用可选链操作符
    这篇文章将为大家详细讲解有关如何在JavaScript中使用可选链操作符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。可选链操作符(.)语法obj.propobj.[expr]func.(a...
    99+
    2023-06-15
  • JavaScript中怎么使用操作符和表达式
    这期内容当中小编将会给大家带来有关JavaScript中怎么使用操作符和表达式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、一元操作符1.delete操作符delet...
    99+
    2024-04-02
  • JavaScript变量与操作符的使用方法
    今天小编给大家分享一下JavaScript变量与操作符的使用方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作