前端知识点03(JS)

文章目录

    • 前端知识点03(JS)
        • 1、JS中this指向问题
        • 2、script中的async和defer的区别
        • 3、setTimeOut和setInterval
        • 4、Es6和ES5的区别
        • 5、ES6的新特性
      • 🎉写在最后

前端知识点03(JS)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述
💥个人主页:code袁
💥 所属专栏:Java

1、JS中this指向问题
1.全局对象中的this指向,指向的是window
2.全局作用域或者普通函数中的this指向window
3.this永远最后调用它的对象 
4.new 关键词改变了this关键词的指向
5.apply,call,bind 可以改变this的指向
6.箭头函数中的this
   它的指向在定义时候已经确定了
   箭头函数它就没有this,看外层是否有函数,如果有则是外层函数的this,没有则是window
7.匿名函数中的this,永远指向window匿名函数的执行具有全局性
2、script中的async和defer的区别
<script>标签中,async和defer是用来控制脚本加载和执行的两个属性,它们的主要区别如下:

1. async:
   - 当浏览器遇到带有async属性的<script>标签时,会异步加载并执行脚本,不会阻止页面的解析和渲染。
   - 脚本加载完成后会立即执行,不会按照在页面中出现的顺序执行。
   - 如果多个带有async属性的脚本之间有依赖关系,执行顺序不确定,可能会出现问题。
   - 适合无序执行的独立脚本,如统计代码等。

2. defer:
   - 当浏览器遇到带有defer属性的<script>标签时,会异步加载脚本,但会等到文档解析完成后按照在页面中出现的顺序执行脚本。
   - 脚本会在DOMContentLoaded事件触发前执行,保证脚本在文档解析完成前执行。
   - 多个带有defer属性的脚本会按照在页面中出现的顺序依次执行。
   - 适合有序执行的脚本,如页面初始化脚本等。

总的来说,async属性会并行加载脚本并立即执行,而defer属性会异步加载脚本但会按照在页面中出现的顺序执行。
开发者可以根据脚本的执行顺序和依赖关系选择合适的属性来优化页面加载和性能。
3、setTimeOut和setInterval
1.SetTimeOut的最小执行时间是4ms(执行一次)
第一个参数是一个函数或要执行的代码块。
第二个参数是延迟的时间,即多少毫秒后执行该函数或代码块。
   setTimeout(function(){
      console.log("111")
    },2000);
    
2.setInterval最小执行时间是10ms(设置时间后重复执行)
第一个参数是一个函数或要执行的代码块。
第二个参数是时间间隔,即多少毫秒后重复执行该函数或代码块。
    setInterval(function () {
      console.log("22");
    }, 8000);
使用setInterval时要谨慎,确保不会出现任务堆积的情况,可以在每次执行时检查是否需要终止定时器。
如果不再需要重复执行某个任务,可以使用clearInterval函数来清除定时器。
4、Es6和ES5的区别
ES5(ECMAScript 5)是JavaScript的第五个版本,而ES6(ECMAScript 2015)是JavaScript的第六个版本,也被称为ES2015。
它们之间的主要区别包括以下几点:

1.语法特性:
   - ES6引入了一些新的语法特性,如let和const关键字用于声明变量、箭头函数、模板字符串、解构赋值、类和模块等。
   - ES6提供了更多的语法糖和便利的语法,使得代码更加简洁和易读。

2. 新增的功能:
   - ES6引入了一些新的功能,如Promise对象用于处理异步操作、Generator函数用于实现迭代器、Map和Set数据结构、Symbol数据类型
   - 等。
   - ES6提供了更多的内置方法和数据结构,使得开发更加方便和高效。

3. 模块化:
   - ES6引入了模块化的概念,通过export和import关键字可以方便地导出和导入模块,实现模块化开发。
   - ES6的模块化机制比起ES5中的CommonJS和AMD更加现代化和标准化。

4. 类和继承:
   - ES6引入了class关键字用于定义类和面向对象编程,提供了更加清晰和简洁的类和继承机制。
   - ES6的类和继承机制更加符合传统面向对象编程的思想。

5. 其他改进:
   - ES6对函数的参数处理、数组的操作、字符串的处理等方面进行了改进和增强。
   - ES6提供了更多的内置方法和工具,使得开发更加便利和高效。

