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

資訊專欄INFORMATION COLUMN

一眼看穿

jsdt / 2810人閱讀

摘要:,返回對象的字符串表示。布爾操作符邏輯非號表示返回一個布爾值,可以應(yīng)用于中的任何值規(guī)則如果操作數(shù)是一個對象,返回如果操作數(shù)是一個空字符串,返回如果操作數(shù)是一個非空字符串,返回如果操作數(shù)是數(shù)值,返回如果操作數(shù)是任

前段時間忙,好久沒更新了,繼續(xù)梳理基礎(chǔ)知識
這期總結(jié)的是JS的基本概念
標(biāo)識符

所謂的標(biāo)識符是指變量,函數(shù)屬性的名字,或者函數(shù)的參數(shù)

第一個字符必須是一個字母,下劃線(_)或者一個美元符號($),其他字母可以是字母,下劃線,美元符號或數(shù)字。

嚴(yán)格模式

嚴(yán)格模式是為JS定義一種不同的解析與執(zhí)行模型,要啟用嚴(yán)格模式,可添加如下代碼

"use strict"
添加區(qū)域

想要整個腳本都啟用,則加到腳本頂部

想在某個函數(shù)體內(nèi)啟用,則在函數(shù)體內(nèi)的頂部添加

添加目的

消除Javascript語法的一些不合理、不嚴(yán)謹(jǐn)之處,減少一些怪異行為

消除代碼運(yùn)行的一些不安全之處,保證代碼運(yùn)行的安全

提高編譯器效率,增加運(yùn)行速度

為未來新版本的Javascript做好鋪墊

變量

ECMAScript的變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)

變量的定義

var

let(ES6引入)

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

ECMAScript中有7種數(shù)據(jù)類型,其中6種是基本數(shù)據(jù)類型,1種是復(fù)雜數(shù)據(jù)類型
基本數(shù)據(jù)類型 String,Number,Boolean,Null,Undefined,Symbol
復(fù)雜數(shù)據(jù)類型 Object

typeof操作符

typeof操作符用于判斷數(shù)據(jù)類型,可返回值有

string

number

boolean

undefined

object

function

symbol

typeof對于基本類型,除了null都可以顯示正確類型

typeof對于對象,除了函數(shù)都會顯示 object

對于 null 來說,雖然它是基本類型,但是會顯示 object,這是一個存在很久了的 Bug,因?yàn)樵?JS 的最初版本中,使用的是 32位系統(tǒng),為了性能考慮使用低位存儲了變量的類型信息,000 開頭代表是對象,然而 null 表示為全零,所以將它錯誤的判斷為 object。雖然現(xiàn)在的內(nèi)部類型判斷代碼已經(jīng)改變了,但是對于這個 Bug 卻是一直流傳下來。

如果我們想獲得一個變量的正確類型,可以通過 Object.prototype.toString.call(xx)。這樣我們就可以獲得類似 [object Type] 的字符串。

只有一個值的數(shù)據(jù)類型:undefined,null

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

實(shí)際上,undefined值是派生自null值的,因此對他們的相等性測試要返回true
也就是說

null == undefined // true
null === undefined // false
Boolean(any :any) :boolean

n/a 或 N/A 指不適用的意思

數(shù)據(jù)類型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值
Boolean true false
String 任何非空字符串 **(空字符串)
Number 任何非零數(shù)字值(包括無窮大) 0和NaN
Object 任何對象 null
undefined n/a undefined
null n/a null
Number類型

八進(jìn)制字面值的第一位必須是零(0),十六進(jìn)制的字面值的前兩位必須是0x

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

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

保存浮點(diǎn)數(shù)值需要的內(nèi)存空間是保存整數(shù)值的兩倍

isFinite()函數(shù)可用于測試一個數(shù)值是不是有窮的

NaN

NaN,即非數(shù)值,是一個特殊的數(shù)值,這個數(shù)值用于表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況,這樣做可以防止拋出錯誤而停止代碼執(zhí)行

NaN特點(diǎn)

任何涉及NaN(例:NaN/6)都會返回NaN

NaN與任何值都不相等,包括NaN本身

