当前位置:网站首页>day36 js笔记 ECMA6语法 2021.10.09
day36 js笔记 ECMA6语法 2021.10.09
2022-06-28 11:20:00 【即将成为大佬的小梦】
ES6中新增声明变量的关键字:let、const
let的使用:
- 不可以重复定义,可以重新赋值
- 不能进行预解析、变量提升
- 块级作用域
- 不在window上
const创建变量的使用:
- 创建的是一个常量(不可改变的量)
- 不可以重新定义和赋值的!!!
- 不能进行预解析、变量提升
- 块级作用域
- 不在window上
同步和异步的概念:
- 同步:做完一件事情后才能去做另一件事情
- 异步:可以同时去做多件事情
永远都是同步先执行 当同步执行完毕后才会执行异步代码
- 同步代码: js代码
- 异步代码: js代码中一些特殊情况 延时器、定时器
箭头函数:为了简写之前学习的函数(只有匿名函数才可以写成箭头函数)
函数的创建方式
- 声明式 function fn(){}
- 赋值式 var fn = function(参数){执行的代码} 匿名函数
箭头函数的写法:
- var fn = (参数) => {执行的代码}

有多个参数时:

参数只有一个时:(小括号可省略)

拓展:再简写 大括号也可以删了:大括号内如果只有一句代码的时候 大括号和return都可以删除
箭头函数的特点:不支持arguments,不绑定this,没有自己的this 使用外部的this。
何时用箭头函数:
// 1、不涉及this绑定时,如果在函数中 需要明确的this绑定 则不能或者不推荐用箭头函数,例如 事件函数不要用箭头函数、
// 2、回调函数 由第三方调用 一般没有明确this(window), 可以箭头函数,例如 很多高阶方法(forEach、map、find等)
函数的自执行(自执行函数、立即调用):任何在执行的时候都会创建一个执行上下文(语境),因为函数声明的变量只能在函数的内部使用 这时候上下文在调用函数的时候 就可以给我们创建自由或者私有变量进行使用
执行上下文的解释(js代码执行的环境):
- 全局执行上下文:浏览器创建 window
- 函数执行上下文:谁调用我 我就指向谁 - 调用栈
- eval执行上下文:js不推荐使用 不做讨论
自执行函数的用法:
- 只有匿名函数才能使用自执行方式
自执行如何去写:
- 匿名函数 var fn = function(){}
- 自执行就表示打开浏览器的时候直接调用函数
注意:
- 写自执行函数的时候 要把函数体用一个小括号包起来 函数表达式

- 函数自执行为什么要用?

解构赋值:快速的将对象中的每个值拿到然后再赋值给一个变量
- var/let/const {变量名称1,变量名称2,...} = 对象名称
注意:
- 变量名称要和对象中的键名字一样
- 给变量名取别名 var/let/const {变量名称1:别名1,变量名称2:别名2,...} = 对象名称

解构赋值-数组
- var [变量名称1,变量名称2,...] = 数组名称

模板字符串:` ` (反引号)
关于模板字符串的好处:
- 方便好用 可以在当前的反引号随意书写
- 重点: 可以不再用字符串拼接获取到你的数据 可以使用一个方法解析变量 ${变量名称}

对象的简写:

字符串新增的方法:
字符串.startsWith(字符) // 判断字符串是否由某个字符开头
字符串.endsWith(字符) // 判断字符串是否由某个字符结尾
字符串.includes(字符) // 判断字符串是否包含某个字符
展开/合并运算符: ...
- 将数组展开显示 ...数组名字

合并运算符:

this的指向问题:
- 在普通函数中指向 window
- 在事件函数中指向 事件源
- 在定时器中指向是 widnow
- 在自执行函数中指向 window

箭头函数中是没有this指向的 往上级查找


改变this指向的方法一:call方法
- 函数.call(想要改变的指向 - 指向谁写谁)
- 如果需要传参的时候 在参数1后面书写其他参数即可

改变this指向的方法二:apply方法
- 函数.apply(想要改变的指向 - 指向谁写谁)
- 如果需要传参的时候 在参数1后面书写其他参数即可

改变this指向的方法三:bind方法
- 函数.bind(想要改变的指向 - 指向谁写谁)
- 如果需要传参的时候 在参数1后面书写其他参数即可
- bind方法相当于把当前的函数复制了一份 需要用一个新的变量进行接收

伪数组:
- 伪对象(伪元素):假的标签结构 虚拟的dom结构
- 伪类:hover 改变元素状态
伪数组:真实开发中基本不用 但是面试会经常文伪数组是什么 和数组之间的区别是什么
- 伪数组看起是数组 但是本质不是数组 本质是对象
- 伪数组最常表现的形式是获取dom结构 don结构的集合就是最常见的伪数组
参考答案:伪数组和真实数组的区别是什么?
- 真实数组是可以改变长度的 伪数组不可以
- 真实数组是可以使用方法的(push、pop) 伪数组不可以
- 真实数组的本质就是数组 伪数组的本质是对象

如何把伪数组转换为真实的数组呢?
![]()
边栏推荐
- 一套十万级TPS的IM综合消息系统的架构实践与思考
- 合约量化系统开发(搭建讲解)丨合约量化系统开发(源码解析及现成案例)
- Oracle 日期格式化异常:无效数字
- Secretary of the Ukrainian national security and National Defense Commission: will carry out precision strikes against targets in Russia
- Mysql安装配置以及解决重装Mysql时忘记root password问题
- JS foundation 2
- 选择哪种编程语言,会吸引优秀的人才?
- Scientific research - web of science retrieval skills
- Graduation season, some suggestions for you who are new to the society
- Move command
猜你喜欢

TiDB v6.0.0 (DMR) :缓存表初试丨TiDB Book Rush

如临现场的视觉感染力,NBA决赛直播还能这样看?

Get current system date

Making and using of dynamic library (shared library)

《运营之光3.0》全新上市——跨越时代,自我颠覆的诚意之作!

远程登录sshd服务

Word、PDF、TXT文件实现全文内容检索需要用什么方法?

Yann LeCun新论文:构建自动智能体之路

Scientific research - web of science retrieval skills

Making and using of static library
随机推荐
Secretary of the Ukrainian national security and National Defense Commission: will carry out precision strikes against targets in Russia
Download and install mysql5.7 for windows 10
买股票在中金证券经理的开户二维码上开户安全吗?求大神赐教
Spatial-Temporal时间序列预测建模方法汇总
【SemiDrive源码分析】【X9芯片启动流程】32 - DisPlay模块分析 - RTOS侧
JS基础2
[monkey] Introduction to monkey test
[semidrive source code analysis] [x9 chip startup process] 32 - play module analysis - RTOS side
ProCAST有限元铸造工艺模拟软件
科研丨Web of Science检索技巧
零基础自学SQL课程 | IF函数
Move command
2022 open source software security status report: over 41% of enterprises do not have enough confidence in open source security
关于Pytorch中双向LSTM的输出表示问题
毕业季 新的开始
Blue Bridge Cup Maze (dfs+ backtracking)
Making and using of dynamic library (shared library)
[practice] 1364- implement a perfect waterfall flow component on the mobile terminal (with source code)
This Exception was thrown from a job compiled with Burst, which has limited exception support. 报错
JSON module, hashlib, Base64