ES6为一些已有的功能提供了非破坏性更新,这类更新中的大部分我们可以理解为语法糖,称之为语法糖,意味着,这类新语法能做的事情其实用ES5也可以做,只是会稍微复杂一些。本章我们将着重讨论这些语法糖,看完之后,可能你会对一些你很熟悉的ES6新语法有不一样的理解。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>解构赋值</title> <script> // 对象解构赋值, 符号{} { let zhao = {name : "zhaozhao", age: 10}; // 传统获取值的方式(键为字符串格式) console.log("name:", zhao["name"], "age:", zhao["age"]); // 解构赋值的方式(会自动匹配相应的键, 如果解构了不存在的键,则值为undefined) let {age, name, hobby} = zhao; console.log("name:", name, "age:", age, "hobby:", hobby); } // 数组解构赋值, 符号[] { let zhao = [123, "Mac", "iPhone", 345] let [zhao1, zhao2, zhao3, zhao4] = zhao; console.log("数组解构赋值结果:", zhao1, zhao2, zhao3, zhao4); } </script> </head> <body> <div id="app"></div> </body>
解构赋值
二、填充数据: 模板语法 (多行字符串)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>es6新模板语法</title> <script> window.onload = function(){ var el = document.getElementById("app"); { let age = 5; let name = 'YY'; let oldHtml = "<p>"+"age = "+age; oldHtml = oldHtml + " name = "+name; oldHtml = oldHtml + "</p>"; el.innerHTML = oldHtml; } { let age = 13; let name = "zhaozhao"; // 新的模板语法${}需要配合``使用,并且支持换行 let newHtml = `<p> age = ${age} name = ${name} </p>`; let tmpHtml = el.innerHTML; // 注意innerHTML的写法 el.innerHTML = tmpHtml + newHtml; } } </script> </head> <body> <div id="app"></div> </body> </html>
模板语法
三、规范数据域 :let/const, 块级作用域
let只在块级作用域内有效
let不允许重复声明
let声明的变量不可重复赋值
四、设置默认数据: 设置函数默认参数值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES6常用语法: 函数默认参数</title> <script> function DiyConsoleLog(name="zhao", age=15){ console.log("姓名:", name, "年龄:", age) } // 无参数调用 console.log("无参数调用:") DiyConsoleLog() // 只传一个参数 console.log("只传一个参数:") DiyConsoleLog("YY") // 传两个参数 console.log("传两个参数(正常调用):") DiyConsoleLog("YY", 12) </script> </head> <body> </body> </html>
设置默认参数值
五、规范数据流向: 优雅的箭头函数(填坑this指向Window问题)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ES6之箭头函数</title> <script> window.onload = function(){ // 箭头函数的用法 { let NewArray = [1, 4]; // 普通函数 NewArray.map(function addOne(item){ result = item + 1 console.log("普通函数:",this,"==>",result) }); // 箭头函数 NewArray.map((item)=>{ result = item + 1 console.log("箭头函数",this,"==>",result) }); } console.log("箭头函数与普通函数的区别: ") // 箭头函数的优势 { function wrapperfn (){ // 普通函数 this.map(function addOne(item){ result = item + 1 console.log("普通函数:",this,"==>",result) }); // 箭头函数 this.map((item)=>{ result = item + 1 console.log("箭头函数",this,"==>",result) }); } let NewArray = [12, 34]; wrapperfn.call(NewArray); } } </script> </head> <body> <div id="app"></div> </body> </html>
箭头函数
作者:木子昭
链接:https://www.jianshu.com/p/56c9ab6fad17
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。