js基础知识

1. beforeCreate
初始化界面前 : 在当前阶段data、methods、computed以及watch上的数据和方法都不能被访问。

2. created
初始化界面后 : 在实例创建完成后发生,当前阶段已经完成了数据观测,也就是可以使用数据,更改数据,在这里更改数据不会触发updated函数,也就是不会更新视图,SSR可以放这里。

3. beforeMount
挂载前 :完成模板编译,虚拟Dom已经创建完成,即将开始渲染。在此时也可以对数据进行更改,不会触发updated。

4. mounted
挂载完成 : 将编译好的模板挂载到页面 (虚拟DOM挂载) ,可以在这进行异步请求以及DOM节点的访问,在vue用$ref操作。

5. beforeUpdate
更新数据前 : 组件数据更新之前调用,数据都是新的,页面上数据都是旧的 组件即将更新,准备渲染页面 , 可以在当前阶段进行更改数据,不会造成重渲染。

6. updated
组件更新后 : render重新渲染 , 此时数据和界面都是新的 ,要注意的是避免在此期间更改数据,因为这可能会导致无限循环的更新。

7. beforeDestroy
组件卸载前 : 实例销毁之前,在当前阶段实例完全可以被使用,我们可以在这时进行善后收尾工作,比如清除计时器。

8. destroyed
组件卸载后 : 组件已被拆解,数据绑定被卸除,监听被移出,子实例也统统被销毁。

基础用法:
a.toString()
''+1010101
ParseInt()
JSON.stringfy()
JsON.parse()
Arr.reverse()//数组可以反转,字符串不行
str.split()
Arr.join()
Array.from(str)
arr.slice(startIndex,endIndex);,提取的是endTndex之前的元素,长度超过数组长度没有关系
arr.splice(index, deletelength,additem1.additem2);//添加是在index处添加,后面的元素整体下标加一,而不是在index-1之前加,注意index的变化。

Number.isInteger()//是否是小数;
解决函数引用传值:let new arr=JSON.parse(JSON.Stringfy(数组引用));

Throw后,后面的代码不会再执行,return 后调用者中后面的代码会再执行。throw要通过catch捕获,只有被catch捕获后,才不会影响继续往更上一级传递,不然会阻塞所有上级的代码运行。

修改变量,应该把所有变量涉及到的地方都改了
程序处理细节

Js形参可以直接改变值,不是只读的。
This指向window,this.name就是window里的var name的值,即window.name的值。this指向的当前函数调用的作用域,函数里的this.name可以到调用时this里去找。但是单独一个name是需要沿着变量作用域一级一级往上找的,就是函数定义时位置,一级一级往上找,同箭头函数,在这其中,作用域链只有函数作用域和全局作用域两种类型,对象没有作用域的概念。this可以指向对象。但是作用域链(变量及箭头函数)中对象不是作用域。

一个函数开创的私有作用域里的变量,如果被外界引用了,那么这个函数作用域不销毁。开创的变量即使只是return了,也因为是被这个函数创建的变量,属于该函数私有作用域,而不能马上销毁该私有作用域。


New后的对象,调用共有方法,谁调用的只想谁。原型调用的,this指向原型对象,如果实例调用,this指向实例对象。


正则匹配:
正则replace:
reg=/([^?&=]+)=([^&?=]+)/g
匹配=左右两边的字符串,但是截取的时候遇到?&=就截断掉,保留更小的字符串。g表示全局搜索,如果不用g,那么就只会匹配第一个。
url.replace(reg,function(){对每一项匹配reg的数据进行回调。})

变量提升,不管条件是否成立,都要先进行变量提升,用在if条件中。变量提升,变量声明才有变量提升。单独a=1。不存在变量提升。


在js的非严格模式下,arguments(实参集合)元素和形参一一映射,一方改变,另一方也会变化。严格模式下,映射关系不成立。

函数形参和私有变量同名,则两个同名变量是同一个,原来形参已经有了,就不再需要函数提升再声明了。
 

逻辑与的优先权高于逻辑或 0||2&&false||3

