成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

高程(第三章) 基本概念

explorer_ddf / 2701人閱讀

摘要:十進(jìn)制八進(jìn)制八進(jìn)制字面值的第一位必須是零,然后是數(shù)字序列。通常與方法的返回值相同由于在中是所有對(duì)象的基礎(chǔ),因此所有對(duì)象都具有這些基本的屬性和方法。

1 語(yǔ)法 1.1 區(qū)分大小寫(xiě)

ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫(xiě)。

1.2 嚴(yán)格模式

ECMAScript 5 引入了嚴(yán)格模式(strict mode)的概念。嚴(yán)格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。
在嚴(yán)格模式下,ECMAScript 3 中的一些不確定的行為將得到處理,而且對(duì)某些不安全的操作也會(huì)拋出錯(cuò)誤。
要在整個(gè)腳本中啟用嚴(yán)格模式,可以再頂部添加如下代碼:

"use strict" 

指定函數(shù)在嚴(yán)格模式下執(zhí)行:

function  doSomething(){
    "use strict";
    //函數(shù)體
}
2 關(guān)鍵字和保留字

關(guān)鍵字
break、do、instanceof、typeof、case、else、new、var、catch、finally、return、void、continue、for、switch、while、debugger、function、this、with、default、if、throw、delete、in、try

保留字
ECMA-262 第五版非嚴(yán)格模式:class、enum、extends、super、const、export、import

ECMA-262 第五版嚴(yán)格模式增加以下限制:implements、package、public、interface、private、static、let、protected、yield

3 變量

ECMAScript的變量是松散類型的,所謂松散類型就是可以用來(lái)保存任何類型的數(shù)據(jù)。換句話說(shuō),每個(gè)變量?jī)H僅是一個(gè)用于保存值得占位符而已。

var message;

像這樣未經(jīng)過(guò)初始化的變量,會(huì)保存一個(gè)特殊的值——undefined

給未經(jīng)聲明的變量賦值在嚴(yán)格模式下會(huì)導(dǎo)致拋出PeferenceError錯(cuò)誤

4 數(shù)據(jù)類型

ES 5
5種簡(jiǎn)單數(shù)據(jù)類型(也稱為基本數(shù)據(jù)類型):Undefined、Null、Boolean、Number、String
1種復(fù)雜數(shù)據(jù)類型——Object,Object本質(zhì)上是由一組無(wú)序的名值對(duì)組成的。

ES 6 新增一種數(shù)據(jù)類型——符號(hào)對(duì)象(Symbol)

4.1 typeof 操作符

typeof 用來(lái)檢測(cè)給定變量的數(shù)據(jù)類型

"undefined"——如果這個(gè)值未定義
"boolean"——如果這個(gè)值是布爾值
"string"——如果這個(gè)值是字符串
"number"——如果這個(gè)值是數(shù)值
"object"——如果這個(gè)值是對(duì)象null
"function"——如果這個(gè)值是函數(shù)

調(diào)用typeof null會(huì)返回"object",因?yàn)樘厥庵祅ull被認(rèn)為是一個(gè)空的對(duì)象引用。

4.2 Undefined 類型

Undefined類型只有一個(gè)值,即特殊的undefined。在使用var聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是undefined

var message;
console.log(message == undefined); //true

字面量undefined的主要目的是用于比較,為了正式區(qū)分空對(duì)象指針與未經(jīng)初始化的變量

4.3 Null 類型

Null類型是第二個(gè)只有一個(gè)值的數(shù)據(jù)類型,這個(gè)特殊的值是null。從邏輯角度來(lái)看,null值表示一個(gè)空對(duì)象指針,而這也正式使用typeof操作符檢測(cè)null值時(shí)會(huì)返回"object"的原因

var car = null;
console.log(typeof null); //object

如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象,那么最好將該變量初始化為null而不是其他值。這樣一來(lái),只要直接檢查null值就可以知道相應(yīng)的變量是否已經(jīng)保存了一個(gè)對(duì)象的引用。

實(shí)際上,undefined值是派生自null值得,因此ECMA-262規(guī)定對(duì)他們的相等性測(cè)試要返回true

