当前位置:网站首页>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) 伪数组不可以
- 真实数组的本质就是数组 伪数组的本质是对象

如何把伪数组转换为真实的数组呢?
![]()
边栏推荐
- 如临现场的视觉感染力,NBA决赛直播还能这样看?
- For example, the visual appeal of the live broadcast of NBA Finals can be seen like this?
- JS基础10
- ThreadLocal的简单理解
- 阿里三面:LEFT JOIN关联表中用ON还是WHERE跟条件有什么区别
- 2022中国信通院首届业务与应用安全发展论坛成功召开!
- [practice] 1364- implement a perfect waterfall flow component on the mobile terminal (with source code)
- 爱可可AI前沿推介(6.28)
- JS foundation 3
- Does flink1.15 support MySQL views? I configured the view name at the table name to save, but the table could not be found. Think
猜你喜欢

Redis6 1: what problems can be solved by the introduction of NoSQL and redis?
![[monkey] Introduction to monkey test](/img/70/5a7152d0b6b77df7f9d6ad0e09e000.png)
[monkey] Introduction to monkey test

网页提示此站点不安全解决方案

Making and using of static library

JS foundation 1-js introduction and operator

Practice and Thinking on the architecture of a set of 100000 TPS im integrated message system

Metersphere implements UI automation elements that are not clickable (partially occluded)

动态库(共享库)的制作和使用

Dataease installation upgrade
![[practice] 1364- implement a perfect waterfall flow component on the mobile terminal (with source code)](/img/e8/21d8d81a3d7b544687d6adc06ad4b1.png)
[practice] 1364- implement a perfect waterfall flow component on the mobile terminal (with source code)
随机推荐
东方财富手机股票开户哪个券商更安全更方便?
行业分析| 快对讲,楼宇对讲
Does flink1.15 support MySQL views? I configured the view name at the table name to save, but the table could not be found. Think
JS foundation 3
Debug debugging in katalon
Apache2配置对目录拒绝访问,但是可以访问里面文件的设置
动态库(共享库)的制作和使用
合约量化系统开发(搭建讲解)丨合约量化系统开发(源码解析及现成案例)
MySQL installation configuration and solving the problem of forgetting root password when reinstalling MySQL
MySQL (III)
【agora】get 一个 agora_refptr 对象的用法示例
[monkey] Introduction to monkey test
Recommended practice sharing of Zhilian recruitment based on Nebula graph
Mysql使用max函数查询不到最大值
Katalon framework tests web (XX) custom keywords and upload pop-up operations
JS foundation 6
Docker modifies the user name and password of MySQL
Splicing strings in the string collection_ Stream based
Training notice | special training notice on epidemic prevention and security prevention for overseas Chinese funded enterprises, institutions and personnel in 2022
When an entity is converted to JSON, the field with null value is lost