isNaN()該函數(shù)可用于確認(rèn)參數(shù)是否"不是數(shù)值",該函數(shù)接收到一個值后,會嘗試將這個值轉(zhuǎn)換為數(shù)值,而任何不能被轉(zhuǎn)換為數(shù)值的值都會導(dǎo)致這個函數(shù)返回true

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

有三個函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值: Number()、parseInt()和parseFloat(),Number()適用于任何數(shù)據(jù)類型,而后者則專門用于把字符串轉(zhuǎn)換成數(shù)值。

Number(any :any) :number

boolean: true和false分別被轉(zhuǎn)換成0和1

number: 返回原值

null: 返回0

undefined: 返回NaN

string:

字符串只包含數(shù)字,則將其轉(zhuǎn)換成十進(jìn)制數(shù)值

字符串中包含有效的浮點(diǎn)格式,則將其轉(zhuǎn)換為相應(yīng)的浮點(diǎn)數(shù)值

字符串中包含有效的十六進(jìn)制格式,則將其轉(zhuǎn)換為相同大小的十進(jìn)制整數(shù)值

字符串為空,轉(zhuǎn)換成0

字符串中包含除上述格式之外的字符,將其轉(zhuǎn)換成NaN

object: 會先調(diào)用對象的valueOf()方法,然后依照前面的規(guī)則轉(zhuǎn)換返回的值,如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對象toString()方法,然后再次依照前面規(guī)則轉(zhuǎn)換返回的字符串值

parseInt(str: string, base?: number) :number

轉(zhuǎn)換成字符串時,會忽略字符串前面的空格,直至找到第一個非空格字符,如果第一個字符不是數(shù)字字符或者負(fù)號,則會返回NaN

該函數(shù)會一直解析,直到遇到一個非數(shù)字字符,則停止轉(zhuǎn)換。例:parseInt("123abc") // 123

遇到浮點(diǎn)數(shù)字符串,則會去小數(shù)取整。例parseInt("11.3") // 11

如果以O(shè)x開頭且后面跟數(shù)字字符,會將其當(dāng)做一個十六進(jìn)制整數(shù),如果字符串以0開頭后跟數(shù)字字符,則會將其當(dāng)作一個八進(jìn)制數(shù)來解析

第二個參數(shù)是可選的,代表進(jìn)制,十六進(jìn)制則填16

parseFloat(str: string) :number

parseFloat和parseInt類似,只不過他可以解析整數(shù)和浮點(diǎn)數(shù)

該函數(shù)只能解析十進(jìn)制值,因此它沒有用第二個參數(shù)指定基數(shù)的用法

String類型

字符串的特點(diǎn)是不可變的,也就是說,字符串一旦創(chuàng)建,它們的值就不能改變。要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后再用另一個包含新值的字符串填充該變量。

toString(base ?: number) :string

該方法用于將一個值轉(zhuǎn)換為字符串類型,幾乎所有類型都有這個函數(shù),除了null和undefined, 該函數(shù)有個參數(shù),用于設(shè)置輸出數(shù)值的基數(shù)。

String(any :any) :string

該函數(shù)能將任何類型轉(zhuǎn)換成字符串

規(guī)則:

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

如果值是null,則返回"null"

如果值是undefined,則返回"undefined"

Object類型

在ECMAScript中的對象其實(shí)就是一組數(shù)據(jù)和功能的集合。對象可以通過執(zhí)行new操作符后跟要創(chuàng)建的對象類型的名稱來創(chuàng)建。在不給構(gòu)造函數(shù)傳遞參數(shù)時,括號可省略。
所有引用類型的值都是Object的實(shí)例

僅僅創(chuàng)建Object的實(shí)例并沒有什么用處,關(guān)鍵是要理解一個重要的思想: 在ECMAScript中,Object類型是它的實(shí)例的基礎(chǔ),換句話說,Object類型所具有的任何屬性和方法也同樣存在于更具體的對象中。
每個對象都具有下列屬性和方法

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

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

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

toString() :string, 返回對象的字符串表示。

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

操作符 一元操作符(只能操作一個值的操作符) 遞增遞減操作符(++, --),包括兩類,前置型和后置型

前置型指將操作符放在數(shù)值變量前面,在計(jì)算數(shù)值時優(yōu)先執(zhí)行變量數(shù)值