console.log(null == undefined); //true
4.4 Boolean 類型

Boolean類型只有兩個(gè)字面值:truefalse

Boolean類型的字面值true和false是區(qū)分大小寫(xiě)

可以對(duì)任何數(shù)據(jù)類型的值調(diào)用Boolean()函數(shù),而且總會(huì)返回一個(gè)Boolean值

數(shù)據(jù)類型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值
Boolean true false
String 任何非空字符串 "" (空字符串)
Number 任何非零數(shù)字值 0和NaN
Object 任何對(duì)象 null
Undefined N/A undefined

n/a (N/A),是not applicable的縮寫(xiě),意思是"不適用"。

4.5 Number類型

Number類型使用IEEE754格式來(lái)表示整數(shù)和浮點(diǎn)數(shù)值(雙精度值)。為支持各種數(shù)值類型ECMA-262定義了不同的數(shù)值字面量格式。

十進(jìn)制

var intNum == 55;

八進(jìn)制
八進(jìn)制字面值的第一位必須是零(0),然后是數(shù)字序列(0~7)。如果字面值中的數(shù)值超出了范圍,那么_前導(dǎo)零_ 將被忽略,后面的數(shù)值將被當(dāng)做十進(jìn)制十進(jìn)制數(shù)值解析

var octalNum1 = 070; //八進(jìn)制的56
var octalNum2 = 079; //無(wú)效的八進(jìn)制數(shù)值——解析為79
var octalNum3 = 08;  //無(wú)效的八進(jìn)制數(shù)值——解析為8

八進(jìn)制字面量在嚴(yán)格模式下是無(wú)效的,會(huì)導(dǎo)致支持該模式的JavaScript引擎拋出錯(cuò)誤。

十六進(jìn)制
十六進(jìn)制字面值的前兩位必須是0x,后跟任何十六進(jìn)制數(shù)字(0~9 及 A~F)。字母A~F可以大寫(xiě),也可以小寫(xiě)

var hexNum1 = 0xA;    //十六進(jìn)制的10
var hexNum2 = 0x1f;    //十六進(jìn)制的31

在進(jìn)行算數(shù)計(jì)算時(shí),所有以八進(jìn)制和十六進(jìn)制表示的數(shù)值最終都將被轉(zhuǎn)換成十進(jìn)制數(shù)值

4.5.1 浮點(diǎn)數(shù)值

保存浮點(diǎn)數(shù)值需要的內(nèi)存空間是保存整數(shù)值得兩倍,如果小數(shù)點(diǎn)后面沒(méi)有跟任何數(shù)字,或者浮點(diǎn)數(shù)值本身表示的就是一個(gè)整數(shù)(如1.0),那么該值將會(huì)被轉(zhuǎn)換成整數(shù)

var floatNum1 = 1;        //小數(shù)點(diǎn)后面沒(méi)有數(shù)字——解析為1
var floatNum2 = 10.0;    //整數(shù)——解析為10

對(duì)于那些極大或極小的數(shù)值,可以用e表示法(即科學(xué)計(jì)數(shù)法)表示浮點(diǎn)數(shù)值。用e表示法表示的數(shù)值等于e前面的數(shù)值乘以10的指數(shù)次冪。

var floatNum1 = 3.125e7;    //等于31250000
var floatNum2 = 3e-7;        //等于0.0000003

浮點(diǎn)數(shù)值得最高精度是17位小數(shù),但在進(jìn)行算術(shù)計(jì)算時(shí)其精度遠(yuǎn)遠(yuǎn)不如整數(shù)。例如,0.1加0.2的結(jié)果是0.30000000000000004

4.5.2 數(shù)值范圍

由于內(nèi)存的限制,ECMAScript并不能保存世界上所有的數(shù)值。

最小數(shù)值 Number.MIN_VALUE //5e-324
最大數(shù)值 Number.MAX_VALUE //1.7976931348623157e+308

如果某次計(jì)算的結(jié)果得到了一個(gè)超出JavaScript數(shù)值范圍的值,那么這個(gè)值將被自動(dòng)轉(zhuǎn)換成特殊的Infinity值

