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每次都是单独一个变量,闭包)

你可能感兴趣的:(javascript,前端,vue.js)