JavaScript语句
-
if语句
if (i > 25)
alert("Greater than 25."); // 单行语句
else {
alert("Less than or equal to 25."); // 代码块中的语句
}
-
do-while语句
var i = 0;
do {
i += 2;
} while (i < 10);
alert(i);
-
while语句
var i = 0;
while (i < 10) {
i += 2;
}
-
for语句
var count = 10;
for (var i = 0; i < count; i++){
alert(i);
}
由于 ECMAScript 中不存在块级作用域(第 4 章将进一步讨论这一点),因此在循环内部定义的变量也可以在外部访问到。例如:
var count = 10;
for (var i = 0; i < count; i++){
alert(i);
}
alert(i); //10
-
for-in语句
for (var propName in window) {
document.write(propName);
}
-
break和continue语句
var num = 0;
for (var i=1; i < 10; i++) {
if (i % 5 == 0) {
break;
}
num++;
}
alert(num); //4
for (var i=1; i < 10; i++) {
if (i % 5 == 0) {
continue;
}
num++;
}
alert(num); //8
-
switch语句
switch (expression) {
case value: statement
break;
case value: statement
break;
case value: statement
break;
case value: statement
break;
default: statement
}
switch (i) {
case 25:
alert("25");
break;
case 35:
alert("35");
break;
case 45:
alert("45");
break;
default:
alert("Other");
}
JavaScript函数
function functionName(arg0, arg1,...,argN) {
statements
}
function diff(num1, num2) {
if (num1 < num2) {
return num2 - num1;
} else {
return num1 - num2;
}
}
- 不能把函数命名为 eval 或 arguments;
- 不能把参数命名为 eval 或 arguments;
- 不能出现两个命名参数同名的情况。
-
理解参数
function sayHi() {
alert("Hello " + arguments[0] + "," + arguments[1]);
}
-
没有重载
function addSomeNumber(num){
return num + 100;
}
function addSomeNumber(num) {
return num + 200;
}
var result = addSomeNumber(100); //300
vue生命周期
-
定义
Vue 实例从创建到销毁的过程,就是生命周期。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程,我们称这是 Vue 的生命周期。
-
阶段及作用
beforeCreate(创建前,只执行1次)
在数据观测和初始化事件还未开始。data,method 还没有初始化,不能使用,不能调用
created(创建后,只执行1次)
完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来。data,method 初始化,能使用,能调用,请求服务器的数据,并把数据转存到data中,供template模板渲染时使用
beforeMounted(挂载前,只执行1次)
在挂载开始之前被调用,相关的render函数首次被调用。实例已完成以下的配置:
编译模板,把data里面的数据和模板生成html。此时还没有挂载html到页面上。
模板初始化,没有渲染
mounted(挂载后,只执行1次)
在el被新创建的vm.$el 替换,并挂载到实例上去之后调用。实例已完成以下的配置:
用上面编译好的html内容替换el属性指向的DOM对象。完成模板中的html渲染到html页面中。此过程中进行ajax交互。
模板渲染到页面上
beforeUpdate(更新前,可执行0~无限次)
在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。
更新数据之前做的事情
updated(更新后,可执行0~无限次)
在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时,组件DOM已经更新,所以可以执行依赖于DOM的操作。然而在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。
更新完数据会调用这个方法,每次都会。
beforeDestroy(销毁前,只执行1次)
在实例销毁之前调用。实例仍然完全可用。将要销毁组件,但尚未销毁,组件仍然是正常工作状态。
destroyed(只执行1次)
在实例销毁之后调用。调用后,所有的时间监听器都会被溢出,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。
组件已被销毁,浏览器中对应的dom已完全被销毁
-
总结