后置型指將操作符放在數(shù)值變量后面,在計(jì)算數(shù)值時最后執(zhí)行變量數(shù)值

遞增遞減操作符適用于任何類型的值,它遵循如下規(guī)則

字符串?dāng)?shù)字類型時,先將其轉(zhuǎn)換為數(shù)字值,再執(zhí)行加減操作,字符串變量變成數(shù)值變量。

非字符串?dāng)?shù)字類型時,將變量值設(shè)置為NaN,字符串變量變成數(shù)值變量。

布爾類型時,先將其轉(zhuǎn)換成0或1,再執(zhí)行加減操作,布爾值變量變成數(shù)值變量。

浮點(diǎn)類型時,直接執(zhí)行加減1操作。

對象時,先調(diào)用對象的valueOf()方法,已取得一個可供操作的值,然后對該值應(yīng)用前述規(guī)則。如果結(jié)果是NaN,則在調(diào)用toString()方法后再應(yīng)用前述規(guī)則,對象變量變成數(shù)值變量

一元加和減操作符

對數(shù)值應(yīng)用一元加減操作符時,代表正負(fù)號。

對非數(shù)值應(yīng)用一元加減操作符時,相當(dāng)于調(diào)用Number()函數(shù)。

位操作符

ECMAScript中的所有數(shù)值都以64位格式存儲,但位操作符不能直接操作64位的值,而是先將64位的值轉(zhuǎn)換成32位的整數(shù),然后執(zhí)行操作,最后再將結(jié)果轉(zhuǎn)換成回64位。

對于有符號的整數(shù),32位中的前31位用于表示整數(shù)的值,第32位用于表示數(shù)值的符號,0表示整數(shù),1表示負(fù)數(shù)。

負(fù)數(shù)同樣以二進(jìn)制碼存儲,但使用的格式是二進(jìn)制補(bǔ)碼,計(jì)算一個數(shù)值的二進(jìn)制補(bǔ)碼需要經(jīng)過下列步驟

求這個數(shù)值絕對值的二進(jìn)制碼。

求二進(jìn)制反碼,即將0替換為1,1替換為0

得到的二進(jìn)制反碼加1

按位非

該操作符用一條波浪線(~)表示,執(zhí)行按位非的結(jié)果就是返回數(shù)值的反碼。

按位非操作的本質(zhì):操作數(shù)的負(fù)值減1

按位與

該操作符用一個和號字符(&)表示,它有兩個操作符數(shù),同1得1,有0得0。

按位或

該操作符用一個豎線符號(|)表示,它有兩個操作符數(shù),有1得1,同0得0。

按位異或

該操作符用一個插入符號(^)表示,它有兩個操作符數(shù),只有一個1才得1,兩位都是1或都是0,則返回0。

左移

該操作符由兩個小于號(<<)表示,這個操作符會將數(shù)值的所有位(不包括符號位)向移動指定的位數(shù),不足補(bǔ)0,左移不會影響符號位。

有符號右移

該操作符由兩個大于號(>>)表示,這個操作符會將數(shù)值的所有位(不包括符號位)向移動指定的位數(shù),不足補(bǔ)0,但保留符號位。

無符號右移

該操作符由三個大于號(>>>)表示,這個操作符會將數(shù)值的所有位(32位,包括符號位)向移動指定的位數(shù),不足補(bǔ)0。

布爾操作符 邏輯非(!號表示)返回一個布爾值,可以應(yīng)用于ECMAScript中的任何值

規(guī)則:

如果操作數(shù)是一個對象,返回false

如果操作數(shù)是一個空字符串,返回true

如果操作數(shù)是一個非空字符串,返回false

如果操作數(shù)是數(shù)值0,返回true

如果操作數(shù)是任意非0數(shù)值(包括Infinity),返回false

如果操作數(shù)是null,返回true

如果操作數(shù)是NaN,返回true

如果操作數(shù)是undefined,返回true

同時使用兩個邏輯非操作符,實(shí)際上就會模擬Boolean()轉(zhuǎn)換函數(shù)的行為,第一個邏輯非操作會基于無論什么操作數(shù)返回一個布爾值,而第二個邏輯非操作則對該布爾值求反,于是就得到了這個值真正對應(yīng)的布爾值,真正結(jié)果與對這個值使用Boolean()函數(shù)相同。

