02-ES6详解
概述


语法
let和const命令



模板字符串


函数默认参数与箭头函数
函数默认参数


箭头函数


对象初始化简写

对象结构
传播操作符

数组map和reduce方法使用
map
reduce
最后更新于
这有帮助吗?













最后更新于
这有帮助吗?
这有帮助吗?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 传统定义变量和常量的方式 统一使用var
var name = "baidu"
var link = "https://www.baidu.com"
var PI = Math.PI
console.log(name)
console.log(link)
console.log(PI)
// ES6 的定义
let name2 = "python"
let link2 = "https://www.python.org"
// 定义常量
const PI2 = Math.PI
console.log(name2)
console.log(link2)
console.log(PI2)
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
...
<body>
<script>
// var 的变量穿透问题
for(var i=0;i<5;i++)
console.log(i)
// 这里就造成变量穿透、编译
console.log(i)
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
...
<body>
<script>
for(let i=0;i<5;i++)
console.log(i)
console.log(i)
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
<script>
// 字符串会牵涉到动态部分
var person = {
name:"1",
address:"2",
link:"3"
}
let address = person.name + ":" + person.address + ":" + person.link
console.log(address)
// ES6字符串语法模板
let address2 = `${person.name}:${person.address}:${person.link}`
console.log(address2)
</script>
</body>
</html><script>
// 函数默认参数
function sum(a,b){
return a+b
}
var result = sum(1,2)
console.log(result)
</script><script>
// 函数默认参数
function sum(a=2,b=3){
return a+b
}
var result = sum()
console.log(result)
</script><script>
var sum = function(a,b){
return a+b
}
var sum2 = (a,b) => {
return a+b
}
var sum3 = (a,b) => a+b
console.log(sum(1,2)+":"+sum2(1,2)+":"+sum3(1,2))
</script>var sum = (a,b) => {
var num = a + b
return num
}<script>
var arr = [1,2,3,4,5]
var newarr = arr.map(obj=>obj * 2)
console.log(newarr)
</script><script>
var info = {
title:"python",
link:"https://www.python.org",
go:function(){
console.log(`正在学习${this.title}`)
}
}
//es6简写
//因为对象是以key-value的形式存在
//1. 如果key和变量名字一致,可以指定义一次即可
//2. 如果value是一个函数,可以把`:function`去掉,只剩下()即可
var title = "python"
var link = "https://www.python.org"
var info2 = {
title:title,
link:link,
go:function(){
console.log(`正在学习${this.title}`)
}
}
var info3 = {
title,
link,
go(){
console.log(`正在学习${this.title}`)
}
}
console.log(info)
console.log(info2)
console.log(info3)
</script><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>对象解构</title>
</head>
<body>
<script>
// 对象解构 --- es6提供一些获取快捷获取对象属性和行为方式
var person = {
name:'zhangsan',
age:32,
language:"cn",
// 函数也有处理
/* say:function(){
console.log(this.name+"年龄是:" + this.age);
} */
/* say:()=>{
console.log(this.name+"年龄是:" + this.age);
} */
say(){
console.log(this.name+"年龄是:" + this.age);
}
};
// ===========================传统的做法========================
var name = person.name;
var age = person.age;
person.say();
// ===========================对象解构做法========================
//es6的做法 前提:默认情况name,age必须是jsonkey.
var {name,age} = person;
console.log(name,age);
// 可以用冒号取小名
var {name,age,language:lan} = person;
console.log(name,age,lan);
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 对象传播操作符
var info = {
title:"title",
link:"link",
address:"address",
go:function(){
console.log(`${this.title},${this.link}`)
}
}
var {title, link,...person2} = info
console.log(title)
console.log(link)
console.log(person2)
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 要对数组每个元素*2
let arr = [1,2,3,4,5,6,7]
// 传统的方式
let newarr = arr.map(function(value){
return parseInt(value) * 2;
})
// 传统的方式
let newarr2 = arr.map(value=>{
return parseInt(value) * 2;
})
// 传统的方式
let newarr3 = arr.map(value=>parseInt(value) * 2)
console.log(newarr)
console.log(newarr2)
console.log(newarr3)
</script>
</body>
</html><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let arr = [1,2,3,4,5]
var result = arr.reduce((a,b) => a+b) # result=15
console.log(result)
</script>
</body>
</html>