ES6笔记
来源:互联网 发布:英语单词翻译软件 编辑:程序博客网 时间:2024/06/03 16:02
ES6语法
一、声明方式
- var:变量。
- let:变量(有作用域)。
- const:声明常量。
二、变量的解构赋值
2.1 数组的解构赋值:
简单的数组解构:(注:左右两边的结构必须严格一致,否则解构失败)
let a=0;let b=1;let c=2;// 演化成=> let [a,b,c]=[1,2,3];
解构的默认值:
let [a, b = 'bbb'] =['aaa'];console.log(a + b); => aaabbb //浏览器输出let [a, b = 'bbb'] =['aaa', undefined];console.log(a + b); => aaabbb //浏览器输出let [a, b = 'bbb'] =['aaa', null];console.log(a + b); => aaanull //浏览器输出
小结:注意
undefined
和null
的区别。数组的函数解构
let arr = ['aaa', 'bbb', 'ccc'];function fun(a, b, c){ console.log(a, b, c);}fun(...arr);
2.2 对象的解构赋值
对象的结构按照属性(key)来的,就是键值对要匹配。
let {a, b} = {a: 'aaa', b: 'bbb'};console.log(a + b); //控制台打印出了“aaabbb”
对象的函数结构
let json = { a: 'aaa', b: 'bbb'}function fun({a, b='hahaha'}){ console.log(a,b);}fun(json);
2.3 字符串解构
字符串的解构,可以看作是一个类似数组的对象。
const [a,b,c]= "ABC";console.log(a);console.log(b);console.log(c);
三、扩展运算符和rest运算符
3.1 扩展运算符 => 对象扩展运算符(…)
应用1:可变参数
function print(...arg){console.log(arg[0]);console.log(arg[1]);console.log(arg[2]);}print(1,2);=> 1, 2, undefined //控制台输出
应用2:复制扩展
let arr1 = ['aaa','bbb','ccc'];let arr2 = [...arr1]; //通过扩展运算符arr2.push('ddd');console.log(arr1);console.log(arr2);=>['aaa','bbb','ccc']=>['aaa','bbb','ccc', 'ddd']
3.2 rest运算符
// 类似可变参数function print(...arg){ // for…of的循环可以避免开拓内存空间,增加代码运行效率; for(let val of arg){ console.log(val); }}print(0,1,2,3,4,5,6,7);=> 0,1,2,3,4,5,6,7
四、字符串模版
4.1 字符串拼接(注意:这里的字符串使用“包裹,不是单引号,也不是双引号)
let temp = '我是字符串';let str = `你好,${jspang},哈哈`;document.write(str);
4.2 操作字符串的方法
indexOf() //查找指定的字符串是否存在includes() //true:说明包含指定的字符串startsWith() // 判断该字符串是不是已指定的字符串开始endsWith() // 判断该字符串是不是已指定的字符串结尾repeat() //将指定的字符串复制n次
五、数字操作
5.1 数字的判断与转换 Number.isFinite(xx)
可以使用来进行数字验证,只要是数字,不论是浮点型还是整形都会返回true,其他时候会返回false。
Number.isFinite(xx) //判断是不是数字Number.isNaN(NaN) //判断是不是NaN,NaN是特殊的非数字Number.isInteger(xx) //判断是不是整数Number.parseInt(xx) //整形转换Number.parseFloat(xx) //浮点型转换Math.pow(2,53)-1 // 整形的取值范围Number.MAX_SAFE_INTEGER //最大安全整数Number.MIN_SAFE_INTEGER //最小安全整数Number.isSafeInteger(xx) //安全整数判断
六、数组
6.1 JSON数组格式转换
JSON的数组格式是一种快速把JSON转换成数组的格式,
// 传统写法let json = { '0': 'aaa', '1': 'bbb', '2': 'ccc'}// ES6写法let json = { '0': 'aaa', '1': 'bbb', '2': 'ccc', length: 3 //多了一个length熟悉}let arr=Array.from(json);console.log(arr)
6.2 Array的方法:
Array.of(...args); //将可变参数args转成数组find() //Array的实例方法,用于查找数组中的数据fill() //Array实例方法:对数组进行填充,它接收三个参数,第一个参数是填充的变量,第二个是开始填充的位置,第三个是填充到的位置。for...of //数组的遍历
6.3 数组的遍历
不带索引 (for…of循环)
for (let item of arr){ console.log(item);}
带索引
let arr=['aaa','bbb','ccc']for (let index of arr.keys()){ console.log(index);}
带索引和值
let arr=['aaa','bbb','ccc']for (let [index,val] of arr.entries()){ console.log(index+':'+val);}
entries()实例方法:
entries()实例方式生成的是Iterator形式的数组用next()手动跳转到下一个值。
let arr = ['aaa','bbb','ccc']let list = arr.entries();console.log(list.next().value);console.log(list.next().value);console.log(list.next().value);
forEach遍历
let arr = ['aaa','bbb','ccc']arr.forEach((val,index)=>console.log(index,val));
filter
let arr = ['aaa','bbb','ccc']arr.filter(x=>console.log(x));
some
let arr = ['aaa','bbb','ccc']arr.some(x=>console.log(x));
map
let arr = ['aaa','bbb','ccc']console.log(arr.map(x=>'web'));
七、箭头函数和扩展
略…
八、补充
8.1 in的用法
用来判断对象或者数组中是否存在某个值的
对象判断
let obj={ a:'aaa', b:'bbb'}console.log('a' in obj); //true
数组判断
let arr1=['aaa', 'bbb'];console.log(0 in arr1); // true 0代表角标
8.2 数组转换字符串
join()方法
let arr = ['aaa','bbb','ccc']console.log(arr.join('|'));
toString()方法
let arr = ['aaa','bbb','ccc']console.log(arr.toString());
阅读全文
0 0
- ES6笔记
- ES6笔记
- ES6笔记
- ES6笔记
- ES6笔记
- ES6笔记
- ES6笔记
- es6 笔记
- Es6笔记
- Es6笔记
- ES6笔记
- es6开发:ES6学习笔记
- ES6学习笔记
- ES6 笔记 0
- ES6学习笔记
- ES6笔记(一)
- ES6学习笔记
- ES6学习笔记
- 自定义带头结点的单链表类(C++)----------测试(二)
- iOS 顶部滚动标题视图SGPagingView
- 最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例
- jd-gui反编译jar后清除后面的注释信息
- java.text.ParseException: Unparseable date: "Sat Nov 11 00:00:00 CST 2017"
- ES6笔记
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- eclipse *.vm 文件,每次都弹出associate file name with the 'HTML' content type and retry?窗口
- VB.net使用PrintForm打印窗体
- 11.15Java第十二周作业
- 普通程序员如何入门深度学习?
- 两个月没写分享了,这次分享优惠券开发心得
- 蓝牙mesh网络基础
- Qt:在程序中获取源码被编译的日期和时间