总的来说,ES6相对于ES5来说引入了更多的新特性和功能,使得JavaScript语言更加现代化、强大和易用。
开发者可以根据项目需求选择使用ES5或ES6来编写代码。
5、ES6的新特性
1.新增块级作用域(let const)
   引入了块级作用域的let和const关键字,取代了var关键字,提供了更好的变量声明和管理方式。
2.新增定义类的语法糖(class)
   引入了class关键字用于定义类和面向对象编程,提供了更加清晰和简洁的类和继承机制。
3.新增基本数据类型(symbol)
   引入了Symbol数据类型,用于创建唯一的标识符,防止属性名冲突。
4.新增了解构赋值
   引入了解构赋值语法,可以快速提取数组和对象中的值,简化了变量赋值操作。
5.新增函数参数的默认值
6.给数组新增api
7.对象和数组新增扩展运算符
8.新增模块化(import export)
   引入了模块化的概念,通过export和import关键字可以方便地导出和导入模块,实现模块化开发。
9.新增了set和map数据结构
   引入了Map和Set数据结构,提供了更加灵活和高效的数据存储和操作方式。
10.新增了generator
   引入了Generator函数用于实现迭代器,可以通过yield关键字暂停和恢复函数的执行。
11.新增箭头函数
   `引入了箭头函数语法,简化了函数的书写,同时改变了this的指向`

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/473925.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud-Feign远程调用

使用Feign替代RestTemplate进行远程服务调用&#xff1a; 远程调用配置 1. 引入依赖 我们在order-service服务的pom文件中引入feign的依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starte…

spring MVC是如何找到html文件并返回的?

Spring MVC 搜索路径 启动一个SpringBoot项目时&#xff0c;访问http://localhost:8080&#xff0c;对于SpringMVC&#xff0c;它会默认把这段url看成http://localhost:8080/index.html&#xff0c;所以这两个url是等价的。 .html, .css, .js, .img …都是静态资源文件&#x…

玩转C语言——C语言中内存存储

一、 整数在内存中的存储 我们知道&#xff1a;整数的2进制表⽰⽅法有三种&#xff0c;即 原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&#xff0c;⽽数值位最 ⾼位的⼀位是被当做符号位&#xff0c;…

(学习日记)2024.03.14:UCOSIII第十六节:时间片

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

编曲学习:如何编写钢琴织体 Cubase12逻辑预置 需要弄明白的问题

钢琴织体是指演奏形式、方式,同一个和弦进行可以用很多种不同的演奏方法。常用织体有分解和弦,柱式和弦,琶音织体,混合织体。 在编写钢琴织体前,先定好歌曲的调。 Cubase小技巧:把钢琴轨道向上拖动打和弦轨道,就可以显示和弦!如果你有一些参考工程,不知道用了哪些和…

PG中一个表的3~8个文件是怎么来的?

个人简介 微信公众号&#xff1a;数据库杂记 个人微信: _iihero 我是iihero. 也可以叫我Sean. iiheroCSDN(https://blog.csdn.net/iihero) Sean墨天轮 (https://www.modb.pro/u/16258) iiherozhihu (https://www.zhihu.com/people/zhou-mo-xu) 数据库领域的资深爱好者一枚。…

关于vue3的自定义hook

把一些逻辑写在单独的ts文件里&#xff0c;vue文件使用的时候引入即可 计算属性 1、方法1&#xff1a;return计算属性 直接写出去的话&#xff0c;使用时报错 ExpirationTime是一个计算属性&#xff0c;若直接在html上使用{{ExpirationTime(orderForm)}}报错 查阅资料显示&…

Go --- Go语言垃圾处理

概念 垃圾回收&#xff08;GC-Garbage Collection&#xff09;暂停程序业务逻辑SWT&#xff08;stop the world&#xff09;程序根节点&#xff1a;程序中被直接或间接引用的对象集合&#xff0c;能通过他们找出所有可以被访问到的对象&#xff0c;所以Go程序的根节点通常包括…

UE5的渲染-太难了

