js 權威指南學習筆記3

2021-09-07 08:33:56 字數 1292 閱讀 6782

第四章 表示式和運算子

1、最簡單的表示式是原始表示式,是表示式的最小單位——它們不再包含其他表示式。js中原始表示式包含常量或直接量、關鍵字和變數。

2、乙個物件的屬性名不是固定值時,必須使用方括號寫法來訪問屬性。

3、任何乙個呼叫表示式都包含一對圓括號和左圓括號之前的表示式,如果這個表示式是乙個屬性訪問表示式,那麼這個呼叫稱作方法呼叫。

4、運算子的***:有一些表示式具有***,前後的表示式運算會相互影響,比如賦值運算子、++、--、delete運算子。

5、屬性訪問表示式和呼叫表示式的優先順序要比所有運算子要高。賦值運算子的優先順序非常低,通常最後執行。

6、先計算子表示式的值,再根據運算子的優先順序和結合性運算。假設存在a=1,那麼b=(a++)+a的計算順序為:1)計算b,2)計算a++,假設為c,3)計算a,4)計算c+a,5)將c+a的結果賦給b。按照a++的定義,第2步中的結果仍然為1,即c=1,隨後a立刻自增1變為2,所以在第3步中,a=2,最終b=1+2=3.

7、位運算子要求它的運算元是整數。按位非相當於改變乙個數的符號並減去1:~5=-6.

8、位運算子將nan/infinity/-infinity都轉換為0.

9、《左移,將乙個數左移1位相當於它乘以2,>>帶符號右移,相當於除以2(忽略餘數).>>>無符號右移,左邊的高位總是填補0.

10、+號運算子更偏愛字串,如果其中乙個運算元是字串的話,則進行字串連線操作;而比較操作符更偏愛數字,只有在兩個運算元都是字串的時候,才會進行字串的比較。

11、in運算子希望它的左運算元是乙個字串或可以轉換為字串,希望它的右運算元是乙個物件。如果右側的物件擁有乙個名為左運算元值的屬性名,那麼表示式返回true。注意在陣列中,var data=[7,8,9],7 in data返回false,因為7代表索引為7,非陣列中是否有7這個值。

12、邏輯與&&操作符。首先計算左側的值,如果左側計算結果是假,這時&&簡單的返回左運算元的值,不計算右運算元;如果左側值計算結果為真,&&將計算右運算元的值並將其返回作為整個表示式的計算結果,常用於有條件的執行**(滿足左側條件後執行右側)

。這種行為稱為「短路」。邏輯或||具有類似特性,如果左側值為真,那麼返回這個值,如果左側值為假,那麼返回右側的值,常用於給引數提供預設值

13、三元運算子?:  典型的應用場景——判斷乙個變數是否定義或擁有乙個有意義的真值,如果有意義則使用它,如果無意義則使用乙個預設值(類似||)。

14、typeof nan 返回「number」。typeof null返回「object」。

js 權威指南學習筆記2

第三章 型別 值和變數 1 js的資料型別分為兩類 原始型別 基本資料型別 不可變型別 和物件型別 引用資料型別 可變型別 js中的原始型別包括數字 字串 布林值,還有兩個特殊的 null和undefined。物件是屬性的集合。陣列 函式是特殊的物件。如果函式用來初始化 使用new運算子 乙個新建的...

js 權威指南學習筆記4

第五章 語句 1 在js中沒有塊級作用域,在語句塊中宣告的變數並不是語句塊私有的。2 儘管函式宣告語句和函式定義表示式具有相同的函式名,但二者仍然不同。兩種方式都建立了新的函式物件,但函式宣告語句中的函式名是乙個變數名,變數指向函式物件,和通過var宣告變數一樣,函式定義語句中的函式被顯式地提前到了...

js 權威指南學習筆記7

第七章 陣列 1 陣列直接量的語法允許有可選的結尾的逗號,所以 只有兩個元素而非三個。2 呼叫建構函式array 建立陣列時,傳入乙個引數時表示指定陣列的長度。3 所有的索引都是屬性名,但只有在0 2 32 2之間的整數屬性名才是索引。所有的陣列都是物件,可以為其建立任意名字的屬性。但如果使用的屬性...