1 ES6常用语法#
1.1 变量提升#
例①
Copy Highlighter-hljs
| # 变量提升 |
| <div id="app"> |
| |
| </div> |
| |
| <script> |
| console.log(age); # undefined |
| var age = 18; |
| console.log(age) # 18 |
| </script> |
| |
| |
例②
Copy Highlighter-hljs
| # 变量提升 |
| <div id="app"> |
| |
| </div> |
| |
| <script> |
| function aa() { |
| console.log(xiaoqiang) # undefined |
| if (1){ |
| var xiaoqiang = 'qiang'; |
| console.log(xiaoqiang) # qiang |
| } |
| } |
| aa() |
| </script> |
例③
Copy Highlighter-hljs
| # 例②的引申 let |
| <body> |
| <div id="app"> |
| |
| </div> |
| |
| <script> |
| function aa() { |
| // console.log(xiaoqiang); # 报错 |
| if (1){ |
| let xiaoqiang = 'qiang'; # let 块级作用域 |
| console.log(xiaoqiang) # qiang |
| } |
| } |
| aa() |
| </script> |
| </body> |
例④
Copy Highlighter-hljs
| <body> |
| <div id="app"> |
| |
| </div> |
| |
| <script> |
| const s12 = 'high'; |
| console.log(s12) # high |
| ------------------------------- |
| const s12 = 'high'; |
| const s12 = 'high1'; |
| |
| console.log(s12) # 报错 |
| </script> |
| </body> |
| # const 定义一个不变的变量 |
1.2 模板字符串#
Copy Highlighter-hljs
| |
| <body> |
| |
| <div id="app"> |
| |
| </div> |
| |
| |
| <script> |
| # 反引号与一般引号的区别 |
| var ele = document.getElementById('app'); |
| ------------------------------------- |
| ele.innerHTML = '<ul>' + |
| '<li>1</li>' + |
| '<li>2</li>' + |
| '<li>3</li>' + |
| '</ul>'; |
| ------------------------------------- |
| ele.innerHTML = ` |
| <ul> |
| <li>1</li> |
| <li>2</li> # 形式一 |
| <li>3</li> |
| </ul>` |
| ------------------------------------- |
| var xiao = 'qiang'; |
| var age = 18; |
| var hobby = 'learn'; |
| ele.innerHTML = ` |
| <ul> |
| <li>${xiao}</li> |
| <li>${age}</li> # # 形式二 |
| <li>${hobby}</li> |
| </ul>` |
| |
| </script> |
| </body> |
1.3 数据的解构#
Copy Highlighter-hljs
| <script> |
| # 对象 |
| let obj = { |
| name : 'xiaoqiang', |
| age:18 |
| }; |
| # 类似于python的**打散 |
| let {name,age}=obj; # 要用一个对象{}来接收 |
| |
| console.log(name); |
| console.log(age) |
| </script> |
Copy Highlighter-hljs
| <script> |
| # 数组 |
| let arry = ['s','12']; |
| let [a,b] = arry; |
| |
| console.log(a); |
| console.log(b) |
| </script> |
1.4 箭头函数#
Copy Highlighter-hljs
| * 1 |
| <script> |
| let jiantou = x => x+1; |
| console.log(jiantou(5)) # 6 |
| // 省略了function关键字 |
| // 省略了return返回值 |
| </script> |
Copy Highlighter-hljs
| * 2 |
| <script> |
| function aa() { |
| console.log(this) # this的用法 |
| # 打印出的是window |
| } |
| aa() |
| </script> |
| # 函数的调用的全局的 window调用 |
Copy Highlighter-hljs
| * 3 |
| <script> |
| function aa() { |
| console.log(this) # {name: "xiaoqiang", aa: ƒ} |
| } |
| aa(); |
| |
| let obj = { |
| name : 'xiaoqiang', |
| aa:aa |
| }; |
| obj.aa() |
| </script> |
Copy Highlighter-hljs
| * 4 |
| <script> |
| function aa() { |
| console.log(this) ### |
| } |
| aa(); |
| |
| let obj = { |
| name : 'xiaoqiang', |
| aa:aa |
| }; |
| let obj2 = { |
| name: 'xiaoxiaoqiang', |
| obj:obj |
| }; |
| |
| obj.aa(); |
| obj2.obj.aa() |
| </script> |
| # this 取决于函数最近的调用者 |

1.5 类#
Copy Highlighter-hljs
| * 1 单纯的类 |
| <script> |
| # 定义类要是class,一定要加constructor |
| class Student{ |
| constructor(){ |
| this.name = 'xiaoqiang'; |
| |
| } |
| says(say){ |
| console.log(this.name + 'says'+ say) |
| } |
| } |
| // 实例化 要加 new;调用 |
| let xiaoxiao = new Student(); |
| xiaoxiao.says('I love China') |
| </script> |
Copy Highlighter-hljs
| * 2 类的继承 |
| <script> |
| ---------------------------------------- |
| class Student{ |
| constructor(){ |
| this.name = 'xiaoqiang'; |
| |
| } |
| says(say){ |
| console.log(this.name + 'says'+ say) |
| } |
| } |
| // 实例化 要加 new;调用 |
| let xiaoxiao = new Student(); |
| xiaoxiao.says('I love China') |
| ---------------------------------------- |
| ## ↓ 继承 constructor会报错,要加super |
| class Stu extends Student{ |
| constructor(){ |
| super(); |
| this.name = 'ganggang' |
| } |
| } |
| let gang = new Stu() |
| |
| gang.says('Me too') |
| </script> |
1.6 模块#
后期补
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现