day36 js笔记 ECMA6语法 2021.10.09

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) 伪数组不可以

- 真实数组的本质就是数组 伪数组的本质是对象

 

 如何把伪数组转换为真实的数组呢?

 

Supongo que te gusta

Origin blog.csdn.net/weixin_50163576/article/details/120700859
Recomendado
Clasificación