概念
EcmaScript6新的JavaScript标准 2015年推出 为了js更加快捷简单
变量声明
1.let 关键字 特性:
1.不允许重复声明;
2.块级作用域(局部变量)
3.不纯在变量提醒;
4.不影响作用域链;
2.const 关键字 特性;
1.const关键字用来声明变量
2.声明必须赋初始值
3.不允许重复声明
4.值不允许修改
5.标识符一般为大写
6. 块级作用域(局部变量)
var 关键字 特性:
1.全局作用域
2.函数作用域
3.没有 if switch for while do esle 作用域
4.会变量提升
解构
1.对象解构:
let node = {
type:"node",
name:"haha",
}
let {type,name} = node;
console.log(type)//"node"
console.log(name)//"haha"
注意:当解构赋值表达式的右侧(等号右边)的计算结果为null或者undefined时,会报出异常。因为任何读取nul或者undefined的斗湖导致运行时错误。
2.数组解构
let colors = ["red","green","blue"];
let [ , second] = colors;
console.log(second)//"green"
数组解构和对象解构比较相似,对象是根据key来检索取值,数组是根据位置来检索取值。
字符串ES6扩展方法
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
// 普通字符串
`In JavaScript '\n' is a line-feed.`
// 多行字符串
`In JavaScript this is
not legal.`
console.log(`string text line 1
string text line 2`);
// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`
//模板字符串中还能调用函数
function fn(){
return 'hello world'
}
`foo ${fn()} bar`
//foo hello world
字符串
1.遍历
1.for
2.for of
2.检测
1.indexOf lastindexOf 返回值下边|1
2.includes true | false
3.starsWith true | false
4.ends With true | false
3.填充
1.repeat (重复的次数)
2.padStart (填充的总位数 填充字符串)
3.padEnd (填充的总位数 填充字符串)
4.拼接
``+${}
+
数组
1.ES6数组的各种方法
1.forEach 函数
1.函数名.forEach(function(数组中一个元素的值){对这个值进行处理…})
2.数组名.forEach(test)test为方法名,不用加(),把函数引用传进去
2.map 方法
1.map()方法一定要有一个返回值,没有返回值的话就会返回一个undefined
2.map()方法的返回值是一个数组
3.filter 函数
1.filter可以返回一个新数组,也可以直接改变原数组
4.find 方法
find()方法只会找到第一个符合的,找到之后就会直接返回,就算下面还有符合要求的,也不会再找下去
5.every 方法
some()方法只要有一个满足就行,every()方法要所有的满足才可以,即some():一真即真,every():一假即假,跟逻辑运算符差不多
6.some 方法
some()方法只要有一个满足就行,every()方法要所有的满足才可以,即some():一真即真,every():一假即假,跟逻辑运算符差不多
7.reduce 方法
reduce(function(sum,number){…},0)要有两个参数,第一个参数一定要初始化
函数
1、函数:实现某种功能的程序模块
1.参数(形参):形式参数,占位符,在函数定义时没有数据
2.参数(实参):实在参数,在函数中调用使用,表示实际的数据
3.函数形参的默认值:在很多情况下,需要在使用函数的时候给定默认参数,在ES5标准中
function fun1(name='张三',age='30',cb){
console.log(`${name},${age}`)
}
fun1()
fun1('王五',36)
/*输出:
张三,30
王五,36
*/
二,函数参数的不定参数
1.很多情况下,使用函数传参的时候,形参的数量是不固定的,这时候要获取参数值就会比较麻烦。在ES5中可以通过隐藏参数arguments来获取,此时会把所有参数放在arguments中
function fun(num,str,...rest){//...解构运算符 ...rest不定参数
console.log(arguments);//代表函数的参数
console.log(arguments[0])//每个函数都有一个arguments属性
console.log(arguments[1]);//参数
console.log(arguments[2]);
console.log(rest)
}
fun(123,'西邮','长安南路',456,789)
/*输出:
[Arguments] { '0': 123, '1': '西邮', '2': '长安南路', '3': 456, '4': 789 }
123
西邮
长安南路
[ '长安南路', 456, 789 ]
*/
三,箭头函数1)若只有一个参数,则()是可以省略的
1.若只有一个参数,则()是可以省略的
2.若函数体当中只有一条语句,则{}也可以省略,并且这条语句默认带有return功能
3.用箭头函数后,就没有隐形的arguments参数
4.箭头语法最大的特点是有箭头"=>"符号
箭头函数:let/const 变量名字 = ([参数])=>{函数体语句(记得要return)}
let getName = (name)=> {
return name
}
//箭头函数:let/const 变量名字 = ([参数])=>{函数体语句(记得要return)}
//(1)若只有一个参数,则()是可以省略的
//(2)若函数体当中只有一条语句,则{}也可以省略,并且这条语句默认带有return功能
//(3)用箭头函数后,就没有隐形的arguments参数
// let getName = name=> name
let n = getName('张三');
console.log(n)
/*输出:
张三
*/
函数参数
1.函数的默认参数基本使用方法
function test(x,y = "hello"){
console.log("函数参数:",x,y);
}
test("winne"); //函数参数:winne hello
test("winne","hi"); //函数参数:winne hi
类
class 类
extends 继承
super 父构造函数 (要在所有的方法的最前面)
constructor 构造函数
this 指向实例
static 静态的
new Box()实例化类