1. 块级作用域变量:let 和 const
在 ES6 之前,JavaScript 只有函数级别的作用域,而没有块级作用域。为了解决这一问题,ES6 引入了 let
和 const
两个关键字。
let
let
可以声明一个块级作用域内的变量。使用 let
声明的变量只在当前作用域内有效,不会影响到外层作用域。
{ let a = 'foo'; console.log(a); // 输出 'foo' } console.log(a); // 抛出异常,a 未定义
const
const
也可以声明块级作用域内的变量,但其与 let
的不同之处在于 const
声明的变量不可被重新赋值。
const PI = 3.14159; PI = 3; // 抛出异常,无法重新赋值 const 声明的变量
2. 模板字符串
ES6 中,使用反引号()来表示一个字符串,这种字符串称为模板字符串。模板字符串支持在其中嵌入表达式,通过
${expression}` 的形式来表示。
let name = "Tom"; let age = 25; let str = `My name is ${name}, and I am ${age} years old`; console.log(str); // 输出 'My name is Tom, and I am 25 years old'
3. 箭头函数
ES6 引入了箭头函数的概念,使得函数的书写变得更加简洁和易读。
// 普通函数 function add(a, b) { return a + b; } // 箭头函数 let add = (a, b) => a + b;
箭头函数语法更加紧凑,同时也自动绑定了 this
关键字,避免了使用 bind
方法来改变 this
的指向。
4. 解构赋值
ES6 中可以使用解构赋值来将数组或对象中的元素赋值给变量。
let arr = [1, 2, 3]; let [a, b, c] = arr; console.log(a, b, c); // 输出 1,2,3 let obj = { name: 'Tom', age: 25 }; let { name, age } = obj; console.log(name, age); // 输出 'Tom', 25
5. 新增数据类型:Symbol
ES6 引入了一种新的基本数据类型 Symbol
,表示独特的识别符号。可以使用 Symbol()
函数来创建一个 Symbol
类型的值。
let s1 = Symbol(); let s2 = Symbol(); console.log(s1 === s2); // 输出 false
6. 数据类型修改:Number、String 和 Object
ES6 也对一些已有的数据类型进行了修改。
Number
ES6 对 Number 类型新增了一些方法,如下:
Number.isFinite()
:判断一个值是否有限Number.isNaN()
:判断一个值是否为 NaNNumber.parseInt()
:将字符串转换为整数Number.parseFloat()
:将字符串转换为浮点数
console.log(Number.isFinite(Infinity)); // 输出 false console.log(Number.isNaN(NaN)); // 输出 true console.log(Number.parseInt('10')); // 输出 10 console.log(Number.parseFloat('3.14')); // 输出 3.14
String
ES6 对 String 类型新增了一些方法,如下:
String.includes()
:判断一个字符串是否包含另一个字符串String.startsWith()
:判断一个字符串是否以另一个字符串开头String.endsWith()
:判断一个字符串是否以另一个字符串结尾String.repeat()
:重复一个字符串
let str = "hello world"; console.log(str.startsWith("hello")); // 输出 true console.log(str.includes("world")); // 输出 true console.log(str.repeat(3)); // 输出 'hello worldhello worldhello world'
Object
ES6 对 Object 类型新增了一些方法,如下:
Object.assign()
:将一个或多个对象的属性逐个复制到另一个对象Object.setPrototypeOf()
:用于设置一个对象的原型对象
let obj1 = { name: 'Tom' }; let obj2 = { age: 25 }; Object.assign(obj1, obj2); console.log(obj1); // 输出 { name: 'Tom', age: 25 }
总结
ES6 中对数据类型的新增和修改,使得 JavaScript 的功能更加强大和完善,同时也让开发者更加容易地写出高质量的代码。前端开发者应该在日常的开发中熟练使用这些新的特性,从而提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648453be48841e989436c423