概括图

下载地址

xmind地址

const关键字

  • const关键字声明常量的(一旦声明就无法更改)

    • a:没有变量提升
    • b:有块级作用域
    • c:不能重复声明
    • d:不能重新赋值
    • e.声明必须要初始化值

使用场景:
a.一些不会变化的值,比如圆周率PI
b.大事件项目中,保存基地址的就可以用常量.

a.没有变量提升

//a.没有变量提升
console.log(num); //报错了
const num = 100 ;

b:有块级作用域

//b.有块级作用域
{const num = 200;
}
console.log (num); //报错了

c:不能重复声明

//c.不能重复声明
const num = 300;
const num = 400;//报错了
console . log(num);

d:不能重新赋值

//d.声明必须要初始化值
const num;//报错了
console.log (num);

e.声明必须要初始化值

//e.不能重新赋值
const num = 10;
num = 20;//报错了
console . log(num);

let关键字

区别 var let
变量提升
作用域 函数作用域 块级作用域
重复声明
重新赋值

a.没有变量提升

//a.没有变量提升
console.log(age);//报错了
let age = 38;

b.有块级作用域

//b.有块级作用域
for(let i = 0; i<10; i++){}
console .log(i);//报错了

c.不能重复声明

//c.不能重复声明
let num = 10;
let num = 20;//报错了
console. log (num);

d.可以重新赋值

//d.可以重新赋值
let num1 = 10;
num1 = 20;
console. log (num1);

对象解构赋值

取对象中属性的值,赋值给变量.
对象的赋值没有顺序

//声明一个对象
let obj={name: "波波",age: 38,gender:"男",score: 100,
};let {name :name1, age : age1, gender : gender1, score :score1} = obj;
console.log(name1 , age1 , gender1, score1)

箭头函数

匿名函数的一个简写

简写规则:

  • a. function 改成=> = >可以读成goesto
  • b.如果只有一个形参,那就可以省略形参小括号.
  • c.如果不是一个形参,0个或者多个形参, 那就不能省略这个形参小括号了
  • d.如果函数体只有一句话,那就可以省略函数体的大括号
  • e.如果函数体只有一句话, 并且这一句话是return 返回值,那return也要省略.
  • f.如果函数体不是一句话, 那就不能省略这个大括号.
  • b.如果只有一个形参,那就可以省略形参小括号.
  • d.如果函数体只有一句话,那就可以省略函数体的大括号
let fn = function(name){console. log( '我的名字是' +name );
}
fn('111')箭头函数
let fn = name => console. log('我的名字是' +name)
fn('111')
  • c.如果不是一个形参,0个或者多个形参, 那就不能省略这个形参小括号了
let fn = function(name,age){console. log( '我的名字是' +name ,'我的年龄是' + age);
}
fn('111',11)箭头函数
let fn = (name,age) => console. log('我的名字是' +name,'我的年龄是' + age)
fn('111',11)
  • e.如果函数体只有一句话, 并且这一句话是return 返回值,那return也要省略
let fn4 = function(age) {return age + 10;
}
//箭头函数
let fn4 = age => age+10;
fn4(38);
  • f.如果函数体不是一句话, 那就不能省略这个大括号.
let fn2 = function (num1,num2) {console.log(num1+num2)return num1+num2+30
}let fn2 = (num1,num2) => {console.log(num1+num2)return num1+num2+30
}console.log(fn2(1, 2));

对象成员简写

对象里面有name,age,gender.score属性
希望这些属性的值是上面对应变量的值,

//声明了一些变量
let name='千里';
let age = 18;
let gender = '男';
let score = 100;var obj={name ,age,gender,// fenshu,//相当于fenshu:fenshu,报错了,因为外面没有fengshu这个变量.fenshu:score,//这里就不会报错,取外面score变量的值赋值给这个fengshu属性score,sayHi() {console.log('哈哈,你好')}
}
console.log(obj);
obj.sayHi();

对象展开

...

//声明一个对象
let chinese = {skin:'黄色皮肤',hair: '黑色头发',sayHi(){console.log('你好,你吃了吗?');}
}//声明一个对象
let zhuBo = {skill: '跳唱rap打篮球,老铁双击666',song: '唱大碗宽面'
}//声明一个对象
let linge = {// skin:'黄色皮肤',// hair: '黑色头发',// sayHi(){//     console.log('你好,你吃了吗?');// },// skill: '跳唱rap打篮球,老铁双击666',// song: '唱大碗宽面'...chinese,...zhuBo,gender:'男',hair: '白发苍苍'//重新给hair这个属性赋值,会覆盖原来的值.
}
console.log(linge);

数组展开

使用场景:
a.数组拼接
b.利用Math. max( )/Math. min()来求数组中的最大值/最小值.

//求数组中的最大值.
let arr1 = [10, 8,7, 66,65,34];
//以前的做法
// let max1 = Math. max.apply(Math,arr1);
// console.log(max1);//66//数据展开语法
let max2 = Math. max(... arr1);
console.log(max2);//66

数据类型Set

作用和数组类似,和数组不同的是:他不能存放重复的元素
应用场景:数组去重.

let set1 = new Set([10,20, 30, 40,10, 20,30,50]);
let arr1 = [10, 20,30 , 40, 10,20,30 , 50];
let arrNew=[...new Set(arr1)];//这句话就是把arr1去重,得到一个新的数组arrNew
console.log(arrNew) ;//[10, 20,30, 40, 50 ]

