當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript基本概念(下)
生活随笔
收集整理的這篇文章主要介紹了
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--; // 值變成數值-21.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; // 值變成了數值 11.2 位操作符
1.2.1 按位非(NOT)
var num1 = 25; // 二進制 00000000000000000000000000011001 var num2 = ~num1; // 二進制 11111111111111111111111111100110 alert(num2); // -261.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); //true1.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 被轉換成了 01.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 的值為 02. 語句
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); //102.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基本概念(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows和linux中搭建pyth
- 下一篇: 对于软件工程的理解