[Node.js] ES6新语法
概括图
下载地址
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新语法相关推荐
- 【实习日记】第五天 剖析源码+学习Node.js Typescript基本语法
国庆假期结束了,其实在这里实习对我而言还算是比较愉快的,虽然完成任务过程中出现的问题层出不穷,但也被克服问题的成就感包裹着,感觉每天在办公室就像在上自习一样.加油啦小荷! 自从把example运行成功 ...
- ES6新语法及vue基础
https://www.angularjs.net.cn/ es6新语法:(多看多用) 1 字符串方法 //字符串方法 includes包含// let str="ijahsdjkhasd& ...
- Javascript - ES6新语法概览
Javascript - ES6新语法概览 简介 ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015:该标准由ECMA(欧洲计算机制造联 ...
- ES6新语法 变量 、 服务器端js和浏览器端js的区别
服务器端js和浏览器端js的区别 /*** 1.js运行在浏览器端有* ECMAScript:js语法(变量,数据类型,表达式,代码结构)* Bom:浏览器对象模型,用js去操作浏览器窗口* Dom: ...
- JavaScript 精选:哪些能提高开发效率的es6 新语法糖
文章目录 一 ECMAScript 相关介绍 1 什么是 ECMA 2 什么是 ECMAScript 3 什么是 ECMA-262 4 谁在维护 ECMA-262 5 为什么要学习 ES6 6 ES6 ...
- 总结常见的ES6新语法特性
前言 ES6是即将到来的新版本JavaScript语言的标准,他给我们带来了更"甜"的语法糖(一种语法,使得语言更容易理解和更具有可读性,也让我们编写代码更加简单快捷),如箭头函数 ...
- 【Node.js】 基础语法
目录 Node.js npm package.json 字符编码 REPL Buffer(缓冲区) 函数 回调函数 模块系统 Express 框架 全局对象 console process Strea ...
- Node.js ES6 模块化的基本语法-按需导出与按需导入
按需导出语法 export let s1 = 10 按需导入语法 import { s1 } from '模块标识符' m1.js // 当前文件模块为 m1.js export let s1 = ' ...
- Node.js ES6 模块化的基本语法-默认导出 与 默认导入
默认导出语法 export default 默认导出的成员 默认导入语法 import 接收名称 from '模块标识符' m1.js // 当前文件模块为 m1.js let a = 10 // 定 ...
最新文章
- aide java 线程类_aide_Java常用关键字、方法使用实例
- ROI Align 在 R-FCN 中的推广:PSROI-Align(附代码)
- 访问 IIS 元数据库失败解决问题的方法
- .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
- 业务架构、信息架构、技术架构三位一体,互联网营销
- 诺奖奖金为何119年还没发完?
- 起点计算机网,《零起点计算机》网第5课.pdf
- mysql c接口内存泄漏_MySQL C ++连接器内存泄漏
- DG SG childSG fatherSG
- C++之函数返回数组
- Java 处理空指针异常(java.lang.NullPointerException)空比较
- 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism
- java后台实现批量打印功能
- css less使用
- android对文件进行加密
- linux系统 ifconfig 命令无法找到
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*(抽球游戏-fwt开立方)
- 【算法导论】生日悖论
- C# 里面的 #region 含义
- 地震时我先跑了教师挑逗网民抽人欲望
热门文章
- Java 面试之线程与锁
- k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码
- aptitude安装出现依赖_据说 pip install 今年将出现重大变化!
- RetinaNet和Focal Loss论文笔记
- Android开发入门二之AndroidManfest.xml文件详细说明 .
- 主板没有rgb接口怎么接灯_性价比稳定的RGB水冷散热器:乔思伯天使眼TW2-240测评...
- java基础运算符、键盘录入
- man hdparm
- MySQL☞insert value与values
- oracle 导出空表问题