日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript基本概念(下)

發布時間:2024/7/19 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript基本概念(下) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 操作符

1.1 一元操作符

1.1.1 遞增和遞減操作符
var s1 = "2"; var s2 = "z"; var b = false; var f = 1.1; var o = {valueOf: function() {return -1;} }; s1++; // 值變成數值 3 s2++; // 值變成 NaN b++; // 值變成數值 1 f--; // 值變成 0.10000000000000009(由于浮點舍入錯誤所致) o--; // 值變成數值-2
1.1.2 一元加和減操作符
var s1 = "01"; var s2 = "1.1"; var s3 = "z"; var b = false; var f = 1.1; var o = {valueOf: function() {return -1;} }; s1 = -s1; // 值變成了數值-1 s2 = -s2; // 值變成了數值-1.1 s3 = -s3; // 值變成了 NaN b = -b; // 值變成了數值 0 f = -f; // 變成了-1.1 o = -o; // 值變成了數值 1

1.2 位操作符

1.2.1 按位非(NOT)
var num1 = 25; // 二進制 00000000000000000000000000011001 var num2 = ~num1; // 二進制 11111111111111111111111111100110 alert(num2); // -26
1.2.2 按位與(AND)
1.2.3 按位或(OR)
1.2.4 按位異或(XOR)
1.2.5 左移
  • 注意,左移不會影響操作數的符號位。換句話說,如果將 -2 向左移動 5 位,結果將是 -64,而非 64。
1.2.6 有符號的右移
  • 同樣,在移位過程中,原數值中也會出現空位。只不過這次的空位出現在原數值的左側、符號位的
    右側(見圖 3-3)。而此時 ECMAScript 會用“符號位的值”來填充所有空位,以便得到一個完整的值。
1.2.7 無符號的右移
  • 符號:>>>;

1.3 布爾操作符

1.3.1 邏輯非
//使用規則 alert(!false); // true alert(!"blue"); // false alert(!0); // true alert(!NaN); // true alert(!""); // true alert(!12345); // false//模擬Boolean()轉型函數 alert(!!"blue"); //true alert(!!0); //false alert(!!NaN); //false alert(!!""); //false alert(!!12345); //true
1.3.2 邏輯與
1.3.3 邏輯或
我們可以利用邏輯或的這一行為來避免為變量賦 null 或 undefined 值。例如: var myObject = preferredObject || backupObject; 如果 preferredObject 的值不是 null,那么它的值將被賦給 myObject; 如果是 null,則將 backupObject 的值賦給 myObject。 ECMAScript 程序的賦值語句經常會使用這種模式,本書也將采用這種模式。

1.4 乘性操作符

1.4.1 乘法
1.4.2 除法
1.4.3 求模

1.5 加性操作符

1.5.1 加法
1.5.2 減法
var result1 = 5 - true; // 4,因為 true 被轉換成了 1 var result2 = NaN - 1; // NaN var result3 = 5 - 3; // 2 var result4 = 5 - ""; // 5,因為"" 被轉換成了 0 var result5 = 5 - "2"; // 3,因為"2"被轉換成了 2 var result6 = 5 - null; // 5,因為 null 被轉換成了 0

1.6 關系操作符

1.7 相等操作符

1.7.1 相等和不相等
1.7.2 全等和不全等
  • === 和 !==;
1.7.3 由于相等和不相等操作符存在類型轉換問題,而為了保持代碼中數據類型的完整性,我們推薦使用全等和不全等操作符。

1.8 條件操作符

  • ? 三元運算符;

1.9 賦值操作符

//復合賦值 乘/賦值(*=); 除/賦值(/=); 模/賦值(%=); 加/賦值(+=); 減/賦值(?=); 左移/賦值(<<=); 有符號右移/賦值(>>=); 無符號右移/賦值(>>>=);

1.10 逗號操作符

var num1=1, num2=2, num3=3; var num = (5, 1, 4, 8, 0); // num 的值為 0

2. 語句

2.1 if 語句

  • 業界普遍推崇的最佳實踐是始終使用代碼塊,即使要執行的只有一行代碼。因為這樣可以消除人們的誤解,否則可能讓人分不清在不同條件下要執行哪些語句。

2.2 do-while 語句

2.3 while 語句

2.4 for 語句

//由于 ECMAScript 中不存在塊級作用域,因此在循環內部定義的變量也可以在外部訪問到。例如: var count = 10; for (var i = 0; i < count; i++){alert(i); } alert(i); //10

2.5 for-in 語句

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

2.6 label 語句

示例: start: for (var i=0; i < count; i++) {alert(i); }

2.7 break 和 continue 語句

2.8 with 語句

var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;//使用 with 語句之后 with(location){var qs = search.substring(1);var hostName = hostname;var url = href; }
  • 由于大量使用 with 語句會導致性能下降,同時也會給調試代碼造成困難,因此在開發大型應用程序時,不建議使用 with 語句。

2.9 switch 語句

//合并 case 兩種情形 switch (i) {case 25:/* 合并兩種情形 */case 35:alert("25 or 35");break;case 45:alert("45");break;default:alert("Other"); }//雖然 ECMAScript 中的 switch 語句借鑒自其他語言,但這個語句也有自己的特色。 //首先,可以在switch 語句中使用任何數據類型(在很多其他語言中只能使用數值), //無論是字符串,還是對象都沒有問題。 //其次,每個 case 的值不一定是常量,可以是變量,甚至是表達式。請看下面這個例子: switch ("hello world") {case "hello" + " world":alert("Greeting was found.");break;case "goodbye":alert("Closing was found.");break;default:alert("Unexpected message was found."); }//使用表達式作為 case 值還可以實現下列操作: var num = 25; switch (true) {case num < 0:alert("Less than 0.");break;case num >= 0 && num <= 10:alert("Between 0 and 10.");break;case num > 10 && num <= 20:alert("Between 10 and 20.");break;default:alert("More than 20."); }
  • switch 語句在比較值時使用的是全等操作符,因此不會發生類型轉換(例如,字符串"10"不等于數值 10)。

3. 函數

  • 推薦的做法是要么讓函數始終都返回一個值,要么永遠都不要返回值。
    否則,如果函數有時候返回值,有時候有不返回值,會給調試代碼帶來不便。

3.1 理解參數

  • arguments 的理解;
  • ECMAScript 中的所有參數傳遞的都是值,不可能通過引用傳遞參數。

3.2 沒有重載

  • 如果在 ECMAScript 中定義了兩個名字相同的函數,則該名字只屬于后定義的函數。
  • 如前所述,通過檢查傳入函數中參數的類型和數量并作出不同的反應,結合 arguments 的使用,可以模仿方法的重載。

4. 小結

  • ECMAScript 中的基本數據類型包括Null,Undefined,Number,String,Boolean五種;
  • ECMAScript 沒有為整數和浮點型定義不同的數據類型,Number類型可以用于表示所有數值;
  • ECMAScript 中也有一種復雜的數據類型Object,該類型是這門語言中所有對象的基礎類型;
  • 嚴格模式為這門語言容易出錯的地方是加了限制;
  • 為指定返回值的函數返回的是一個特殊的undefined值;
  • 可以向ECMAScript函數傳遞任意數量的參數,并且可以通過arguments對象來訪問這些參數;
  • 由于不存在函數簽名的特性,ECMAScript函數不能重載;

轉載于:https://www.cnblogs.com/huoteng/p/4955945.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的JavaScript基本概念(下)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。