大家可以看到&#xff0c;这些都是UE的渲染&#xff0c;非常漂亮惊叹&#xff0c;渲染已经非常成熟&#xff0c;这些画面并不是离线渲染&#xff0c;而是实时渲染。早先年我们渲染CG动画都采用离线渲染&#xff0c;要用到庞大的渲染农场&#xff0c;每渲染一帧都可能需要半个小…

【Maven】使用maven-jar、maven-assembly、maven-shade优雅的实现第三方依赖一同打Jar包

文章目录 一.前言二.常规Jar 打包&#xff1a;maven-jar-plugin三.Shade 打包&#xff1a;maven-shade-plugin1.如何使用2.将部分jar包添加或排除3.将依赖jar包内部资源添加或排除4.自动将所有不使用的类排除5.将依赖的类重命名并打包进来 &#xff08;隔离方案&#xff09;6.修…

VMware中UbuntuServer扩展硬盘空间

VMware中UbuntuServer扩展硬盘空间 没有不可治愈的伤痛&#xff0c;没有不能结束的沉沦&#xff0c;所有失去的&#xff0c;会以另一种方式归来 ——【约翰-肖尔斯】 第一步 lxalxa:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 …

从边缘设备丰富你的 Elasticsearch 文档

作者&#xff1a;David Pilato 我们在之前的文章中已经了解了如何丰富 Elasticsearch 本身和 Logstash 中的数据。 但如果我们可以从边缘设备中做到这一点呢&#xff1f; 这将减少 Elasticsearch 要做的工作。 让我们看看如何从具有代理处理器的 Elastic 代理中执行此操作。 E…

JDK,Nginx,Redis安装

创建develop目录 mkdir /usr/local/develop/ cd /usr/local/develop 下载 wget http://nginx.org/download/nginx-1.17.4.tar.gz yum install git git clone https://github.com/arut/nginx-rtmp-module.git 解压文件 tar zxmf nginx-1.17.4.tar.gz 进入解压目录 cd ng…

flutter 局部view更新,dialog更新进度,dialog更新

局部更新有好几种方法&#xff0c;本次使用的是 StatefulBuilder 定义 customState去更新对话框内容 import package:flutter/cupertino.dart; import package:flutter/material.dart;class ProgressDialog {final BuildContext context;BuildContext? dialogContext;double _…

关系型数据库mysql(2)SQL语句

目录 一.SQL语句简介 1.1SQL语言 1.2SQL语句分类 1.3SQL分类 1.4SQL 语言规范 二.数据库基本操作 2.1查看数据库中的库信息 2.2查看数据库中的表信息 数据库内查看 数据库外查看 2.3显示数据库的结构&#xff08;字段&#xff09; ​编辑 2.4 字段属性 2.5常见的数…

音频和视频标签

音频用audio标签 controls表示控制栏 loop循环播放音频 autoplay自动播放&#xff08;浏览器基于隐私一般不支持&#xff09; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Com…

sonar接入maven项目

1、介绍 sonar是一款静态代码质量分析工具&#xff0c;支持Java、Python、PHP、JavaScript、CSS等25种以上的语言&#xff0c;而且能够集成在IDE、Jenkins、Git等服务中&#xff0c;方便随时查看代码质量分析报告。他有如下特性 (1) 检查代码是否遵循编程标准&#xff1a;如命…

[BT]BUUCTF刷题第2天(3.20)

第2天&#xff08;共5题&#xff09; Web [ACTF2020 新生赛]Exec Payload&#xff1a;target127.0.0.1;cat /flag 分号;在许多shell中用作命令分隔符&#xff0c;意味着在执行完前一个命令&#xff08;这里是设置target变量&#xff09;后&#xff0c;接着执行cat /flag命令…

Spark-Scala语言实战(4)

在之前的文章中&#xff0c;我们学习了如何在scala中定义无参&#xff0c;带参以及匿名函数。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 Spark-Scala语言…

IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX

最近在做一个功能的时候想看一个库的源码&#xff0c;结果源码下不下来&#xff0c;报Cannot download sources Sources not found for:XXX,网上搜了半天&#xff0c;也找不到靠谱的结论 后来想了下&#xff0c;应该是镜像那边出了问题&#xff0c;把镜像一删&#xff0c;源码…