IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> ES6补充 -> 正文阅读

[JavaScript知识库]ES6补充

let var const?区别

var可以重复定义

let只可以定义一次,否则报错

const?拥有?let?的所有优点,不同的是,通过?const?声明的变量是只读的。?

const?声明并不会真的保护数据不被改变。 为了确保数据不被改变,JavaScript 提供了一个函数?Object.freeze()

var被视作全局变量

如果你创建一个函数,将它存储起来,稍后在使用?i?变量的?for?循环中使用。这么做可能会出现问题。 这是因为存储的函数会总是指向更新后的全局?i?变量的值。

var printNumTwo;
for (var i = 0; i < 3; i++) {
  if (i === 2) {
    printNumTwo = function() {
      return i;
    };
  }
}
console.log(printNumTwo());

这里控制台将显示值?3

可以看到,printNumTwo()?打印了 3,而不是 2。 这是因为赋值给?i?的值已经更新,printNumTwo()?返回全局的?i,而不是在 for 循环中创建函数时?i?的值。?let?关键字就不会出现这种现象:

let printNumTwo;
for (let i = 0; i < 3; i++) {
  if (i === 2) {
    printNumTwo = function() {
      return i;
    };
  }
}
console.log(printNumTwo());
console.log(i);

在这里控制台将显示值?2?和一个错误提示?i is not defined

i?未定义,因为它没有在全局范围内声明。 它只在?for?循环语句中被声明。?printNumTwo()?返回了正确的值,因为?let?关键字在循环语句中使?i?变量产生了三个不同的值(分别为 0、1、2)。

开发者会用大写字母作为常量标识符,用小写字母或者驼峰命名作为变量(对象或数组)标识符。

对象(包括数组和函数)在使用?const?声明的时候依然是可变的。 使用?const?来声明只会保证变量不会被重新赋值。

箭头函数

ES6 提供了其他写匿名函数的方式的语法糖。 你可以使用箭头函数

const myFunc = () => {
  const myVar = "value";
  return myVar;
}

当不需要函数体,只返回一个值的时候,箭头函数允许你省略?return?关键字和外面的大括号。 这样就可以将一个简单的函数简化成一个单行语句。

const myFunc = () => "value";

这段代码默认会返回字符串?value

和一般的函数一样,你也可以给箭头函数传递参数。

const doubler = (item) => item * 2;
doubler(4);

doubler(4)?将返回?8

如果箭头函数只有一个参数,则可以省略参数外面的括号。

const doubler = item => item * 2;

可以给箭头函数传递多个参数。

const multiplier = (item, multi) => item * multi;
multiplier(4, 2);

ES6 里允许给函数传入默认参数,来构建更加灵活的函数。

请看以下代码:

const greeting = (name = "Anonymous") => "Hello " + name;

console.log(greeting("John"));
console.log(greeting());

控制台将显示字符串?Hello John?和?Hello Anonymous

?rest

?rest 操作符可以用于创建有一个变量来接受多个参数的函数。 这些参数被储存在一个可以在函数内部读取的数组中。

请看以下代码:

function howMany(...args) {
  return "You have passed " + args.length + " arguments.";
}
console.log(howMany(0, 1, 2));
console.log(howMany("string", null, [1, 2, 3], { }));

控制台将显示字符串?You have passed 3 arguments.?和?You have passed 4 arguments.

使用 rest 参数,就不需要查看?args?数组,并且允许我们在参数数组上使用?map()filter()?和?reduce()

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:42:45  更:2021-10-08 11:42:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:30:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码