正無(wú)窮大 Infinity
負(fù)無(wú)窮大 -Infunity
isFinite()函數(shù)可以判斷一個(gè)數(shù)值是否又窮的

4.5.3 NaN

NaN,即非數(shù)值(Not a Number),是一個(gè)特殊的數(shù)值,這個(gè)數(shù)值用于本來(lái)要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況(這樣就不會(huì)拋出錯(cuò)誤了)

任何涉及NaN的操作(例如NaN/10)都會(huì)返回NaN
NaN與任何值都不相等,包括NaN本身

console.log(NaN == NaN);    //false

ECMAScript定義了isNaN()函數(shù),這個(gè)函數(shù)接受一個(gè)參數(shù),該參數(shù)可以是任何類型,而函數(shù)會(huì)幫我們確定這個(gè)函數(shù)是否"不是數(shù)值"

isNaN()也適用于對(duì)象,基于對(duì)象調(diào)用isNaN()函數(shù)時(shí),會(huì)先調(diào)用對(duì)象的valueOf()方法,再確定該方法返回的值是否可以轉(zhuǎn)換為數(shù)值。如果不能,則基于這個(gè)返回值再調(diào)用toString()方法,在測(cè)試返回值

4.5.4 數(shù)值轉(zhuǎn)換

Number()、parseInt()parseFloat()

4.6 String類型 4.6.1 字符字面量

String數(shù)據(jù)類型包含一些特殊的字符字面量,也叫轉(zhuǎn)義序列,用于表示非打印字符,或者具有其他用途的字符。

n:換行

t:制表

b:退格

r:回車

f:進(jìn)紙

x_nn_:以十六進(jìn)制代碼_nn_表示的一個(gè)字符(其中_n_為0~F)。例如,x41表示"A"

u_nnnn_:以十六進(jìn)制代碼_nnnn_表示的一個(gè)Unicode字符(其中_n_為0~F)。例如,u03a3表示希臘字符Σ

任何字符串的長(zhǎng)度都可以通過(guò)訪問(wèn)其length屬性取得:

var text = "This is the letter sigma: u03a3.";
console.log(text.length);    //輸出28

這個(gè)屬性返回的字符數(shù)包括16位字符的數(shù)目。如果字符串中包含雙字節(jié)字符,那么length屬性可能不會(huì)精確地返回字符串中的字符數(shù)目。

4.6.2 字符串的特點(diǎn)

ECMAScript中的字符串是不可變的。字符串一旦創(chuàng)建,它們的值就不能改變。要改變某個(gè)變量保存的字符串,首先要銷原來(lái)的字符串,然后再用另一個(gè)包含新值的字符串填充該變量

4.6.3 轉(zhuǎn)換為字符串

要把一個(gè)值轉(zhuǎn)換為一個(gè)字符串有兩種方法:

幾乎每個(gè)值都有的toString()方法

nullundefined沒(méi)有這個(gè)方法
toString()方法接受一個(gè)參數(shù):輸出數(shù)值的基數(shù),toString()可以輸出以二進(jìn)制、八進(jìn)制、十六進(jìn)制,乃至其他任意有效進(jìn)制格式表示的字符串值(默認(rèn)基數(shù)為10)

String()函數(shù)能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)換為字符串

如果值有toString()方法,則調(diào)用該方法(沒(méi)有參數(shù))并返回相應(yīng)的結(jié)果;
如果值是null,則返回"null";
如果值是undefined,則返回"undefined"。

4.7 Object 類型

ECMAScript中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合。對(duì)象可以通過(guò)執(zhí)行new操作符后跟要?jiǎng)?chuàng)建的對(duì)象類型的名稱來(lái)創(chuàng)建。

var o = new Object();    //無(wú)傳參時(shí)可以省略括號(hào),但不推薦這么做

Object的每個(gè)實(shí)例都具有下列屬性和方法:

constructor:保存著用于創(chuàng)建當(dāng)前對(duì)象的函數(shù)。對(duì)于前面的例子而言,構(gòu)造函數(shù)(constructor)就是Object()