所有的事件绑定都是异步编程,所以for(var I=0;i<5;i++){οnclick=function(i);//异步编程,i已经等于5},使用for(let i=0;i<5;i++){let 形成块作用域,i每次都是单独一个变量,闭包)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7天用Go实现Web框架Gee教程

本文是学习模仿自https://geektutu.com/post/gee.html 在此基础上&#xff0c;加入自己的学习过程与理解 框架 设计框架之前&#xff0c;需要知道为什么需要使用框架&#xff0c;框架能解决什么问题。只有明白了这一点&#xff0c;才能设计出框架中的功能。 通俗来讲&#…

基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】

基于sprinmgboot实现实习管理系统的设计与实现演示 摘要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;实习管理也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;…

Unity 关于Input类的使用

Input类在我们游戏开发中需要获取外设设备&#xff08;比如键盘、鼠标、游戏手柄等&#xff09;进行交互时&#xff0c;基本都会用到。 它主要有以下一些常用的方法。 1、GetKey(KeyCode key)&#xff0c;检测按键是否被按下&#xff1b; 2、GetKeyDown(KeyCode key)&#x…

ubuntu2204 防火墙ufw限制某ip对某端口的访问

公司内部有个ip为10.10.10.1的网关&#xff0c;每天定时端口扫描&#xff0c;然后扫描发送的数据包http server解析不了&#xff0c;日志里就会记录这个错误&#xff0c;有点烦&#xff0c; 用防火墙过滤一下 ubuntu的防火墙命令是 ufw&#xff0c; 跟ufo挺像的&#xff0c;也…

基于helm的方式在k8s集群中部署gitlab - 升级(三)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署&#xff08;一&#xff09;&#xff0c;本篇重点对gitlab在k8s集群中进行升级 文章目录 1. gitlab 升级1.1 获取release1.2 下载目前版本的gitlab charts1.3 获取当前的values文件1.4 升级 2. gitlab数据库升级2.1 备份数…

SSRF漏洞防御:黑白名单的编写

文章目录 SSRF漏洞防御:黑白名单的编写黑名单的制作白名单的制作 SSRF漏洞防御:黑白名单的编写 以pikachu靶场中SSRF(crul)为例我们可以看到未做任何防御 我们查看源代码 黑名单的制作 思路: 什么内容不能访问 构造代码 $xyarray("file" > "",&q…

rdf-file:读写示例

<dependency><groupId>com.alipay.rdf.file</groupId><artifactId>rdf-file-core</artifactId><version>2.2.10</version> </dependency>一&#xff1a;读 一&#xff1a;写 写文件之正常写 协议布局模板 使用内置的布局文…

关于一个类中引用两外一个类中的变量和方法,一个技巧可以提高开发效率

import static com.xx.xx.util.ext.xx.toJson; import static com.xx.xx.util.ext.smf.Cert.certMgrClient; 第一个引用一个方法&#xff0c;第二个引用一个变量&#xff0c; 引用后就可以直接通过变量名或者方法名就行使用&#xff0c;很方便&#xff0c;不要通过class.方式调…

maven中scope和optional区别

文章目录 1. Scope&#xff08;作用范围&#xff09;&#xff1a;2. Optional&#xff08;可选项&#xff09;&#xff1a; 1. Scope&#xff08;作用范围&#xff09;&#xff1a; Maven的<scope>元素用于指定依赖项的作用范围&#xff0c;即依赖项在构建和运行时的可见…

【人工智能】它正在悄悄改变我的学习与生活,并试图改变我的全部!

前言 人工智能对我们的生活影响有多大&#xff1f;作为一名计算机研一的学生&#xff0c;一开学&#xff0c;学习使用ChatGTP便是我的第一个堂课。&#xff08;主要用于做作业&#x1f602;&#xff09; 我的本科毕业论文是在计算机视觉&#xff08;CV&#xff09;方向进行的…

bmp文件操作和详解

一 BMP文件格式 BMP&#xff08;Bitmap&#xff09;是Windows操作系统中的标准图像文件格式。 由于windows操作系统的发布时机远早于Linux、Android、IOS等操作系统&#xff0c;因此windows中很多数据格式和算法的标准也是当今所有操作系统必须要兼容的标准数据结构和算法。BM…

ubuntu下载vscode并运行程序

如有帮助点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; 好久没有在linux下编译c代码了&#xff0c;由于换了酷炫彩灯的电脑。又要重新安装一次喽。做个记录&#xff0c;可以帮助到有需要的人&#xff0c;接下来不要错过每一个步骤。 我们一起手把手运行…

虹科方案 | 如何破解CAN与车载以太网之间数据传输和协议转换的难题?

导读&#xff1a;在车辆网络时代&#xff0c;数据传输和协议转换在通信领域中扮演着至关重要的角色。它们不仅能够实现车辆内部系统之间的互联互通&#xff0c;还支持车辆与外部网络进行通信&#xff0c;从而为驾驶者带来更智能、便捷的驾驶体验。本文将介绍CAN总线与车载以太网…

3.数据结构

3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图&#xff0c;它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 3.1.1逻辑结构&#xff1a;线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中&#xff0c;数据按照…

大公司为什么喜欢centos系统写爬虫?

CentOS是一个基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建的开源操作系统&#xff0c;它受到大企业喜欢大多数因为他系统的稳定性&#xff0c;安全性以及兼容性等。可以为企业提供更多的商业支持。以我个人为例&#xff0c;公司在做爬虫数据抓取多是采…

element-ui 中 el-select 组件选择后不会自动关闭

在使用 el-select 组件时&#xff0c;打开 select 选择框后选择或点击其他元素后不会自动关闭 el-select 框的问题。 我们只需要将在操作后手动让 el-select 失去焦点即可收起下拉框。 <el-select v-model"value1" ref"selectRef" multiple placehold…

位操作/位运算

常用操作一&#xff1a; n 的二进制表示中第 k 位&#xff08;从0位开始算&#xff09;是几 基本思路 先把 n 第 k 位数字移到最后一位&#xff0c;用右移运算 n>>k看个位数字是几&#xff0c;其实就是 x & 1 实际就是&#xff1a;n>>k&1 //最低为从0…

学位论文撰写-经验

记录个人在撰写学位论文过程中遇到的一些问题. 论文敲完Latex后&#xff0c;即初稿完成后&#xff0c;要打印一版出来 &#xff0c;看一下每个章节开头是否放在了奇数页&#xff0c;因此&#xff0c;把文章打印出来看&#xff0c;会方便一些。写完初稿之后&#xff0c;请同学帮…

王者小游戏作业

一、创建好文件、包、类、插入图片文件夹 二、beast包 1、Bear类 package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\陆先生\\Desktop\\王者荣耀图片…

前置任务之安装jdk

已经安装过很多次了&#xff0c;但是每次安装都要搜好几次才能找到正确的&#xff0c;离大谱。 1.打开 oracle官网 https://www.oracle.com 然后切换到Java archive 下载192版本的&#xff0c;页面搜索ctrlF&#xff0c;【Java SE Development Kit】或者【jdk-8u192-windows-…