欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-12 19:51 作者:bili_63109505244  | 我要投稿

## 事件委托

+ 什么是事件委托

+ 如何实现事件委托

+ 事件委托优点

## 阻止冒泡

+ 什么是冒泡 && 什么时候需要实现冒泡

+ 如何实现

## 阻止默认事件

+ 什么是默认事件

+ 如何实现

+ 获取目标元素

+ 获取父元素

+ 获取元素的标签名



## this关键字

+ this出现在事件处理函数里面 this代表的是当前的事件源

+ 普通函数内部的this看调用

+ 箭头函数内部的this看定义

+ 可以强制修改一个普通函数内部的this, 有三种方式可以修改一个函数内部的this指向

    - call

        + 函数名.call(新this的指向, 参数01, 参数02,...)

    - apply

        + 函数名.apply(新this的指向, [参数01, 参数02, ...])

    - bind

        + var 新函数 = 函数.bind(新this的指向)

        + 新函数(参数01, 参数02, ...)

+ call、apply、bind的区别

    + call、apply在改变函数this的同时会调用这个函数 bind只会改变this 不会调用函数 会返回一个修改this之后的新函数 需要自己去调用这个新函数

    + call和apply的传参方式不一样



## es6

+ ECMAscript 简称 es  标准语法

+ es5

+ es1.0  1997

+ es2.0  1998

+ es3.0  1999

+ es5.0  2008 es3.0-->es3.1-->es5

+ 2015 年 6 月  es6  官方称呼这个版本es2015

+ 2016  es2016 --> es7

+ ...

+ 2023  es2023 --> es14


### let和const

+ let是声明变量的一种新方式

+ let和var的区别

    1. 作用域不一样

    2. let不会声明提升 var有声明提升(不能提前使用let变量)

    3. let不允许重复声明(let声明的时候看有没有定义过)

    4. 暂时性死区


+ const是声明常量的一种方式

+ const有没有块级作用域概念


### 箭头函数

+ 定义函数

    - es5(普通函数 带function函数)

        + 声明式定义

            ```js

                function 函数名(形参,形参){


                }

            ```

        - 赋值式定义

            ```js

                var 函数名 = function(形参,形参){


                }

            ```

    - es6 箭头函数

        ```js

            var 函数名 = (形参,形参) => {


            }

        ```

+ 箭头函数简写

    - 当箭头函数内部的代码`只有一行`的时候  花括号可以省略不写

    - 当箭头函数`只有一个形参`的时候 小括号可以省略不写

+ 箭头函数解决this指向不固定的问题

+ 箭头函数和普通函数的区别

    1. 内部的this指向不一样

    2. 箭头函数内部this无法修改

    3. 箭头函数内部没有arguments

    4. 箭头函数无法当做构造函数



### 函数默认参数


### 函数的剩余参数rest parmater


### 解构赋值

+ 主要用于取出数组或者对象里面的值将它赋值给一个变量

+ var [变量名, 变量名, ...] = 数组名

+ var {键名:别名, 键名: 别名, 键名} = 对象名



### 展开运算符

+ `...`

+ 用于合并数组和对象


### 模块化语法

+ 模块: 在项目开发中每一个文件就是一个独立的模块 由多个模块组成一个整体 构成一个项目

+ 模块化管理: 将我们独立每一个文件进行整合

+ css模块化

+ js模块化(esm) es6 module语法

    + 导入

        - 单个导入

        ```js

            import {a, fn} from '路径'

        ```

        - 默认导入

        ```js

            import 变量名 from '路径'

        ```

    + 导出

        - 单个导出

        ```js

            export var a = 1

            export const fn = ()=>{}

        ```

        - 默认导出

        ```js

            export default {

                aaa: 1,

                fnn: ()=>{}

            }

        ```

+ `Cannot use import statement outside a module` 导入了一个js 这个js用到了import命令 这个命令浏览器是不识别的 需要告诉浏览器 我是使用了import命令 你要帮我解析 在加载这个js的script标签里面添加一个`type=module`


+ `Access to script at 'file:///D:/%E6%95%99%E5%AD%A6/2302/week03/day04/%E4%BB%A3%E7%A0%81/js%E6%A8%A1%E5%9D%97%E5%8C%96/index.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, isolated-app, chrome-extension, chrome, https, chrome-untrusted.` 一旦开始type=module模式 本地打开的网页不支持 需要在服务器环境打开这个页面 需要安装live server利用live server打开这个页面即可


+ 虽然此时我们已经可以成功在一个js里面加载另一个js 但是注意每一个js都相当于是一个独立的作用域 单纯的导入只是将文件执行了 并不能说就能够使用导入文件里面的数据


+ 如果我们想要使用导入文件里面的数据 就要导入文件要导出  在数据前面加上`export`就导出了这个数据

+ 导入的时候需要接受数据


### 作用域

+ es5作用域

    - 全局作用域

    - 局部作用域

+ es5变量

    - 全局变量

    - 局部变量


+ es6作用域

    - 全局作用域

    - 局部作用域

    - 块级作用域

        + 花括号内部


+ es6变量

    - 全局变量

    - 局部变量

    - 块级变量

        + 在块级作用域里面用`let声明`的变量被称为块级变量 块级变量只能在当前块级作用域内部使



千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律