hasOwnProperty(propertyName):用于檢查給定的屬性在當(dāng)前對(duì)象實(shí)例中(而不是在實(shí)例的原型中)是否存在。其中,作為參數(shù)的屬性名(_propertyName_)必須以字符串形式指定(例如:o.hasOwnProperty("name"))

isPrototypeOf(Object):用于檢查傳入的對(duì)象是否是當(dāng)前對(duì)象的原型

propertyIsEnumerable(propertyName):用于檢查給定的屬性是否能夠使用for-in語(yǔ)句來(lái)枚舉。與hasOwnProperty()方法一樣,作為參數(shù)的屬性名必須以字符串形式指定

toLocaleString():返回對(duì)象的字符串表示,該字符串與執(zhí)行環(huán)境的地區(qū)對(duì)應(yīng)

toString():返回對(duì)象的字符串表示

valueOf():返回對(duì)象的字符串、數(shù)值或布爾值表示。通常與toString()方法的返回值相同

由于在ECMAScript中Object是所有對(duì)象的基礎(chǔ),因此所有對(duì)象都具有這些基本的屬性和方法。

5 操作符 5.1 一元操作符

只能操作一個(gè)值的操作符叫做一元操作符

5.1.1 遞增和遞減操作符

執(zhí)行前置遞增和遞減操作符時(shí),變量的值都是在語(yǔ)句被求值以前改變的(在計(jì)算機(jī)領(lǐng)域,這種情況通常被稱作副效應(yīng))

var age = 29;
var antherAge = --age + 2;

console.log(age);            //輸出28
console.log(anotherAge);    //輸出30

執(zhí)行后置遞增和遞減操作符時(shí),變量的值都是在語(yǔ)句被求值之后改變的

var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2;    //等于22
var num4 = num1 + num2;        //等于21

遞增遞減操作符對(duì)任何值都適用

5.1.2 一元加和減操作符

在對(duì)非數(shù)值應(yīng)用一元加(減)操作符時(shí),該操作符會(huì)像Number()函數(shù)一樣對(duì)這個(gè)值執(zhí)行轉(zhuǎn)換。

5.2 位操作符

......

5.3 布爾操作符 5.3.1 邏輯非

邏輯非操作符由一個(gè)嘆號(hào)(!)表示,可以應(yīng)用于ECMAScript中的任何值。無(wú)論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)操作符都會(huì)返回一個(gè)布爾值。
同時(shí)使用兩個(gè)邏輯非操作符,實(shí)際上就會(huì)模擬Boolean()轉(zhuǎn)型函數(shù)的行為

5.3.2 邏輯與

邏輯與操作符由兩個(gè)和號(hào)(&&)表示,有兩個(gè)操作數(shù)
邏輯與操作可以應(yīng)用于任何類型的操作數(shù),而不僅僅是布爾值。在有一個(gè)操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值:

如果第一個(gè)操作數(shù)是對(duì)象,則返回第二個(gè)操作數(shù)

如果第二個(gè)操作數(shù)是對(duì)象,則只有在第一個(gè)操作數(shù)的求值結(jié)果為true的情況下才會(huì)返回該對(duì)象

如果兩個(gè)操作數(shù)都是對(duì)象,則返回第二個(gè)操作數(shù)

如果第一個(gè)操作數(shù)是null,則返回null

如果第一個(gè)操作數(shù)是NaN,則返回NaN

如果第一個(gè)操作數(shù)是undefined,則返回undefined

邏輯與操作屬于短路操作,如果第一個(gè)操作數(shù)能夠解決結(jié)果,那么久不會(huì)再對(duì)第二個(gè)操作數(shù)求值

var found = true;
var result = (found && someUndefinedVariable);    //這里會(huì)發(fā)生錯(cuò)誤
console.log(result);    //這一行不會(huì)執(zhí)行

上面代碼中,當(dāng)執(zhí)行邏輯與操作符時(shí)會(huì)發(fā)生錯(cuò)誤,因?yàn)樽兞縮omeUndefinedVariable沒(méi)有聲明

