摘要:基本概念語法區分大小寫,中的一切變量函數名和操作符都區分大小寫。要將一個值轉換成對應的值,可以調用類型包括整數和浮點數值,基本數值字面量格式是十進制整數,除了十進制外還有八進制十六進制。八進制第一位必須是,十六進制第一位必須是。
基本概念 語法
區分大小寫,ECMAScript中的一切(變量、函數名和操作符)都區分大小寫。函數名不能使用typeof,因為它是一個關鍵字,但typeOf可以。
標識符,指的是變量、函數、屬性的名字,或者函數的參數。第一個字符必須是一個字母、下劃線或者$符號。不能將關鍵字、保留字、true、false和null用作標識符。
注釋,包括單行注釋和跨級注釋。單行注釋以兩個斜桿開頭,塊級注釋以一個斜杠和一個星號開頭,以一個星號和一個斜杠結尾。
嚴格模式為JavaScript定義了一種不同的分析與執行模式。
function doSomething(){ "use stric"; //函數體 };
語句以一個分號結尾,如果省略分號,則由解析器確定語句的結尾。
關鍵字和保留字關鍵字可用于表示控制語句的開始或者結束,或者用于執行特定操作等。 關鍵字是語言保留的,不能用作標識符。
變量變量是松散型的,可以保存任何類型的數據。定義變量的時候要使用var操作符。
數據類型typeof操作符。"undefined"這個值未定義、"boolean"這個值是布爾值、"string"這個值是字符串、"number"這個值是數值、"object"這個值是對象或者null、"function"這個值是函數。
Undefined類型只有一個值,就是特殊的undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined。一般不存在需要把一個變量設置為undefined的情況,字面值undefined的主要目的是用于比較。
var message;//這個變量聲明之后默認取得了undefined值 //下面這個變量并沒有聲明 //var age alert(message);//"undefined" alert(age);//報錯 alert(typeof message);//"undefined" alert(typeof age);//"undefined"
Null類型只有一個值,就是特殊的null,從邏輯角度看,null值是一個空對象指針,因此用typeof操作符檢測null值時會返回"object"。undefined是派生自null的。
alert(null==undefined);//true
Boolean類型有兩個值,true和false。要將一個值轉換成對應的Boolean值,可以調用Boolean()
Number類型包括整數和浮點數值,基本數值字面量格式是十進制整數,除了十進制外還有八進制十六進制。八進制第一位必須是0,十六進制第一位必須是0x。
浮點數值中必須包含一個小數點,并且小數點后面必須至少有一位數字。保存浮點數值需要的內存空間是保存整數的兩倍。
ECMAScript 能夠表示的最小數值保存在Number.MIN_VALUE中,在大多數瀏覽器中,這個值是5e-324
能夠表示的最大數值保存在Number.MAX_VALUE中——在大多數瀏覽器中,這個值是1.7976931348623157e+308。
如果某次計算的結果得到了一個超出JavaScript數值范圍的值,那么這個數值將被自動轉換成特殊的Infinity值。
具體來說,如果這個數值是負數,則會被轉換成-Infinity負無窮,如果這個數值是正數,則會被轉換成Infinity正無窮。
NaN是一個特殊數值,任何涉及NaN的操作都會返回NaN,NaN與任何值都不相等,包括NaN本身。
alert(isNaN(NaN))//true alert(isNaN(10))//false alert(isNaN("10"))//false alert(isNaN("blue"))//true alert(isNaN(true))//false
三種函數可以把非數值轉換成數值,Number()、parseInt()、parseFloat()
var num1=Number("Hello world!")//NaN var num2=Number("")//0 var num3=Number("000011")//11 var num4=Number(true)//1 var num5=parseInt("1234blue"); // 1234 var num6=parseInt(""); // NaN var num7=parseInt("0xA"); // 10(十六進制數) var num8=parseInt(22.5); // 22 var num9=parseInt("070"); // 56(八進制數) var num10=parseInt("70"); // 70(十進制數) var num11=parseInt("0xf"); // 15(十六進制數) var num12=parseInt("AF", 16); //175 var num13=parseInt("AF"); //NaN var num14=parseInt("10", 2); //2 (按二進制解析) var num15=parseInt("10", 8); //8 (按八進制解析) var num16=parseInt("10", 10); //10 (按十進制解析) var num17=parseInt("10", 16); //16 (按十六進制解析) var num18=parseFloat("1234blue"); //1234 (整數) var num19=parseFloat("0xA"); //0 var num20=parseFloat("22.5"); //22.5 var num21=parseFloat("22.34.5"); //22.34 var num22=parseFloat("0908.5"); //908.5 var num23=parseFloat("3.125e7"); //31250000
String類型用于表示由零或多個16位Unicode字符組成的字符序列,字符串??梢杂脝我柣蛘唠p引號表示,沒有區別。
字符字面量,也叫轉義序列
字符串一旦創建就不可改變。
將一個值轉換為字符串有兩種方法,toString()、String(),null和undefined沒有toString方法
var age = 11; var ageAsString = age.toString(); // 字符串"11" var found = true; var foundAsString = found.toString(); // 字符串"true" var num = 10; alert(num.toString()); // "10" alert(num.toString(2)); // "1010" alert(num.toString(8)); // "12" alert(num.toString(10)); // "10" alert(num.toString(16)); // "a" var value1 = 10; var value2 = true; var value3 = null; var value4; alert(String(value1)); // "10" alert(String(value2)); // "true" alert(String(value3)); // "null" alert(String(value4)); // "undefined"
Object類型可以通過new創建,是一組數據和功能的集合。
var o=new Object();操作符
一元操作符,只能操作一個值的操作符:遞增遞減操作符、一元和加減操作符
var num1 = 2; var num2 = 20; var num3 = --num1 + num2; // 等于 21 var num4 = num1 + num2; // 等于 21 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 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 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
位操作符,32位整數。對于有符號的整數,前31位用于表示整數的值,第32位用于表示數值的符號,0表示正數,1表示負數。按位非,用波浪線(~)表示,執行按位非的結果就是返回數值的反碼。按位與,用&表示。按位或,由豎線表示。按位異或,由^符號表示。左移(<<)。右移(>>)。無符號右移(>>>)
var num1 = 25; // 二進制 00000000000000000000000000011001 var num2 = ~num1; // 二進制 11111111111111111111111111100110 alert(num2); // -26 var num1 = 25; var num2 = -num1 - 1; alert(num2); // "-26" var result = 25 & 3; alert(result); //1 25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 --------------------------------------------- AND = 0000 0000 0000 0000 0000 0000 0000 0001 var result = 25 | 3; alert(result); //27 25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 -------------------------------------------- OR = 0000 0000 0000 0000 0000 0000 0001 1011 var result = 25 ^ 3; alert(result); //26 25 = 0000 0000 0000 0000 0000 0000 0001 1001 3 = 0000 0000 0000 0000 0000 0000 0000 0011 --------------------------------------------- XOR = 0000 0000 0000 0000 0000 0000 0001 1010 var oldValue = 2; // 等于二進制的 10 var newValue = oldValue << 5; // 等于二進制的 1000000,十進制的 64 var oldValue = 64; // 等于二進制的 1000000 var newValue = oldValue >> 5; // 等于二進制的 10 ,即十進制的 2 var oldValue = 64; // 等于二進制的 1000000 var newValue = oldValue >>> 5; // 等于二進制的 10 ,即十進制的 2
布爾操作符,邏輯非(!)、邏輯與(&&)、邏輯或(||)
alert(!false); // true alert(!"blue"); // false alert(!0); // true alert(!NaN); // true alert(!""); // true alert(!12345); // false alert(!!"blue"); //true alert(!!0); //false alert(!!NaN); //false alert(!!""); //false alert(!!12345); //true var found = true; var result = (found && someUndefinedVariable); // 這里會發生錯誤 alert(result); // 這一行不會執行 var found = true; var result = (found || someUndefinedVariable); // 不會發生錯誤 alert(result); // 會執行("true")
乘性操作符,乘法(*)、除法(/)、求模(%)
加性操作符,加法,減法
var result1 = 5 + 5; // 兩個數值相加 alert(result1); // 10 var result2 = 5 + "5"; // 一個數值和一個字符串相加 alert(result2); // "55" 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
關系操作符,返回布爾值。"23"和3比較,"23"小于3。
相等操作符,相等(==)、不相等(!=)、全等(===)、不全等(!==)
條件操作符,var max = (num1 > num2) ? num1 : num2;如果num1大于num2,則將num1的值賦給max,如果num1小于或等于num2,則將num2的值賦給max
賦值操作符
逗號操作符,多用于聲明多個變量,還可用于賦值。var num=(5,4,3);//num值為3
函數
通過訪問argument對象的length屬性可以獲知有多少個參數傳遞給了函數。函數沒有重載,名字只屬于后定義的函數
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); //2 howManyArgs(); //0 howManyArgs(12); //1 function doAdd() { if(arguments.length == 1) { alert(arguments[0] + 10); } else if (arguments.length == 2) { alert(arguments[0] + arguments[1]); } } doAdd(10); //20 doAdd(30, 20); //50 function addSomeNumber(num){ return num + 100; } function addSomeNumber(num) { return num + 200; } var result = addSomeNumber(100); //300
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97436.html
摘要:對象的核心對象是,它表示瀏覽器的一個實例。而和則表示該容器中頁面視圖區的大小。在中,與返回相同的值,即視口大小而非瀏覽器窗口大小。第三個參數是一個逗號分隔的設置字符串,表示在新窗口中都顯示哪些特性。這應該是用戶打開窗口后的第一個頁面 BOM window對象 BOM的核心對象是window,它表示瀏覽器的一個實例。在瀏覽器中,window對象有雙重角色,它既是通過JavaScript訪...
摘要:當代碼在一個環境中執行時,會創建變量對象的一個作用域鏈。作用域鏈的用途,是保證對執行環境有權訪問的所有變量和函數的有序訪問。這樣,一直延續到全局執行環境全局執行環境的變量對象始終都是作用域鏈中的最后一個對象。 變量、作用域和內存問題 基本類型和引用類型的值 基本類型值指的是簡單的數據段,而引用類型值值那些可能由多個值構成的對象。 定義基本類型值的引用和引用類型值的方法是類似的,創建...
摘要:語法語法可以表示三種類型的值簡單值使用與相同的語法,可以在中表示字符串數值布爾值和。對象對象作為一種復雜數據類型,表示的是一組無序的鍵值對兒。如果字符串長度超過了個,結果中將只出現前個字符。 JSON 語法 JSON語法可以表示三種類型的值 簡單值:使用與 JavaScript 相同的語法,可以在 JSON 中表示字符串、數值、布爾值和 null 。但 JSON 不支持 JavaS...
摘要:匿名函數可以用來模仿塊級作用域來避免這個問題這里是塊級作用域代碼定義并立即調用了一個匿名函數,將函數聲明包含在一對圓括號中,表示它實際上是一個函數表達式,而緊隨其后的另一對圓括號會立即調用這個函數。 函數表達式 遞歸 遞歸函數是在一個函數通過名字調用自身的情況下構成的 function factrial(num){ if(num
摘要:簡介簡史誕生于年,當時主要負責表單的輸入驗證。實現一個完整的由三部分組成核心文檔對象模型瀏覽器對象模型就是對實現該標準規定的各個方面內容的語言的描述。把整個頁面映射為一個多層節點結構。由萬維網聯盟規劃。主要目標是映射文檔的結構。 JavaScript簡介 JavaScript簡史 JavaScript誕生于1995年,當時主要負責表單的輸入驗證。 如果沒有表單驗證的功能,填入信息之...
閱讀 3192·2023-04-26 01:39
閱讀 3345·2023-04-25 18:09
閱讀 1612·2021-10-08 10:05
閱讀 3228·2021-09-22 15:45
閱讀 2758·2019-08-30 15:55
閱讀 2393·2019-08-30 15:54
閱讀 3167·2019-08-30 15:53
閱讀 1324·2019-08-29 12:32