邏輯與(&&表示)

邏輯與操作可以應(yīng)用于任何類型的操作數(shù),而不僅僅是布爾值,在有一個操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值

規(guī)則:

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

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

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

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

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

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

邏輯與操作屬于短路操作,即如果第一個操作數(shù)能夠決定結(jié)果,那么就不會再對第二個操作數(shù)求值。對于邏輯與操作而言,如果第一個操作數(shù)是false,則它不會執(zhí)行第二個操作數(shù)。

邏輯或(||表示)

和邏輯與相似,如果有一個操作數(shù)不是布爾值,邏輯或也不一定返回布爾值;
規(guī)則:

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

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

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

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

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

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

邏輯或也是短路操作符,如果第一個操作數(shù)的求值結(jié)果為true,就不會對第二個操作數(shù)求值了。利用邏輯或這一行為來避免為變量賦null或undefined值

乘性操作符

乘性操作符在操作數(shù)不是數(shù)值情況下會先使用Number()將其轉(zhuǎn)換為數(shù)值。

乘法(*)

規(guī)則:

兩個數(shù)都為數(shù)值,則執(zhí)行相應(yīng)的乘法運(yùn)算,若數(shù)值超出Infinity則返回Infinity或-Infinity

若有一個操作數(shù)為NaN,則結(jié)果為NaN

若Infinity與0相乘,則結(jié)果為NaN

若Infinity與非0相乘,則結(jié)果為Infinity,符號取決于有符號操作數(shù)的符號。

若Infinity與Infinity相乘,則結(jié)果是Infinity

若一個操作數(shù)不是數(shù)值,則在后臺調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,再應(yīng)用上面規(guī)則

除法(/)

規(guī)則:

兩個數(shù)都是數(shù)值,則執(zhí)行相應(yīng)的除法運(yùn)算,若數(shù)值超出Infinity則返回Infinity或-Infinity

若有一個操作數(shù)是NaN,則結(jié)果是NaN

若Infinity被Infinity除,則結(jié)果是NaN

若0被0除,則結(jié)果是NaN

若非0有限數(shù)除以0,則結(jié)果是Infinity或-Infinity

若Infinity被任何非零數(shù)值除,結(jié)果是Infinity或-Infinity

若一個操作數(shù)不是數(shù)值,則在后臺調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,再應(yīng)用上面規(guī)則

求模(%)

規(guī)則:

兩個數(shù)都是數(shù)值,則執(zhí)行相應(yīng)的余數(shù)運(yùn)算

如果被除數(shù)是無窮大值而除數(shù)是有限大的數(shù)值,則返回NaN

如果被除數(shù)是有限大的數(shù)值而除數(shù)是零,則結(jié)果是NaN

如果是Infinity被Infinity除,則結(jié)果是NaN

如果被除數(shù)是有限大的數(shù)值而除數(shù)是無窮大的數(shù)值,則結(jié)果是被除數(shù)

如果被除數(shù)是零,則結(jié)果是零

若一個操作數(shù)不是數(shù)值,則在后臺調(diào)用Number()將其轉(zhuǎn)換為數(shù)值,再應(yīng)用上面規(guī)則

加性操作符 加法

規(guī)則:

兩個數(shù)都是數(shù)值,執(zhí)行常規(guī)的加法運(yùn)算,根據(jù)下列數(shù)值返回結(jié)果

若一個操作數(shù)是NaN,則結(jié)果是NaN

若兩個操作數(shù)都是Infinity,則結(jié)果是Infinity

若兩個操作數(shù)都是-Infinity,則結(jié)果是-Infinity

若Infinity加-Infinity,則結(jié)果是NaN

(+0) + (+0) = (+0)

(-0) + (-0) = (-0)

(+0) + (-0) = (+0)

若有一個操作數(shù)是字符串,則根據(jù)下列規(guī)則

如果兩個操作數(shù)都是字符串,則將第二個操作數(shù)與第一個操作數(shù)拼接起來

如果只有一個操作數(shù)是字符串,則將另一個操作數(shù)轉(zhuǎn)換為字符串,然后將兩個字符串拼接起來

