摘要:基本概念語法區(qū)分大小寫,中的一切變量函數(shù)名和操作符都區(qū)分大小寫。要將一個值轉(zhuǎn)換成對應(yīng)的值,可以調(diào)用類型包括整數(shù)和浮點數(shù)值,基本數(shù)值字面量格式是十進(jìn)制整數(shù),除了十進(jìn)制外還有八進(jìn)制十六進(jìn)制。八進(jìn)制第一位必須是,十六進(jìn)制第一位必須是。
基本概念 語法
區(qū)分大小寫,ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。函數(shù)名不能使用typeof,因為它是一個關(guān)鍵字,但typeOf可以。
標(biāo)識符,指的是變量、函數(shù)、屬性的名字,或者函數(shù)的參數(shù)。第一個字符必須是一個字母、下劃線或者$符號。不能將關(guān)鍵字、保留字、true、false和null用作標(biāo)識符。
注釋,包括單行注釋和跨級注釋。單行注釋以兩個斜桿開頭,塊級注釋以一個斜杠和一個星號開頭,以一個星號和一個斜杠結(jié)尾。
嚴(yán)格模式為JavaScript定義了一種不同的分析與執(zhí)行模式。
function doSomething(){ "use stric"; //函數(shù)體 };
語句以一個分號結(jié)尾,如果省略分號,則由解析器確定語句的結(jié)尾。
關(guān)鍵字和保留字關(guān)鍵字可用于表示控制語句的開始或者結(jié)束,或者用于執(zhí)行特定操作等。 關(guān)鍵字是語言保留的,不能用作標(biāo)識符。
變量變量是松散型的,可以保存任何類型的數(shù)據(jù)。定義變量的時候要使用var操作符。
數(shù)據(jù)類型typeof操作符。"undefined"這個值未定義、"boolean"這個值是布爾值、"string"這個值是字符串、"number"這個值是數(shù)值、"object"這個值是對象或者null、"function"這個值是函數(shù)。
Undefined類型只有一個值,就是特殊的undefined。在使用var聲明變量但未對其加以初始化時,這個變量的值就是undefined。一般不存在需要把一個變量設(shè)置為undefined的情況,字面值undefined的主要目的是用于比較。
var message;//這個變量聲明之后默認(rèn)取得了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。要將一個值轉(zhuǎn)換成對應(yīng)的Boolean值,可以調(diào)用Boolean()
Number類型包括整數(shù)和浮點數(shù)值,基本數(shù)值字面量格式是十進(jìn)制整數(shù),除了十進(jìn)制外還有八進(jìn)制十六進(jìn)制。八進(jìn)制第一位必須是0,十六進(jìn)制第一位必須是0x。
浮點數(shù)值中必須包含一個小數(shù)點,并且小數(shù)點后面必須至少有一位數(shù)字。保存浮點數(shù)值需要的內(nèi)存空間是保存整數(shù)的兩倍。
ECMAScript 能夠表示的最小數(shù)值保存在Number.MIN_VALUE中,在大多數(shù)瀏覽器中,這個值是5e-324
能夠表示的最大數(shù)值保存在Number.MAX_VALUE中——在大多數(shù)瀏覽器中,這個值是1.7976931348623157e+308。
如果某次計算的結(jié)果得到了一個超出JavaScript數(shù)值范圍的值,那么這個數(shù)值將被自動轉(zhuǎn)換成特殊的Infinity值。
具體來說,如果這個數(shù)值是負(fù)數(shù),則會被轉(zhuǎn)換成-Infinity負(fù)無窮,如果這個數(shù)值是正數(shù),則會被轉(zhuǎn)換成Infinity正無窮。
NaN是一個特殊數(shù)值,任何涉及NaN的操作都會返回NaN,NaN與任何值都不相等,包括NaN本身。
alert(isNaN(NaN))//true alert(isNaN(10))//false alert(isNaN("10"))//false alert(isNaN("blue"))//true alert(isNaN(true))//false
三種函數(shù)可以把非數(shù)值轉(zhuǎn)換成數(shù)值,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(十六進(jìn)制數(shù)) var num8=parseInt(22.5); // 22 var num9=parseInt("070"); // 56(八進(jìn)制數(shù)) var num10=parseInt("70"); // 70(十進(jìn)制數(shù)) var num11=parseInt("0xf"); // 15(十六進(jìn)制數(shù)) var num12=parseInt("AF", 16); //175 var num13=parseInt("AF"); //NaN var num14=parseInt("10", 2); //2 (按二進(jìn)制解析) var num15=parseInt("10", 8); //8 (按八進(jìn)制解析) var num16=parseInt("10", 10); //10 (按十進(jìn)制解析) var num17=parseInt("10", 16); //16 (按十六進(jìn)制解析) var num18=parseFloat("1234blue"); //1234 (整數(shù)) 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引號表示,沒有區(qū)別。
字符字面量,也叫轉(zhuǎn)義序列
字符串一旦創(chuàng)建就不可改變。
將一個值轉(zhuǎn)換為字符串有兩種方法,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創(chuàng)建,是一組數(shù)據(jù)和功能的集合。
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++; // 值變成數(shù)值 3 s2++; // 值變成 NaN b++; // 值變成數(shù)值 1 f--; // 值變成 0.10000000000000009(由于浮點舍入錯誤所致) o--; // 值變成數(shù)值-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ù)值-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; // 值變成了數(shù)值-1 s2 = -s2; // 值變成了數(shù)值-1.1 s3 = -s3; // 值變成了 NaN b = -b; // 值變成了數(shù)值 0 f = -f; // 變成了-1.1 o = -o; // 值變成了數(shù)值 1
位操作符,32位整數(shù)。對于有符號的整數(shù),前31位用于表示整數(shù)的值,第32位用于表示數(shù)值的符號,0表示正數(shù),1表示負(fù)數(shù)。按位非,用波浪線(~)表示,執(zhí)行按位非的結(jié)果就是返回數(shù)值的反碼。按位與,用&表示。按位或,由豎線表示。按位異或,由^符號表示。左移(<<)。右移(>>)。無符號右移(>>>)
var num1 = 25; // 二進(jìn)制 00000000000000000000000000011001 var num2 = ~num1; // 二進(jìn)制 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; // 等于二進(jìn)制的 10 var newValue = oldValue << 5; // 等于二進(jìn)制的 1000000,十進(jìn)制的 64 var oldValue = 64; // 等于二進(jìn)制的 1000000 var newValue = oldValue >> 5; // 等于二進(jìn)制的 10 ,即十進(jìn)制的 2 var oldValue = 64; // 等于二進(jìn)制的 1000000 var newValue = oldValue >>> 5; // 等于二進(jìn)制的 10 ,即十進(jìn)制的 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); // 這里會發(fā)生錯誤 alert(result); // 這一行不會執(zhí)行 var found = true; var result = (found || someUndefinedVariable); // 不會發(fā)生錯誤 alert(result); // 會執(zhí)行("true")
乘性操作符,乘法(*)、除法(/)、求模(%)
加性操作符,加法,減法
var result1 = 5 + 5; // 兩個數(shù)值相加 alert(result1); // 10 var result2 = 5 + "5"; // 一個數(shù)值和一個字符串相加 alert(result2); // "55" var result1 = 5 - true; // 4,因為 true 被轉(zhuǎn)換成了 1 var result2 = NaN - 1; // NaN var result3 = 5 - 3; // 2 var result4 = 5 - ""; // 5,因為"" 被轉(zhuǎn)換成了 0 var result5 = 5 - "2"; // 3,因為"2"被轉(zhuǎn)換成了 2 var result6 = 5 - null; // 5,因為 null 被轉(zhuǎn)換成了 0
關(guān)系操作符,返回布爾值。"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
函數(shù)
通過訪問argument對象的length屬性可以獲知有多少個參數(shù)傳遞給了函數(shù)。函數(shù)沒有重載,名字只屬于后定義的函數(shù)
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
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/97436.html
摘要:對象的核心對象是,它表示瀏覽器的一個實例。而和則表示該容器中頁面視圖區(qū)的大小。在中,與返回相同的值,即視口大小而非瀏覽器窗口大小。第三個參數(shù)是一個逗號分隔的設(shè)置字符串,表示在新窗口中都顯示哪些特性。這應(yīng)該是用戶打開窗口后的第一個頁面 BOM window對象 BOM的核心對象是window,它表示瀏覽器的一個實例。在瀏覽器中,window對象有雙重角色,它既是通過JavaScript訪...
摘要:當(dāng)代碼在一個環(huán)境中執(zhí)行時,會創(chuàng)建變量對象的一個作用域鏈。作用域鏈的用途,是保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。這樣,一直延續(xù)到全局執(zhí)行環(huán)境全局執(zhí)行環(huán)境的變量對象始終都是作用域鏈中的最后一個對象。 變量、作用域和內(nèi)存問題 基本類型和引用類型的值 基本類型值指的是簡單的數(shù)據(jù)段,而引用類型值值那些可能由多個值構(gòu)成的對象。 定義基本類型值的引用和引用類型值的方法是類似的,創(chuàng)建...
摘要:語法語法可以表示三種類型的值簡單值使用與相同的語法,可以在中表示字符串?dāng)?shù)值布爾值和。對象對象作為一種復(fù)雜數(shù)據(jù)類型,表示的是一組無序的鍵值對兒。如果字符串長度超過了個,結(jié)果中將只出現(xiàn)前個字符。 JSON 語法 JSON語法可以表示三種類型的值 簡單值:使用與 JavaScript 相同的語法,可以在 JSON 中表示字符串、數(shù)值、布爾值和 null 。但 JSON 不支持 JavaS...
摘要:匿名函數(shù)可以用來模仿塊級作用域來避免這個問題這里是塊級作用域代碼定義并立即調(diào)用了一個匿名函數(shù),將函數(shù)聲明包含在一對圓括號中,表示它實際上是一個函數(shù)表達(dá)式,而緊隨其后的另一對圓括號會立即調(diào)用這個函數(shù)。 函數(shù)表達(dá)式 遞歸 遞歸函數(shù)是在一個函數(shù)通過名字調(diào)用自身的情況下構(gòu)成的 function factrial(num){ if(num
摘要:簡介簡史誕生于年,當(dāng)時主要負(fù)責(zé)表單的輸入驗證。實現(xiàn)一個完整的由三部分組成核心文檔對象模型瀏覽器對象模型就是對實現(xiàn)該標(biāo)準(zhǔn)規(guī)定的各個方面內(nèi)容的語言的描述。把整個頁面映射為一個多層節(jié)點結(jié)構(gòu)。由萬維網(wǎng)聯(lián)盟規(guī)劃。主要目標(biāo)是映射文檔的結(jié)構(gòu)。 JavaScript簡介 JavaScript簡史 JavaScript誕生于1995年,當(dāng)時主要負(fù)責(zé)表單的輸入驗證。 如果沒有表單驗證的功能,填入信息之...
閱讀 3284·2023-04-26 01:39
閱讀 3429·2023-04-25 18:09
閱讀 1689·2021-10-08 10:05
閱讀 3307·2021-09-22 15:45
閱讀 2916·2019-08-30 15:55
閱讀 2465·2019-08-30 15:54
閱讀 3223·2019-08-30 15:53
閱讀 1386·2019-08-29 12:32