㈠ JS高级(三)----可选链 && Map && Set
可选链(?.) 是一种简化代码的语法,它允许在访问嵌套对象属性时,检查对象是否为 null 或 undefined。通过使用可选链,代码变得更加简洁易读,减少了长串的逻辑判断。例如:
原本可能需要使用大量的逻辑判断,现在只需一行可选链语法即可实现相同功能。可选链简化了代码,避免了冗长的表达,提高了代码的可读性。
总结了之前关于 JS 高级的主题,检查变量是否为 null 或 undefined 的方法有三种:
短路 (&& 和 ||):这种方法在逻辑判断上有一定的缺陷,因为它会进行隐式转换,如0和""会被转换为false。
空合并(??):此方法提供了一种更加精准的检查方式,只会检查变量是否为 null 或 undefined,并不会进行隐式转换。
可选链(?.):这种语法在检查变量是否存在时,只检查是否为 null 或 undefined,并且以简洁的语法实现,使得代码更加易于理解和阅读。
Map 是一种与对象类似的集合数据结构,但具有不同的特性。以下是 Map 的基本语法和使用方法:
实例化 Map:可以使用以下方式创建 Map 对象,然后对其进行操作。
Map 操作方法:包括读取数据(get(key))、新增数据(set(key, value))、检查键是否存在(has(key))、删除数据(delete(key))和清空数据(clear())。
与对象相比,Map 在数据结构和操作方法上具有明显区别,如键值对的唯一性、使用场景和操作方式。
Set 是一种类似于数组的数据结构,但其特性在于元素的唯一性。这意味着集合中不会有重复的数据。以下是 Set 的基本语法和特性:
数据唯一性:Set 集合中的元素只会出现一次,重复的数据不会被添加。
Set API:Set 提供了三个主要方法,用于检查值是否存在(has(value))、添加值(add(value))和删除值(delete(value))。
通过这些方法,Set 实现了数据的唯一性和高效管理,使得在处理集合数据时更加灵活和方便。
㈡ javascript最新的版本是什么引入了一些什么新的特性
EMCAScript6(ES6)是JavaScript的最新版本,它引入了一系列强大的新特性。这些特性极大地简化了代码的编写,提升了开发效率,使JavaScript在处理复杂应用时更加得心应手。
ES6中引入了箭头操作符,这是一种简化函数定义的方式,与C#或Java中的lambda表达式类似。使用箭头操作符,可以将函数定义得更加简洁。例如,以前需要定义一个函数,现在可以用箭头操作符直接定义一个回调函数,极大地方便了回调函数的编写。
ES6还引入了类的支持,使用class关键字定义类,使得对象的创建、继承更加直观。ES6中的类实际上是JavaScript原型模式的一种封装。通过类,父类方法的调用、实例化、静态方法和构造函数等概念都更加形象化。
ES6增强了对象字面量的功能,使得定义对象时更加简洁与灵活。可以在对象字面量中定义原型,定义方法时不用使用function关键字,可以直接调用父类方法。这些改进使得代码更加简洁,易于维护。
ES6引入了字符串模板,这是一种更简洁的字符串拼接方式。使用反引号`可以创建字符串,其中可以包含由美元符号加花括号包裹的变量${variable}。这种方式使得字符串拼接更加直观。
ES6引入了解构特性,可以自动解析数组或对象中的值。这使得返回多个值的函数可以直接返回一个数组,数组中的值会自动被解析到对应接收该值的变量中。这种方法使得代码更加简洁,易于理解。
ES6引入了let与const关键字,让变量的作用域更加明确。let定义的变量在特定范围内有效,离开这个范围则无效。const用来定义常量,即无法被更改值的变量。
ES6还引入了for of循环,用于遍历数组、类数组或对象。与for in循环不同的是,for of循环提供的不是序号而是值。
ES6引入了模块的概念,JavaScript原生支持mole。这种将JS代码分割成不同功能的小块进行模块化的概念是在一些三方规范中流行起来的,比如CommonJS和AMD模式。
ES6还引入了Map、Set、WeakMap和WeakSet等新的集合类型,提供了更加方便的获取属性值的方法。同时,Map和Set还提供了专门的get和set方法。
ES6还引入了Proxy,可以监听对象身上的变化,并在这些变化发生后执行相应的操作。这使得我们可以对一个对象有很强的追踪能力,同时在数据绑定方面也有很大帮助。
ES6还引入了Symbols,这种值可以作为对象的键。Symbols是一种基本类型,像数字、字符串和布尔一样,它不是一个对象。Symbols通过调用symbol函数产生,它接收一个可选的名字参数,该函数返回的symbol是唯一的。之后就可以用这个返回值作为对象的键。
ES6还为Math、Number、String和Object等对象添加了许多新的API,使得这些对象的功能更加丰富。
ES6还引入了Promises,这是一种处理异步操作的模式。它使得异步编程变得更加简洁和易于理解。