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