var found = false;
var result = (found && someUndefinedVariable);    //不會(huì)發(fā)生錯(cuò)誤
console.log(result);    //會(huì)執(zhí)行("false")
5.3.3 邏輯或

邏輯或操作符由兩個(gè)豎線符號(hào)(||)表示,有兩個(gè)操作數(shù)
與邏輯與相似,如果有一個(gè)操作數(shù)不是布爾值,邏輯或也不一定返回布爾值:

如果第一個(gè)操作數(shù)是對(duì)象,則返回第一個(gè)操作數(shù)

如果第一個(gè)操作數(shù)的求值結(jié)果為false,則返回第二個(gè)操作數(shù)

如果兩個(gè)操作數(shù)都是對(duì)象,則返回第一個(gè)操作數(shù)

如果兩個(gè)操作數(shù)都是對(duì)象,則返回第一個(gè)操作數(shù)

如果兩個(gè)操作數(shù)都是null,則返回null

如果兩個(gè)操作數(shù)都是undefined,則返回undefined

邏輯或操作符也是短路操作符。也就是說(shuō),如果第一個(gè)操作數(shù)的求值結(jié)果為true,就不會(huì)對(duì)第二個(gè)操作數(shù)求值了

5.6 關(guān)系操作符

小于(<)、大于(>)、小于等于(<=)、大于等于(>=)
當(dāng)關(guān)系操作符的操作數(shù)使用了非數(shù)值時(shí),會(huì)進(jìn)行數(shù)據(jù)轉(zhuǎn)換或完成某些奇怪的操作:

如果兩個(gè)操作數(shù)都是數(shù)值,則執(zhí)行數(shù)值比較

如果兩個(gè)操作數(shù)都是字符串,則比較兩個(gè)字符串對(duì)應(yīng)的字符編碼值

如果一個(gè)操作數(shù)是數(shù)值,則將另一個(gè)操作數(shù)轉(zhuǎn)換為一個(gè)數(shù)值,然后執(zhí)行數(shù)值比較

如果一個(gè)操作數(shù)是對(duì)象,則調(diào)用這個(gè)對(duì)象的valueOf()方法,用得到的結(jié)果按照前面的規(guī)則執(zhí)行比較。如果對(duì)象沒(méi)有valueOf()方法,則調(diào)用toString()方法,并用得到的結(jié)果根據(jù)前面的規(guī)則執(zhí)行比較

如果一個(gè)操作數(shù)是布爾值,則先將其轉(zhuǎn)換為數(shù)值,然后再執(zhí)行比較

任何操作數(shù)與NaN比較,都會(huì)返回false

5.7 相等操作符 5.7.1相等和不相等

如果兩個(gè)操作數(shù)數(shù)據(jù)類型不同,則會(huì)先轉(zhuǎn)換數(shù)據(jù)類型(通常稱為強(qiáng)制轉(zhuǎn)型)再比較

nullundefined是相等的

要比較相等性之前,不能將nullundefined轉(zhuǎn)換成其他任何值

有一個(gè)操作符為NaN時(shí),相等操作符返回false,NaN不等于NaN

如果兩個(gè)操作數(shù)都是對(duì)象,則比較它們是不是同一個(gè)對(duì)象

5.7.2 全等和不全等

除了在比較之前不轉(zhuǎn)換操作數(shù)之外,全等和不全等操作符沒(méi)有什么區(qū)別

5.8 條件操作符

variable = boolean_expression ? true_value : false_value;

var max = (num1 > num2) ? num1 : num2;
5.9 賦值操作符

等于號(hào)(=)

5.10 逗號(hào)操作符

逗號(hào)(,)

6語(yǔ)句 6.1 if語(yǔ)句
if(1 > 25){
    console.log();
}else{
    console.log();
}
6.2 do-while語(yǔ)句
var i = 0;
do{
    i += 2;
}while(i < 10);
console.log(i);
6.3 while語(yǔ)句
var i = 0;
while(1 < 10){
    i += 2;
}
6.4 for語(yǔ)句
var count = 10;
for(var i = 0; i < count; i++){
    console.log(i);
}

