You Don t know JS學習筆記(中冊)

2021-09-25 08:21:04 字數 1833 閱讀 8803

變數是沒有型別的,只有值才有型別

var a = ;

a["2"] = 4;

console.log('a.length',a.length) // 3

如果採用鍵值賦值的方式,並不是按照順序的儲存

var a = ;

a["test"] = 4;

console.log("a["test"]", a["test"])

console.log('a.length', a.length)

// a["test"] 4

// a.length 0 ????為什麼是這麼個結果

簡單的字串反轉[不包括unicode,星號,多位元組字元]

var a = "test";

var c = a.split("").reverse().join("");

void 沒有返回值,因此返回結果是undefined(可以不讓表示式返回任何結果)

nan(not a number)是乙個「警戒值」(sentinel value)仍然是數字型別,但是它和自身不相等,是唯一乙個非自反的值

引用

var a = 2;

var b = a; // b是a的乙個副本

b++;

a; // 2

b; // 3

var c = [1,2,3];

var d = c; // d是c的乙個引用

d.push(4);

console.log("c",c,"d",d); //c [ 1, 2, 3, 4 ] d [ 1, 2, 3, 4 ]

function foo(x)

var a = [1,2,3];

foo(a);

console.log('a',a)

// x [ 1, 2, 3, 4 ]

// x [ 4, 5, 6, 7 ]

// a [ 1, 2, 3, 4 ]

function foo(x)

var a = [1,2,3];

foo(a);

console.log('a',a)

// x [ 1, 2, 3, 4 ]

// x [ 4, 5, 6, 7 ]

// a [ 4, 5, 6, 7 ]

原生函式可以被當作建構函式使用(建立出封裝了基本型別值的封裝物件)

瀏覽器已經為.length這樣的常見情況做了效能優化,直接使用封裝物件反而會降低執行效率

如果想得到封裝物件中的基本型別值,可以使用valueof()函式

var a = new string("abc");

a.valueof(); // "abc"

regexp

date()和errof()

symbol()

標籤語句

foo:for(var i =0; i<4; i++)

if((j*i)%2 == 1)

console.log(i,j)

}

}

//1 0

2 02 1

3 03 2

```

自動分號

提前使用變數

try throw ,finally ,catch

非同步是現在和將來事件之間的間隙,並行意味著可以同時發生

學習學習再學習

如果乙個技能足夠複雜 比如從零學程式設計 那就不要指望讀完一本書就可以打天下。多買幾本書同類的書 因為每個作者的出發點是不一樣的,哪怕對同乙個概念都有不同的解釋說明。理解知識的重要過程之一就如牛的反芻一樣,要嚼一遍 嚥下去 再吐出來 再嚼一遍 再嚥下去 所以,既然一本書可以讀幾遍,那麼同一話題多應該...

學習 學習 再學習

原本要使用vs2005開發乙個b s專案的,沒有想到只能先暫時停停了,居然跟不上技術的發展了,呵呵,一直使用delphi delphi也沒能跟上 沒有想到轉到vs2005上竟然有這麼多要學的東西,當然目的是了做乙個好的系統。最近一直在學習asp.net ajax,雖然專案停了,但是我覺得值得,有很多...

只是學習 學習 再學習

通過做 讓我學會了很多東西 什麼 flash div css html js as 雖然都只是皮毛 不過 算是了解那麼一點點吧 哈哈 我還突然發現 我的 數學和英語 進步了不少 而且還都是很實用的 比在學校的進步可快多了 那句話說的很不錯 在你了解了一些皮毛之後你會發現很多東西你都必須去學。因為少一...