预解析:在正式执行前,解析 var function;只有变量和函数,才会提升申明,并不会赋值。 解析是由顺序的,我们要了解清楚。从上至下,解析函数时,是解析函数块。
var a = 10; function a (){ }; //先得到 var a变量,然后解析 function a函数 a = 10;示例:
console.log(a); var a = 1; console.log(a); function a(){ console.log(2); } //输出 function 和 1 // 预解析后的代码,相当于如下所示。 var a ; function a(){……} ; console.log(a); a = 1; console.log(a);示例2:
console.log(a); console.log(a); function a(){ console.log(2); } var a = 1; // 输出 // function function示例:
var a = 1; function f1(){ var b = 2; function f2(){ var c = b; b = a; a = c; console.log(a,b,c); } f2(); } f1(); //输出 2 1 2示例2
var a = 1; function fn1(){ console.log(a); }; //输出 1实例3
function fn1(){ var a = 1; } fn1(); consloe.log(a) //报错示例4
var a = 1; function f1(){ console.log(a); a = 2; } f1(); console.log(a); //输出 1 2 var a = 1; function f1(){ console.log(a); var a = 2; } f1(); console.log(a); //输出 undefined 1 var a = 10; function fn1(){ var b = 2 * a; var a = 20; var c = a + 1; console.log(b); console.log(c); } fn1(); //输出 NAN 和21全局变量与局部变量同名时,全局变量不作用与局部变量的作用域。
块级作用域this 在执行的过程中,在变化,指向的是函数的拥有者。
在运行中的过程中,调用自己。在无限级处理时经常用到
function fn(num) { if (num <= 1) { return 1; }else { return num * fn(num - 1); } } fn(3); // 3 * 2 * 1递归示例
//setInterval(函数体,时间) 循环处理 var num = 5; setInerval(function(){ if(num >0){ num --; }else{ //跳转到其他页面 } },1000); //setTimeOut(函数体,时间) 延迟处理,运行一次就停下来 func(5) function func(num){ if(num > 0){ setTimeout(function(){ num --; func(); },1000) }else{ //跳转到主页 } }字体图标,比图片更加灵活;背景,放大,颜色等都可以
感觉这个布局这样写可以,那样写也可以,有没有一种更好,更专业呢? 更好的布局就是 需要根据交互式用户体验设计来做彼岸
