let和const命令
var
之前,写js变量的时候,只有一个关键字 var 但var有一个问题,就是定义的变量有时候会
成为全局变量
例如
输出的结果 如果写成 i <=5 就是 0-5 写成 i < 5 就是 0-4 【OK吗】
可以看出,在循环外部也可以获取到变量i的值,显然变成i的作用域 范围太大了,在做复杂
页面时,会带来很大的问题
let
let所声明的变量,只在let所在的代码块内有效。
例如:(把var改成let)
输出的结果
这样,就把变量的i的作用域控制在了循环内部。
const
const声明的变量是常量,不能被修改;类似于java中的fianl关键子。
例如
输出结果
可以看到,变量a的值是不能修改的。
字符串扩展
字符串API
在ES6中 为字符串扩展了几个新的API
includes("xxx"):返回布尔值,表示是否含xxx
startsWith("xxx")返回布尔值,表示是否以xxx开头
endsWith("xxx")返回布尔值,表示是否以xxx结尾
示例
输出结果
字符串模板
ES6中提供了来作为字符串模板标记。
示例
输出结果
、
两个之间的部分都会被记做字符串的值,可以任意换行。
结构表达式 什么是解构? ES6中允许安装一定模式从数组对象中取值,然后
对变量进行赋值,这样被成为为解构
数组结构
例如,有一个数组
let arr = [1,2,3]
之前,想要获取的其中的值,只能通过下标,但ES6可以这样做:
结果
对象解构
例如,定义一个对象
使用解构表达式取值
结果
函数优化
函数树默认值
在ES6之前,无法给一个函数参数设置默认值 只能采取用变通写法
使用ES6之后,可以这样写
箭头函数
ES6中 定义一个函数的简洁方式
一个参数时
多个参数时
没有参数时
当有多行代码时,可以使用 { }括起来
对象的函数属性
比如有一个Person对象,里面有eat方法
箭头函数结合解构表达式
例如,有这样一个函数
使用箭头和解构表达式写法
Map和Reduce
在ES6中,数组新增了map()和reduce()方法
map()
map():接受一个函数,将原数组中的所有元素用这个函数处理放入新的数组返回
例如:有一个字符串数组,要求把他转换为int数组
结果