當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JavaScript基本概念(下)
生活随笔
收集整理的這篇文章主要介紹了
JavaScript基本概念(下)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
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++; // 值變成數(shù)值 3 s2++; // 值變成 NaN b++; // 值變成數(shù)值 1 f--; // 值變成 0.10000000000000009(由于浮點(diǎn)舍入錯(cuò)誤所致) o--; // 值變成數(shù)值-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; // 值變成了數(shù)值-1 s2 = -s2; // 值變成了數(shù)值-1.1 s3 = -s3; // 值變成了 NaN b = -b; // 值變成了數(shù)值 0 f = -f; // 變成了-1.1 o = -o; // 值變成了數(shù)值 11.2 位操作符
1.2.1 按位非(NOT)
var num1 = 25; // 二進(jìn)制 00000000000000000000000000011001 var num2 = ~num1; // 二進(jìn)制 11111111111111111111111111100110 alert(num2); // -261.2.2 按位與(AND)
1.2.3 按位或(OR)
1.2.4 按位異或(XOR)
1.2.5 左移
- 注意,左移不會(huì)影響操作數(shù)的符號(hào)位。換句話說(shuō),如果將 -2 向左移動(dòng) 5 位,結(jié)果將是 -64,而非 64。
1.2.6 有符號(hào)的右移
- 同樣,在移位過(guò)程中,原數(shù)值中也會(huì)出現(xiàn)空位。只不過(guò)這次的空位出現(xiàn)在原數(shù)值的左側(cè)、符號(hào)位的
右側(cè)(見圖 3-3)。而此時(shí) ECMAScript 會(huì)用“符號(hào)位的值”來(lái)填充所有空位,以便得到一個(gè)完整的值。
1.2.7 無(wú)符號(hào)的右移
- 符號(hào):>>>;
1.3 布爾操作符
1.3.1 邏輯非
//使用規(guī)則 alert(!false); // true alert(!"blue"); // false alert(!0); // true alert(!NaN); // true alert(!""); // true alert(!12345); // false//模擬Boolean()轉(zhuǎn)型函數(shù) alert(!!"blue"); //true alert(!!0); //false alert(!!NaN); //false alert(!!""); //false alert(!!12345); //true1.3.2 邏輯與
1.3.3 邏輯或
我們可以利用邏輯或的這一行為來(lái)避免為變量賦 null 或 undefined 值。例如: var myObject = preferredObject || backupObject; 如果 preferredObject 的值不是 null,那么它的值將被賦給 myObject; 如果是 null,則將 backupObject 的值賦給 myObject。 ECMAScript 程序的賦值語(yǔ)句經(jīng)常會(huì)使用這種模式,本書也將采用這種模式。1.4 乘性操作符
1.4.1 乘法
1.4.2 除法
1.4.3 求模
1.5 加性操作符
1.5.1 加法
1.5.2 減法
var result1 = 5 - true; // 4,因?yàn)?true 被轉(zhuǎn)換成了 1 var result2 = NaN - 1; // NaN var result3 = 5 - 3; // 2 var result4 = 5 - ""; // 5,因?yàn)?#34;" 被轉(zhuǎn)換成了 0 var result5 = 5 - "2"; // 3,因?yàn)?#34;2"被轉(zhuǎn)換成了 2 var result6 = 5 - null; // 5,因?yàn)?null 被轉(zhuǎn)換成了 01.6 關(guān)系操作符
1.7 相等操作符
1.7.1 相等和不相等
1.7.2 全等和不全等
- === 和 !==;
1.7.3 由于相等和不相等操作符存在類型轉(zhuǎn)換問(wèn)題,而為了保持代碼中數(shù)據(jù)類型的完整性,我們推薦使用全等和不全等操作符。
1.8 條件操作符
- ? 三元運(yùn)算符;
1.9 賦值操作符
//復(fù)合賦值 乘/賦值(*=); 除/賦值(/=); 模/賦值(%=); 加/賦值(+=); 減/賦值(?=); 左移/賦值(<<=); 有符號(hào)右移/賦值(>>=); 無(wú)符號(hào)右移/賦值(>>>=);1.10 逗號(hào)操作符
var num1=1, num2=2, num3=3; var num = (5, 1, 4, 8, 0); // num 的值為 02. 語(yǔ)句
2.1 if 語(yǔ)句
- 業(yè)界普遍推崇的最佳實(shí)踐是始終使用代碼塊,即使要執(zhí)行的只有一行代碼。因?yàn)檫@樣可以消除人們的誤解,否則可能讓人分不清在不同條件下要執(zhí)行哪些語(yǔ)句。
2.2 do-while 語(yǔ)句
2.3 while 語(yǔ)句
2.4 for 語(yǔ)句
//由于 ECMAScript 中不存在塊級(jí)作用域,因此在循環(huán)內(nèi)部定義的變量也可以在外部訪問(wèn)到。例如: var count = 10; for (var i = 0; i < count; i++){alert(i); } alert(i); //102.5 for-in 語(yǔ)句
示例: for (var propName in window) {document.write(propName); }2.6 label 語(yǔ)句
示例: start: for (var i=0; i < count; i++) {alert(i); }2.7 break 和 continue 語(yǔ)句
2.8 with 語(yǔ)句
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;//使用 with 語(yǔ)句之后 with(location){var qs = search.substring(1);var hostName = hostname;var url = href; }- 由于大量使用 with 語(yǔ)句會(huì)導(dǎo)致性能下降,同時(shí)也會(huì)給調(diào)試代碼造成困難,因此在開發(fā)大型應(yīng)用程序時(shí),不建議使用 with 語(yǔ)句。
2.9 switch 語(yǔ)句
//合并 case 兩種情形 switch (i) {case 25:/* 合并兩種情形 */case 35:alert("25 or 35");break;case 45:alert("45");break;default:alert("Other"); }//雖然 ECMAScript 中的 switch 語(yǔ)句借鑒自其他語(yǔ)言,但這個(gè)語(yǔ)句也有自己的特色。 //首先,可以在switch 語(yǔ)句中使用任何數(shù)據(jù)類型(在很多其他語(yǔ)言中只能使用數(shù)值), //無(wú)論是字符串,還是對(duì)象都沒(méi)有問(wèn)題。 //其次,每個(gè) case 的值不一定是常量,可以是變量,甚至是表達(dá)式。請(qǐng)看下面這個(gè)例子: switch ("hello world") {case "hello" + " world":alert("Greeting was found.");break;case "goodbye":alert("Closing was found.");break;default:alert("Unexpected message was found."); }//使用表達(dá)式作為 case 值還可以實(shí)現(xiàn)下列操作: 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 語(yǔ)句在比較值時(shí)使用的是全等操作符,因此不會(huì)發(fā)生類型轉(zhuǎn)換(例如,字符串"10"不等于數(shù)值 10)。
3. 函數(shù)
- 推薦的做法是要么讓函數(shù)始終都返回一個(gè)值,要么永遠(yuǎn)都不要返回值。
否則,如果函數(shù)有時(shí)候返回值,有時(shí)候有不返回值,會(huì)給調(diào)試代碼帶來(lái)不便。
3.1 理解參數(shù)
- arguments 的理解;
- ECMAScript 中的所有參數(shù)傳遞的都是值,不可能通過(guò)引用傳遞參數(shù)。
3.2 沒(méi)有重載
- 如果在 ECMAScript 中定義了兩個(gè)名字相同的函數(shù),則該名字只屬于后定義的函數(shù)。
- 如前所述,通過(guò)檢查傳入函數(shù)中參數(shù)的類型和數(shù)量并作出不同的反應(yīng),結(jié)合 arguments 的使用,可以模仿方法的重載。
4. 小結(jié)
- ECMAScript 中的基本數(shù)據(jù)類型包括Null,Undefined,Number,String,Boolean五種;
- ECMAScript 沒(méi)有為整數(shù)和浮點(diǎn)型定義不同的數(shù)據(jù)類型,Number類型可以用于表示所有數(shù)值;
- ECMAScript 中也有一種復(fù)雜的數(shù)據(jù)類型Object,該類型是這門語(yǔ)言中所有對(duì)象的基礎(chǔ)類型;
- 嚴(yán)格模式為這門語(yǔ)言容易出錯(cuò)的地方是加了限制;
- 為指定返回值的函數(shù)返回的是一個(gè)特殊的undefined值;
- 可以向ECMAScript函數(shù)傳遞任意數(shù)量的參數(shù),并且可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)這些參數(shù);
- 由于不存在函數(shù)簽名的特性,ECMAScript函數(shù)不能重載;
轉(zhuǎn)載于:https://www.cnblogs.com/huoteng/p/4955945.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的JavaScript基本概念(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows和linux中搭建pyth
- 下一篇: javascript数组扁平化处理