欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 修仙

陳思宇1年前10瀏覽0評論

Javascript 修仙指南

在前端技術的世界里,除了HTML、CSS以外,還有一門非常重要的語言,那就是Javascript。如果你是一名前端工程師,那么你一定需要深入學習Javascript。但是僅僅掌握基本語法和常用庫是遠遠不夠的,今天我們來談一談如何在Javascript中修仙。

第一層:閉包知識

var count = 0;
function test() {
var num = count;
setTimeout(function(){
alert(num);
}, 1000);
count++;
}
test(); //彈出0
test(); //彈出1
test(); //彈出2

當您運行上面的代碼時,輸出的結果不是您想象的3個0。這是因為setTimeout函數(shù)中的匿名函數(shù)形成了閉包,num在內部函數(shù)中保留了其最初的值。

第二層:作用域知識

var a = 10;
function test() {
var a;
alert(a);
a = 5;
alert(a);
}
test(); //輸出undefined和5

當變量a既被聲明在函數(shù)中,也被聲明在全局中時,函數(shù)中的a將會覆蓋全局中的a。輸出結果如上。

第三層:原型鏈知識

function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayName = function() {
alert(this.name);
}
function Student(name, age, school) {
Person.call(this, name, age);
this.school = school;
}
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
var student1 = new Student("張三", 18, "清華大學");
student1.sayName(); //張三

在上面的代碼中,我們使用構造函數(shù)、原型鏈的繼承方式創(chuàng)建了一個Student對象,并能夠正確地引用Person對象中的成員方法。

第四層:異步Promise知識

function asyncFunction() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('async finish!');
}, 1000);
});
}
asyncFunction().then(alert); // 1秒后輸出'async finish!'

當我們使用asyncFunction()函數(shù)時,它返回一個異步Promise對象,可以使用then方法鏈式調用。使用Promise非常方便地處理異步任務。

以上就是Javascript修仙的四大層次,掌握了這些知識,您將會成為一名優(yōu)秀的前端工程師。