JavaScript紅寶書筆記(二)---操做符及語句

1.負數二進制存儲使用的格式是二進制補碼,計算一個數值的二進制補碼步驟以下:
(1)取該值的絕對值的二進制(2)取反碼(3)反碼+1,從而得出補碼url

2.位操做:
(1)左移<<:左移符號位不變,空位填0補充
(2)有符號右移>>:右移產生的空位以符號位填充,正數0填充、負數1填充
(3)無符號右移>>>:無符號右移將負數得出二進制補碼,當成正數進行右移操做調試

3.邏輯與和邏輯或都爲短路操做,邏輯與(邏輯或)第一個操做數爲false(true)後面即便會產生錯誤都不會去檢測。code

4.Infinity與0相乘,結果爲NaN;Infinity與非0數值相乘,結果爲Infinity或者-Infinity;
Infinity除以Infinity,結果爲NaN;0除以0,結果爲NaN;
若是是非零的有限數被零除,則結果是 Infinity 或-Infinity;
總的來講,得出的結果爲不可預測的基本都爲NaN對象

5.任何操做數與 NaN 進行關係比較,結果都是 false。ip

6.因爲 ECMAScript 中不存在塊級做用域,所以在循環內部定義的變量也能夠在外部訪問到。作用域

var count = 10;
for (var i = 0; i < count; i++){
    alert(i);
}
alert(i); //10

7.for-in 語句是一種精準的迭代語句,能夠用來枚舉對象的屬性開發

for (var propName in window) {
document.write(propName);
}

8.label添加標籤的用法:string

outermost:
for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
        num++;
    }
}
alert(num); //55

9.with 語句的做用是將代碼的做用域設置到一個特定的對象中it

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}

在 with 語句的代碼塊內部,每一個變量首先被認爲是一個局部變量,而若是在局部環境中找不到該變量的定義,就會查詢location 對象中是否有同名的屬性。若是發現了同名屬性, 則以 location 對象屬性的值做爲變量的值。(實際開發不建議使用with語句,會形成調試的困難增長)io

相關文章
相關標籤/搜索