(2)js 中的new()到底做了些什麼?
要建立某的新例項 ,必須要使用new 操作符。以這種方法呼叫建構函式實際上會經 歷以下四個步驟:
1,建立乙個新物件
2,將建構函式的作用域賦給新物件(因此this就指向這個新物件)
3,執行建構函式中的**(為這個新物件新增屬性)
4,返回新物件
var obj = {};
obj.proto = base.prototype;
base.call(obj);
(3)什麼是作用域
作用域就是變數或函式的可訪問範圍。它控制著變數或函式的可見性和宣告週期。
在js中,變數或函式的作用域可分為:
1,函式作用域,只在當前函式內可訪問
2,全域性作用域,一經定義,**的任何位置都可以訪問
var n = 100; //全域性變數n
function(n)
fun (n); //按值傳遞,方法中輸出97
console.log(n); //輸出全域性變數的值100
(4) 以下問題的輸出是什麼:(閉包)
for ( var i = 0; i < 5 ; i ++ ), i * 1000);
}解釋你的答案。如何在這裡使用閉包。
顯示的**示例不會顯示值 0,1,2,3和4,這可能是預期的;而是顯示5,5,5,5。
這是因為迴圈體內執行的每個函式將在整個迴圈完成後執行,因此所有函式都會引 用儲存在i中的最後乙個值,即5.
通過為每次迭代建立乙個唯一的作用域,可以使用閉包來防止這個問題,並將改變量的每個唯一值儲存在其作用域中,如下所示:
for ( var i = 0; i < 5 ; i ++ ), x * 1000);
})(i);
}這會產生將0,1,2,3,4記錄到控制台的可能結果。
在es2015上下文中,可以用let 代替var
for ( let i = 0; i < 5 ; i ++ ), i * 1000);
}(5)只利用 a,b 實現a , b 交換:
a = a + b;
b = a - b ;
a = a - b ;
也可以利用乘除,但是在a b 中不能有0 。
方法是:
a = a * b;
b = a / b;
a = a / b;
js日常總結
1.html如何引入css和js檔案 2.jquery常用操作 html 方法的返回和設定被選元素的內容 inner html js findindex和tostring結合使用查詢當前的item是處於陣列中第幾項 table list 1,1,2,35,5,9 document ready fun...
git日常問題
在2016年的時候,我建立了自己的github,當時只是跟風,覺得大家都在使用github,自己也要有乙個,其次就是想有乙個自己的部落格,閨蜜之前自己搭載了乙個gitpage hexo的部落格,容易上手,就想學一下,沒想到過程坎坷 到現在也不是很怎麼會使用github,但是已經稍有了解了 之前我使用...
linux日常問題
1,linux下中文檔案亂碼nginx訪問不了問題 執行下面操作進行轉碼 convmv f gbk t utf 8 notest r home init edu play main mould 2,修改登入使用者密碼 echo 12345678 passwd stdin root 3,centos7...