若有一個操作數(shù)是對象、數(shù)值或布爾值,則調(diào)用他們的toString()方法取得相應(yīng)的字符串值,然后再應(yīng)用前面關(guān)于字符串的規(guī)則,對于undefined和null,則分別調(diào)用String()函數(shù)并取得字符串"undefined"和"null"

減法

規(guī)則:

若兩個數(shù)都是數(shù)值,執(zhí)行常規(guī)的減法運(yùn)算,并返回相應(yīng)的結(jié)果

若一個操作數(shù)是NaN,則結(jié)果是NaN

若Infinity減Infinity,則結(jié)果是NaN

若-Infinity減-Infinity,則結(jié)果是NaN

若Infinity減-Infinity,則結(jié)果是Infinity

若-Infinity減Infinity,則結(jié)果是-Infinity

(+0) - (+0) = (+0)

(-0) - (+0) = (-0)

(-0) - (-0) = (+0)

若有一個操作數(shù)是字符串,布爾值,null或undefined,則先在后臺調(diào)用Number()函數(shù)將其轉(zhuǎn)換為數(shù)值,然后再根據(jù)前面的規(guī)則執(zhí)行減法計(jì)算,若轉(zhuǎn)換結(jié)果是NaN,則結(jié)果是NaN

若有一個操作數(shù)是對象,則調(diào)用對象的valueOf()方法以取得表示該對象的數(shù)值,若得到的值是NaN,則減法結(jié)果就是NaN,若對象沒有valueOf()方法,則調(diào)用其toString()方法并將得到的字符串轉(zhuǎn)換為數(shù)值

關(guān)系操作符

指小于(<),大于(>),小于等于(<=)和大于等于(>=),皆返回布爾值
規(guī)則:

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

若兩個操作數(shù)都是字符串,則比較兩個字符串對應(yīng)的字符編碼值

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

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

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

任何操作數(shù)與NaN比較,結(jié)果都是false

相等操作符 相等(==)和不相等(!=)——先轉(zhuǎn)換再比較

規(guī)則:

若有一個操作數(shù)是布爾值,則在比較相等性之前先將其轉(zhuǎn)換為數(shù)值,false轉(zhuǎn)換成0,true轉(zhuǎn)換成1。

若一個操作數(shù)是字符串,另一個操作數(shù)是數(shù)值,在比較相等性之前先將字符串轉(zhuǎn)換為數(shù)值。

如果一個操作數(shù)是對象,另一個操作數(shù)不是,則調(diào)用對象的valueOf()方法,用得到的基本類型值按照前面的規(guī)則進(jìn)行比較

null和undefined是相等的。

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

如果有一個操作數(shù)是NaN,則相等操作符返回false,而不相等操作符返回true,即使兩個操作數(shù)都是NaN,相等操作符也返回false,因?yàn)镹aN和NaN不相等

如果兩個操作數(shù)都是對象,則比較它們是不是同一個對象,如果兩個操作數(shù)都指向同一對象,則相等操作符返回true,否則返回false。

全等(===)和不全等(!==)——僅比較不轉(zhuǎn)換

null==undefined會返回true,因?yàn)樗鼈兪穷愃频闹担玭ull===undefined會返回false,因?yàn)樗鼈兪遣煌愋偷闹怠?/p> 條件操作符

三元運(yùn)算符 variable = boolean_expression ? true_value : false_value
賦值操作符

乘/賦值(*=)

除/賦值(/=)

加/賦值(+=)

減/賦值(-=)

模/賦值(%=)

左移/賦值(<<=)

有符號右移/賦值(>>=)

無符號右移/賦值(>>>=)

所有的賦值操作符規(guī)則都一樣

let num = 10
num += 1 // 等價于 num = num + 1
逗號操作符

逗號操作符可以在一條語句中執(zhí)行多個操作

var num1 = 1, num2 = 2, num3 = 3; 

逗號操作符多用于聲明多個變量,除此之外,還可以用于賦值,在賦值時,逗號操作符總會返回表達(dá)式的最后一項(xiàng)

let num = (5, 1, 4, 3, 0); // num的值為0
語句

各語言的語句都差不多,這里就不一一介紹了,這里只列舉

if語句

do-while語句

while語句

for語句