由于ECMAScript中不存在塊級(jí)作用域,因此在循環(huán)內(nèi)部定義的變量也可以在外部訪問(wèn)到

for語(yǔ)句中的初始化表達(dá)式、控制表達(dá)式和循環(huán)后表達(dá)式都是可選的。將這三個(gè)表達(dá)式全部省略,就會(huì)創(chuàng)建一個(gè)無(wú)限循環(huán)

6.5 for-in語(yǔ)句

for-in語(yǔ)句是一種精準(zhǔn)的迭代語(yǔ)句,可以用來(lái)枚舉對(duì)象的屬性

for(var propName in window){
    document.write(propName);
}

ECMAScript對(duì)象的屬性沒(méi)有順序。因此,通過(guò)for-in循環(huán)輸出的屬性名的順序是不可預(yù)測(cè)的

6.6 label語(yǔ)句

使用label語(yǔ)句可以在代碼中添加標(biāo)簽,以便將來(lái)使用

start: for(var i = 0; i < count; i++){
    console.log(i);
}

這個(gè)例子中定義的start標(biāo)簽可以在將來(lái)有breakcontinue語(yǔ)句引用。加標(biāo)簽的語(yǔ)句一般都要與for語(yǔ)句等循環(huán)語(yǔ)句配合使用

6.7 break和continue語(yǔ)句

breakcontinue語(yǔ)句用于在循環(huán)中精確地控制代碼的執(zhí)行

var num = 0;

outermost:
for(var i = 0; i < 10; i++){
    for(var j = 0; j < 10; j++){
        if(i == 5 && j == 5){
            break outermost;
        }
        num++;
    }
}
console.log(num);    //55
var num = 0;

outermost:
for(var i = 0; i < 10; i++){
    for(var j = 0; j < 10; j++){
        if(i == 5 && j == 5){
            continue outermost;
        }
        num++;
    }
}
console.log(num);    //95
                    //如果兩個(gè)循環(huán)都自然結(jié)束,num的值應(yīng)該是100
6.8 with語(yǔ)句(舍棄!)

嚴(yán)格模式下不允許使用with語(yǔ)句,否則將視為語(yǔ)法錯(cuò)誤。
由于大量使用with語(yǔ)句會(huì)導(dǎo)致性能下降,同時(shí)也會(huì)給調(diào)試代碼造成困難,因此不建議使用with語(yǔ)句

6.9 switch語(yǔ)句
var num = 25;
switch (true){
    case num < 0:
        console.log("0");
        break;
    case num >= 0 && num <= 10:
        console.log("0");
        break;
    default:
        console.log("0");
}

switch語(yǔ)句在比較值時(shí)使用的是全等操作符,因此不會(huì)發(fā)生類型轉(zhuǎn)換

7 函數(shù)

函數(shù)中的return語(yǔ)句可以不帶有任何返回值。在這種情況下,函數(shù)在停止執(zhí)行后將返回undefined值。

推薦的做法是要么讓函數(shù)始終都返回一個(gè)值,要么永遠(yuǎn)都不要返回值。否則,如果函數(shù)有時(shí)候返回值,有時(shí)候不返回值,會(huì)給調(diào)試代碼帶來(lái)不便

7.1 理解參數(shù)

ECMAScript中的參數(shù)在內(nèi)部是用一個(gè)數(shù)組來(lái)表示的。函數(shù)接收到的始終都是這個(gè)數(shù)組,而不關(guān)心數(shù)組中包含哪些參數(shù)(如果有參數(shù)的話)。

在函數(shù)體內(nèi)可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)這個(gè)參數(shù)數(shù)組

ECMAScript函數(shù)有一個(gè)重要的特點(diǎn):命名的參數(shù)只提供便利,但不是必須的。

命名參數(shù)可以與arguments對(duì)象一起使用,arguments的值永遠(yuǎn)與對(duì)應(yīng)命名參數(shù)的值保持同步。

沒(méi)有傳遞值的命名參數(shù)將自動(dòng)被賦予undefined值。

嚴(yán)格模式下不允許重寫(xiě)命名參數(shù)或者arguments的值,雖然可以執(zhí)行,但是命名參數(shù)與arguments對(duì)應(yīng)的值將不再同步