模板字符串

会保留原样字符串格式,以及可以占位。

let name = '千里';
let age = 38;
let score = 100;
console. log(`我的名字是${name},我的年龄是${age},我的成绩是${score}`);//我的名字是千里,我的年龄是38,我的成绩是100

补充:数组方法

forEach();

遍历数组,把遍历出来的每一项交给回调函数.
方法没有返回值

let arr = [10, 20,30, 40];arr.forEach(function( item, index) {//item就是遍历出来的每一个项//index就是遍历出来每-项对应的索引.// console. log(item, index);console.log(item + 10);
});
map()

遍历数组的,有返回值.

let arr = [10, 20, 30 , 40];
let arrNew = arr.map(function( item, index) {//item就是遍历出来的每一项//ipdex就是遍历出来的每一项对应的索引// console.log(item, index);return item*item
});
console.log(arrNew);//[ 100, 400, 900, 1600 ]
filter(); 过滤器

filter()方法会返回一个新的数组,新的数组中的元素是通过检查后符合条件的元素.

let arr=[10,20,11,23,45,67,88]
let arrNew = arr.filter((item,index)=>{//item就是遍历出来的每一项//index遍历出来的每一项对应的索引// console . log (item, index);return item % 2 == 0如果条件成立,会返回当前项,如果条件不成立,不会返回当前项
})
console.log(arrNew);//[ 10, 20, 88 ]

补充:babel

ES5和ES6的转换

[Node.js] ES6新语法相关推荐

  1. 【实习日记】第五天 剖析源码+学习Node.js Typescript基本语法

    国庆假期结束了,其实在这里实习对我而言还算是比较愉快的,虽然完成任务过程中出现的问题层出不穷,但也被克服问题的成就感包裹着,感觉每天在办公室就像在上自习一样.加油啦小荷! 自从把example运行成功 ...

  2. ES6新语法及vue基础

    https://www.angularjs.net.cn/ es6新语法:(多看多用) 1 字符串方法 //字符串方法 includes包含// let str="ijahsdjkhasd& ...

  3. Javascript - ES6新语法概览

    Javascript - ES6新语法概览 简介 ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015:该标准由ECMA(欧洲计算机制造联 ...

  4. ES6新语法 变量 、 服务器端js和浏览器端js的区别

    服务器端js和浏览器端js的区别 /*** 1.js运行在浏览器端有* ECMAScript:js语法(变量,数据类型,表达式,代码结构)* Bom:浏览器对象模型,用js去操作浏览器窗口* Dom: ...

  5. JavaScript 精选:哪些能提高开发效率的es6 新语法糖

    文章目录 一 ECMAScript 相关介绍 1 什么是 ECMA 2 什么是 ECMAScript 3 什么是 ECMA-262 4 谁在维护 ECMA-262 5 为什么要学习 ES6 6 ES6 ...

  6. 总结常见的ES6新语法特性

    前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...

  7. 【Node.js】 基础语法

    目录 Node.js npm package.json 字符编码 REPL Buffer(缓冲区) 函数 回调函数 模块系统 Express 框架 全局对象 console process Strea ...

  8. Node.js ES6 模块化的基本语法-按需导出与按需导入

    按需导出语法 export let s1 = 10 按需导入语法 import { s1 } from '模块标识符' m1.js // 当前文件模块为 m1.js export let s1 = ' ...

  9. Node.js ES6 模块化的基本语法-默认导出 与 默认导入

    默认导出语法 export default 默认导出的成员 默认导入语法 import 接收名称 from '模块标识符' m1.js // 当前文件模块为 m1.js let a = 10 // 定 ...

最新文章

  1. aide java 线程类_aide_Java常用关键字、方法使用实例
  2. ROI Align 在 R-FCN 中的推广:PSROI-Align(附代码)
  3. 访问 IIS 元数据库失败解决问题的方法
  4. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
  5. 业务架构、信息架构、技术架构三位一体,互联网营销
  6. 诺奖奖金为何119年还没发完?
  7. 起点计算机网,《零起点计算机》网第5课.pdf
  8. mysql c接口内存泄漏_MySQL C ++连接器内存泄漏
  9. DG SG childSG fatherSG
  10. C++之函数返回数组
  11. Java 处理空指针异常(java.lang.NullPointerException)空比较
  12. 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism
  13. java后台实现批量打印功能
  14. css less使用
  15. android对文件进行加密
  16. linux系统 ifconfig 命令无法找到
  17. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)
  18. 【算法导论】生日悖论
  19. C# 里面的 #region 含义
  20. 地震时我先跑了教师挑逗网民抽人欲望

热门文章

  1. Java 面试之线程与锁
  2. k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
  3. aptitude安装出现依赖_据说 pip install 今年将出现重大变化!
  4. RetinaNet和Focal Loss论文笔记
  5. Android开发入门二之AndroidManfest.xml文件详细说明 .
  6. 主板没有rgb接口怎么接灯_性价比稳定的RGB水冷散热器:乔思伯天使眼TW2-240测评...
  7. java基础运算符、键盘录入
  8. man hdparm
  9. MySQL☞insert value与values
  10. oracle 导出空表问题