// 对象的结构赋值给默认值可以用等号去链接value
// 如果解构得到的值是''这时候默认值不会生效
// 但是当结构得到的值是undefined 默认值可以生效
var obj = {
name: '赵信',
text: undefined,
sex: '男'
}
var { text = aaa, name, sex} = obj
字符串
var aaa = '一点寒芒先到,随后抢出如龙'
var [...a] = aaa
如果是 var [a] = aaa 那么a是 '一'
函数参数
函数参数的解构赋值其实就是基于对象或者数组的解构赋值完成的只不过可以省略声明变量的关键字和形参
var role = {
name: '喜之郎',
sex: '公',
hit: 65
}
function fun({name, sex, hit}) {
console.log(name,sex,hit)
}
fun(role)
数字和布尔值
本身不能结构赋值 但可以转为字符串进行结构赋值
箭头函数
//普通的函数写法
function fun(){
}
var fun = function (text){
return '德玛西亚' + text
}
console.log(fun(' | 勇士长存'))
function show(){
console.log(arguments)//可以直接拿到参数
}
show(1,2,3,4)
// 箭头函数写法
// 简写方式
var fun2 = text => text
console.log(fun2('德玛西亚'))
// 当箭头函数参数大于一个的时候 ,则括号不能省略
var fun3 =(parm1,parms2)=>{
return parm1 + parms2
}
var fun6 = (param1,param2) => param1 + param2
console.log(fun6('1','2'))
console.log(fun3('1','2'))
// 对象的错误写法
// var fun4 = pbj =>{name :'李白', sex: '男'}
// 正确写法 箭头函数返回一个对象的时候对象要用()包裹
var fun5 = () => ({name :'李白', sex: '男'})
console.log(fun5())
var fun4 = obj => obj
console.log(fun4({name :'李白', sex: '男'}))
// 箭头函数完整写法
var fun7 = () =>{
}
// 箭头函数 this 指向
var obj = {
run() {
console.log(this) //指向 fun()
setTimeout(function () {
console.log(this) // 指向window
},1000)
setTimeout(function () {
console.log(this) //指向run
}.bind(this),1000)
}
}
obj.run()
// 使用注意点--箭头函数有几个使用注意点。
// (1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
// (2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
// (3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
// (4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
//JavaScript中this的9种应用场景及三种复合应用场景
// https://www.cnblogs.com/frontendnotes/articles/6411441.html
模板字符串
var a = '你才是麻瓜'
var b = '你也是个麻瓜'
var str
// 正常的拼接方法
// var html = ''
// html+="<div>"
// html+="<div>" + a + "</div>"
// html+="<div>" + b + "</div>"
// html+="</div>"
// console.log(html)
//ES6的拼接方法
var html = `
<div>
<div>${a}</div>
<div>${b}</div>
</div>
`
// 使用方法 需要先引入jQuery.js
$('.abc').append(html)
//面试问题: 可以换行 使用变量时 要使用 ${} {内部拼接要使用的变量}
当使用export导出时 导出一个对象对象中是要导出的方法的集合
我们要使用 import {要导入的方法} from 'module'
导入成功后可以在页面中直接使用方法
当使用export default 导出时 可以导出一个对象也可以直接导出一个变量或者方法
导入的方法是 import 变量 from 'module'
当export default 导出的是一个对象的时候那么变量就表示是一个对象
可以通过变量.方法或者变量名的形式使用对象中的方法
当导出的数据只是一个方法或者变量的时候
我们导入时定义的变量就是我们导出的方法或者变量的值
es6模块化导入数据时 可以使用as属性修改变量的名字
as前面是要修改的数据的名称 后面是要改成的变量的名称
import { globalData as a } from '../api/topic'
class
工厂函数 构造函数
function Role(name,hit,la){
this.name = name
this.hit = hit
this.say = function(){
console.loa(la)
}
}
Role.prototype.type = "jio" //添加属性
var role = new Role('瞎子','78','一库')//实例化对象
role.say()//调用方法
//class是一个类
class Role {
constructor(name, hit, la) {
this.name = name
this.hit = hit
this.text = la
}
say(word){
console.log(word)
}
dance(){
console.log('武当派')
}
}
Role.prototype.type = "大宝剑" //添加属性
var role = new Role('盖伦', 72, '德玛西亚') //实例化
role.say('只有傻瓜才会为了荣誉献身') //调用方法