JS經典理解例子

2022-06-10 14:45:10 字數 1308 閱讀 4493

1.  

var name = 'the window';

var obj =

a.prototype.n = 1;

var b = new a();

a.prototype=

object.prototype.a = function ()的時候建立了f,f的__proto__指向function的prototype,所以再function的prototype上面加的屬性f是可以訪問的,所以f.b();應該輸出b()。而function的prototype是object的乙個物件,這個物件是由object作為function產生的,所以這個這個物件的__proto__指向object的prototype,所以f.a();應該輸出a()。

var f = new f();所以f .__proto__指向f 的prototype,而f的的prototype是object的乙個物件,這個物件是由object作為function產生的,所以這個這個物件的__proto__指向object的prototype,所以f.a();應該輸出a()。而prototype和functiono的prototype沒有直接聯絡,所以f.b();應該會報錯找不到這個方法。

5.console.log('global begin:'+i);

var i = 1;

foo(1);

function foo(i)

var a;

console.log(typeof(a));//問輸出什麼

答案:function

理解:變數提公升先於函式提公升,所以先執行變數提公升a=undefined,然後再將a賦值給函式。

7.if(!(b in window))

var b = 1;

cnsole.log(b);//問輸出什麼

答案:undefined

理解:再es5裡面沒有塊作用域,所以再相當於再外面執行var b = 1;,由於變數提公升再**執行前window中就有了b屬性只是值為undefined,所以b in window為true,不執行判斷語句裡面的**,輸出undefined

8.var c = 1 ;

functiong c(c);   c = 1;  c(2);

9.var x = 10;

function fn()   報錯:找不到f2

理解:根據作用域,這裡會生成三個作用域:最外層作用域/fn 作用域/f2作用域。根據自己找不到到外層去找,第乙個外層能找到,第二個外層找不到;

注:如果第二個想輸出obj的f2,則function中要寫成console.log(this.f2); this指向呼叫這個函式的物件也就是obj。

遞迴 經典例子

題目 對於任意個數的字元,請用程式寫出其所有可能的排序!如abc的排序為abc acb bac bca cab cba 經典 我只是用了四個字元排序 如下 include using namespace std template inline void swap t a,t b template v...

makefile例子(經典)

相信在unix下程式設計的沒有不知道makefile的,剛開始學習unix平台 下的東西,了解了下makefile的製作,覺得有點東西可以記錄下。下面是乙個極其簡單的例子 現在我要編譯乙個hello world,需要如下三個檔案 1.print.h include void printhello 2...

深入理解js的幾個小例子

1 js的作用域,window物件 if a in window alert a 1 js的作用域是由函式劃分的 2 js的執行順序 var a 1,b function a x alert a 1 3 js引數 arguments 的含義 function b x,y,a b 1,2,3 10 4...