js 日常問題

2021-09-25 22:00:23 字數 1175 閱讀 5229

(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...