for-in語句,迭代語句,可用來枚舉對象的屬性; 如果表示要迭代的對象的變量值為null或undefined,for-in語句會拋出錯誤,ES5雖然修正這一行為,他不會拋出錯誤,只是不執(zhí)行循環(huán)體,但是在使用for-in循環(huán)之前,先檢測確認(rèn)該對象的值是不是null或undefined

label語句

break和continue語句,break和contiune的區(qū)別在于,break是退出當(dāng)前循環(huán)體; continue是退出當(dāng)前循環(huán),繼續(xù)執(zhí)行下一個循環(huán)

with語句,作用是把代碼作用域設(shè)置到一個特定的對象中,目的是為了簡化多次編寫同一個對象的工作。大量使用with語句會導(dǎo)致性能下降。

switch語句,switch中可以使用任何的數(shù)據(jù)類型,無論是字符串還是對象,case的值可以是常量,變量和表達(dá)式。switch中使用的是全等操作符,不會發(fā)生類型轉(zhuǎn)換

js里面的函數(shù)沒有簽名,函數(shù)重載也不可能實(shí)現(xiàn),即不能定義相同名字的函數(shù),通過參數(shù)個數(shù)的多少來調(diào)用相應(yīng)的函數(shù)

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

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

相關(guān)文章

  • 一眼看穿

    摘要:沒錯,中的繼承正如你所理解的一樣,也是成對出現(xiàn)的。由于中的函數(shù)沒有簽名,因此無法實(shí)現(xiàn)接口繼承,只支持實(shí)現(xiàn)繼承,而繼承的主要方式,是通過原型鏈實(shí)現(xiàn)的,要理解原型鏈,首先要知道什么是原型,不懂的小伙伴,可以看這篇博文一眼看穿 繼承 我們知道JS是OO編程,自然少不了OO編程所擁有的特性,學(xué)習(xí)完原型之后,我們趁熱打鐵,來聊聊OO編程三大特性之一——繼承。 繼承這個詞應(yīng)該比較好理解,我們耳熟能...

    Amio 評論0 收藏0
  • 一眼看穿

    摘要:復(fù)制變量值基本類型在復(fù)制變量值的時候,會在變量對象上創(chuàng)建一個新值,然后把該值復(fù)制到為新變量分配的位置上。 這篇文章將梳理下環(huán)境,作用域鏈,變量對象和活動對象,以及內(nèi)存管理問題。 基本類型和引用類型的值 我們都知道JS中的數(shù)據(jù)類型有兩大類,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,下面從三個方面來解剖他們①保存方式基本類型的值是指簡單的數(shù)據(jù)段,引用類型的值是指那些可能由多個值構(gòu)成的對象。 基本類型...

    venmos 評論0 收藏0
  • 一眼看穿

    摘要:說白了就是可以在構(gòu)造函數(shù)上調(diào)用屬性來指向原型,從而創(chuàng)建那個對象實(shí)例的原型對象使用原型有什么好處呢使用原型的好處是可以讓所有對象實(shí)例共享它所包含的屬性和方法。轉(zhuǎn)暈了麼是不是超級亂 原型 原型還是比較重要的,想單獨(dú)抽出一章來細(xì)說,說到原型,那么什么是原型呢? 在構(gòu)造函數(shù)創(chuàng)建出來的時候,都有一個prototype(原型)屬性,這個屬性是一個指針,系統(tǒng)會默認(rèn)的創(chuàng)建并關(guān)聯(lián)一個對象,這個對象就是原...

    hqman 評論0 收藏0
  • 一眼看穿

    摘要:故事緣由一天,一哥們說,騷年,我發(fā)現(xiàn)擼碼一段時間后,回看以前自己寫的代碼,水到掉渣了,我們來重構(gòu)吧我想,既然要重構(gòu),逼格肯定要比之前的高才行啦,等等 故事緣由 一天,一哥們說,騷年,我發(fā)現(xiàn)擼碼一段時間后,回看以前自己寫的代碼,水到掉渣了,我們來重構(gòu)吧!我想,既然要重構(gòu),逼格肯定要比之前的高才行啦,等等

    baukh789 評論0 收藏0
  • 一眼看穿

    故事緣由 對象這個詞,在我們

    Loong_T 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<