7.2 沒(méi)有重載

ECMAScript函數(shù)不能像傳統(tǒng)意義上那樣實(shí)現(xiàn)重載。ECMAScript函數(shù)沒(méi)有簽名,因?yàn)槠鋮?shù)是由包含零或多個(gè)值的數(shù)組來(lái)表示的。而沒(méi)有函數(shù)簽名,真正的重載是不可能做到的。

如果定義了兩個(gè)名字相同的函數(shù),則該名字只屬于后定義的函數(shù),先定義的函數(shù)將被覆蓋

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/82418.html

相關(guān)文章

  • JS高程讀書(shū)筆記--三章基本概念

    摘要:高程讀書(shū)筆記第三章語(yǔ)法中的一切變量函數(shù)名和操作符都區(qū)分大小寫(xiě)。建議無(wú)論在任何情況下都指定基數(shù)函數(shù)與函數(shù)類似。返回對(duì)象的字符串?dāng)?shù)值或布爾值表示。 JS高程讀書(shū)筆記--第三章 語(yǔ)法 ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫(xiě)。 不能把關(guān)鍵字、保留字、true、false和null用做標(biāo)識(shí)符。 嚴(yán)格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。在嚴(yán)格模式...

    keithyau 評(píng)論0 收藏0
  • JavaScript深入之參數(shù)按值傳遞

    摘要:深入系列第九篇,除了按值傳遞引用傳遞,還有第三種傳遞方式按共享傳遞定義在高級(jí)程序設(shè)計(jì)第三版,講到傳遞參數(shù)中所有函數(shù)的參數(shù)都是按值傳遞的。 JavaScript深入系列第九篇,除了按值傳遞、引用傳遞,還有第三種傳遞方式 —— 按共享傳遞 定義 在《JavaScript高級(jí)程序設(shè)計(jì)》第三版 4.1.3,講到傳遞參數(shù): ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞的。 什么是按值傳遞呢?...

    DataPipeline 評(píng)論0 收藏0
  • 一次發(fā)現(xiàn)underscore源碼bug的經(jīng)歷以及對(duì)學(xué)術(shù)界拿來(lái)主義的思考

    摘要:事情是如何發(fā)生的最近干了件事情,發(fā)現(xiàn)了源碼的一個(gè)。樓主找到的關(guān)于和區(qū)別的資料如下關(guān)于拿來(lái)主義為什么這么多文章里會(huì)出現(xiàn)澤卡斯的錯(cuò)誤代碼樓主想到了一個(gè)詞,叫做拿來(lái)主義。的文章,就深刻抨擊了拿來(lái)主義這一現(xiàn)象。 事情是如何發(fā)生的 最近干了件事情,發(fā)現(xiàn)了 underscore 源碼的一個(gè) bug。這件事本身并沒(méi)有什么可說(shuō)的,但是過(guò)程值得我們深思,記錄如下,各位看官仁者見(jiàn)仁智者見(jiàn)智。 平時(shí)有瀏覽別...

    Lionad-Morotar 評(píng)論0 收藏0
  • javascript高程三章部分筆記

    摘要:標(biāo)識(shí)符按以下規(guī)則組合第一個(gè)字符必須是一個(gè)字母,下劃線或一個(gè)美元符號(hào)。包含值的變量和尚未定義的變量是不一樣的,例子報(bào)錯(cuò)然而,對(duì)未初始化的變量執(zhí)行操作符會(huì)返回值,對(duì)未聲明的變量執(zhí)行操作符統(tǒng)一也會(huì)返回值。 1. 語(yǔ)法 1.1 區(qū)分大小寫(xiě) 變量、函數(shù)名和操作費(fèi)都區(qū)分大小寫(xiě)。 1.2 標(biāo)識(shí)符 標(biāo)識(shí)符指變量、函數(shù)、屬性的名字,或者函數(shù)的參數(shù)。標(biāo)識(shí)符按以下規(guī)則組合: 第一個(gè)字符必須是一個(gè)字母,下劃線...

    lentoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<