国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

《JavaScript 闖關(guān)記》之變量和數(shù)據(jù)類(lèi)型

HackerShell / 1742人閱讀

摘要:當(dāng)程序需要將值保存起來(lái)以備將來(lái)使用時(shí),便將其賦值給一個(gè)變量,值的類(lèi)型稱作數(shù)據(jù)類(lèi)型。運(yùn)算符鑒于是松散類(lèi)型的,因此需要有一種手段來(lái)檢測(cè)給定變量的數(shù)據(jù)類(lèi)型,就是負(fù)責(zé)提供這方面信息的運(yùn)算符。

當(dāng)程序需要將值保存起來(lái)以備將來(lái)使用時(shí),便將其賦值給一個(gè)變量,值的類(lèi)型稱作數(shù)據(jù)類(lèi)型。

變量

JavaScript 的變量是松散類(lèi)型的,所謂松散類(lèi)型就是可以用來(lái)保存任何類(lèi)型的數(shù)據(jù)。換句話說(shuō),每個(gè)變量?jī)H僅是一個(gè)用于保存值的占位符而已。定義變量時(shí)要使用關(guān)鍵字 var 來(lái)聲明的,如下所示:

var message;

這行代碼定義了一個(gè)名為 message 的變量,該變量可以用來(lái)保存任何值(像這樣未經(jīng)過(guò)初始化的變量,會(huì)保存一個(gè)特殊的值 undefined)。JavaScript 也支持直接初始化變量,因此在定義變量的同時(shí)就可以設(shè)置變量的值,如下所示:

var message = "hello";

此時(shí),變量 message 中保存了一個(gè)字符串值 "hello"。像這樣初始化變量并不會(huì)把它標(biāo)記為字符串類(lèi)型,因此,可以在修改變量值的同時(shí)修改值的類(lèi)型。如下所示:

var message = "hello";
message = 100;           // 有效的語(yǔ)句,不好的寫(xiě)法

在這個(gè)例子中,變量 message 一開(kāi)始保存了一個(gè)字符串值 "hello",然后該值又被一個(gè)數(shù)字值100取代。雖然我們不建議修改變量所保存值的類(lèi)型,但這種操作在 JavaScript 中完全有效。

有一點(diǎn)必須注意,即使用 var 運(yùn)算符定義的變量是的該作用域中的局部變量。也就是說(shuō),如果在函數(shù)中使用 var 定義一個(gè)變量,那么這個(gè)變量在函數(shù)退出后就會(huì)被銷(xiāo)毀,例如:

function test(){
    var message = "hello";  // 局部變量
}
test();
console.log(message);   // 產(chǎn)生錯(cuò)誤

這里,變量 message 是在函數(shù)中使用 var 定義的,是局部變量。當(dāng)函數(shù)被調(diào)用時(shí),就會(huì)創(chuàng)建該變量并為其賦值。而在此之后,這個(gè)變量又會(huì)立即被銷(xiāo)毀,因此例子中的下一行代碼就會(huì)導(dǎo)致錯(cuò)誤。不過(guò),可以像下面這樣省略 var 運(yùn)算符,從而創(chuàng)建一個(gè)全局變量:

function test(){
    message = "hello";  // 全局變量,不好的寫(xiě)法
}
test();
console.log(message);   // "hello"

這個(gè)例子省略了 var 運(yùn)算符,因而 message 就成了全局變量。這樣,只要調(diào)用一次 test() 函數(shù),這個(gè)變量就有了定義,就可以在函數(shù)外部的任何地方被訪問(wèn)到。

雖然省略 var 運(yùn)算符可以定義全局變量,但這也不是推薦的做法,因?yàn)樵诰植孔饔糜蛑卸x全局變量很難維護(hù),給未經(jīng)聲明的變量賦值在嚴(yán)格模式下會(huì)拋出 ReferenceError 錯(cuò)誤。

數(shù)據(jù)類(lèi)型

JavaScript 中有5種簡(jiǎn)單數(shù)據(jù)類(lèi)型(也稱為「基本數(shù)據(jù)類(lèi)型」或「原始數(shù)據(jù)類(lèi)型」):UndefinedNullBooleanNumberString 。還有1種復(fù)雜數(shù)據(jù)類(lèi)型 ObjectObject 本質(zhì)上是由一組無(wú)序的名值對(duì)組成的。JavaScript 不支持任何創(chuàng)建自定義類(lèi)型的機(jī)制,所有值最終都將是上述6種數(shù)據(jù)類(lèi)型之一。

typeof 運(yùn)算符

鑒于 JavaScript 是松散類(lèi)型的,因此需要有一種手段來(lái)檢測(cè)給定變量的數(shù)據(jù)類(lèi)型,typeof 就是負(fù)責(zé)提供這方面信息的運(yùn)算符。對(duì)一個(gè)值使用 typeof 運(yùn)算符可能返回下列某個(gè)字符串:

"undefined",如果這個(gè)值未聲明或已聲明但未初始化。

"boolean",如果這個(gè)值是布爾值。

"string",如果這個(gè)值是字符串。

"number",如果這個(gè)值是數(shù)值。

"object",如果這個(gè)值是對(duì)象或 null

"function",如果這個(gè)值是函數(shù)。

下面是幾個(gè)使用 typeof 運(yùn)算符的例子:

var message = "some string";
console.log(typeof message);     // "string"
console.log(typeof(message));    // "string"
console.log(typeof 95);          // "number"

從以上例子可以看出,typeof 運(yùn)算符既可以對(duì)變量使用,又可以對(duì)字面量使用。由于 typeof 是一個(gè)運(yùn)算符而不是函數(shù),因此例子中的圓括號(hào)盡管可以使用,但并不提倡。

typeof null 結(jié)果是 "object" 是歷史遺留 Bug,在 ECMAScript 6中,曾經(jīng)有提案為歷史平反, 將 type null 的值糾正為 "null",但最后該提案被拒。理由是歷史遺留代碼太多,不如繼續(xù)將錯(cuò)就錯(cuò)。

從技術(shù)角度講,函數(shù)在 JavaScript 中是對(duì)象,不是一種數(shù)據(jù)類(lèi)型。然而,函數(shù)也確實(shí)有一些特殊的屬性,因此通過(guò) typeof 運(yùn)算符來(lái)區(qū)分函數(shù)和其他對(duì)象是有必要的。

擴(kuò)展閱讀「為什么 JavaScript 里面 typeof null 的值是 "object"?」
https://www.zhihu.com/questio...

擴(kuò)展閱讀「MDN 之 typeof
https://developer.mozilla.org...

擴(kuò)展閱讀「JavaScript 檢測(cè)原始值、引用值、屬性」
http://shijiajie.com/2016/06/...

擴(kuò)展閱讀「JavaScript 檢測(cè)之 basevalidate.js」
http://shijiajie.com/2016/06/...

Undefined 類(lèi)型

Undefined 類(lèi)型只有1個(gè)值,即 undefined。使用 var 聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是 undefined,直接使用未聲明的變量會(huì)產(chǎn)生錯(cuò)誤。對(duì)未聲明或已聲明但未初始化的變量執(zhí)行 typeof 運(yùn)算符會(huì)返回 "undefined" 值,例如:

var message;    // 這個(gè)變量聲明之后默認(rèn)取得了 undefined 值
// var age      // 這個(gè)變量并沒(méi)有聲明

console.log(message);           // "undefined"
console.log(age);               // 產(chǎn)生錯(cuò)誤
console.log(typeof message);    // "undefined"
console.log(typeof age);        // "undefined"
Null 類(lèi)型

Null 類(lèi)型也只有1個(gè)值,即 null。它用來(lái)表示值的空缺。你可以認(rèn)為 undefined 是表示系統(tǒng)級(jí)的、出乎意料的或類(lèi)似錯(cuò)誤的值的空缺,而 null 是表示程序級(jí)的、正常的或在意料之中的值的空缺。在下列場(chǎng)景中應(yīng)當(dāng)使用 null

用來(lái)初始化一個(gè)變量,這個(gè)變量可能賦值為一個(gè)對(duì)象。

用來(lái)和一個(gè)已經(jīng)初始化的變量比較,這個(gè)變量可以是也可以不是一個(gè)對(duì)象。

當(dāng)函數(shù)的參數(shù)期望是對(duì)象時(shí),作用參數(shù)傳入。

當(dāng)函數(shù)的返回值期望是對(duì)象時(shí),作用返回值傳出。

在下列場(chǎng)景中不應(yīng)當(dāng)使用 null

不要使用 null 來(lái)檢測(cè)是否傳入了某個(gè)參數(shù)。

不要使用 null 來(lái)檢測(cè)一個(gè)未初始化的變量。

Boolean 類(lèi)型

Boolean 類(lèi)型是 JavaScript 中使用得最多的一種類(lèi)型,該類(lèi)型只有兩個(gè)字面值:truefalse。需要注意的是,他們是區(qū)分大小寫(xiě)的,也就是說(shuō) TrueFalse(以及其他的混合大小寫(xiě)形式)都不是 Boolean 值,只是標(biāo)識(shí)符。

雖然 Boolean 類(lèi)型的字面值只有兩個(gè),但 JavaScript 中所有類(lèi)型的值都能使用 if 語(yǔ)句或 Boolean() 函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的 Boolean 值,例如:

var message = "Hello world!";
if (message){
    console.log("Value is true.");  // 被執(zhí)行
}
var messageAsBoolean = Boolean(message);
console.log(messageAsBoolean);  // true

下表給出了各種數(shù)據(jù)類(lèi)型及其對(duì)應(yīng)的轉(zhuǎn)換規(guī)則。

數(shù)據(jù)類(lèi)型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值
Undefined - undefined
Null - null
Boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零數(shù)字值(包括無(wú)窮大) 0和NaN
Object 任何對(duì)象 -
Number 類(lèi)型

Number 類(lèi)型是 JavaScript 中最令人關(guān)注的數(shù)據(jù)類(lèi)型,這種類(lèi)型使用 IEEE 754 格式來(lái)表示整數(shù)和浮點(diǎn)數(shù)值(浮點(diǎn)數(shù)值在某些語(yǔ)言中也被稱為雙精度數(shù)值)。和其他編程語(yǔ)言不同,JavaScript 中的所有數(shù)字均用浮點(diǎn)數(shù)值表示。

擴(kuò)展閱讀「IEEE 754-1985」
https://en.wikipedia.org/wiki...

整數(shù)

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

var a = 10;         // 十進(jìn)制
var b = 023;        // 八進(jìn)制
var c = 0x12ac;     // 十六進(jìn)制
console.log(b);     // 19
console.log(c);     // 4780

八進(jìn)制第一位必須是0,后面跟八進(jìn)制序列0到7,如果超出了范圍,則忽略前導(dǎo)0,后面的數(shù)值當(dāng)做十進(jìn)制解析,例如:089會(huì)被解析為89。(八進(jìn)制字面量在嚴(yán)格模式下是無(wú)效的,會(huì)拋出錯(cuò)誤。)

十六進(jìn)制前兩位必須是 0x 或 0X,后跟十六進(jìn)制序列0~9、a~f(不區(qū)分大小寫(xiě)),如果超出了范圍,則會(huì)報(bào)語(yǔ)法錯(cuò)誤。

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

所謂浮點(diǎn)數(shù)值,就是該數(shù)值中必須包含一個(gè)小數(shù)點(diǎn),并且小數(shù)點(diǎn)后面必須至少有一位數(shù)字。雖然小數(shù)點(diǎn)前面可以沒(méi)有整數(shù),但我們不推薦這種寫(xiě)法。例如:

var a = 1.1;
var b = 0.1;
var c = .1;     // 有效,但不推薦

JavaScript 會(huì)不失時(shí)機(jī)的將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)。例如:

var a = 5.;      // 解析成整數(shù)5
var b = 5.0;     // 解析成整數(shù)5

對(duì)于極大或者極小的數(shù)值,可采用科學(xué)技術(shù)法(也稱e表示法)。JavaScript 會(huì)將那些小數(shù)點(diǎn)后面帶有6個(gè)零以上的小于1的浮點(diǎn)數(shù)值轉(zhuǎn)換為以e表示法表示的數(shù)值。例如:

var a = 3.14e7;             // 等于31400000
var b = 3.14E-7;            // 等于0.000000314
console.log(0.0000003);     // 3e-7

浮點(diǎn)數(shù)值的最高精度是17位小數(shù),但在進(jìn)行算術(shù)計(jì)算時(shí)其精確度遠(yuǎn)遠(yuǎn)不如整數(shù),例如:

console.log(0.1 + 0.2);     // 0.30000000000000004

這個(gè)舍入誤差會(huì)導(dǎo)致無(wú)法測(cè)試特定的浮點(diǎn)數(shù)值,因此,永遠(yuǎn)不要測(cè)試某個(gè)特定的浮點(diǎn)數(shù)值

正無(wú)窮、負(fù)無(wú)窮

由于內(nèi)存限制,JavaScript 能表示的數(shù)值范圍從 Number.MIN_VALUENumber.MAX_VALUE,并將超出范圍的數(shù)轉(zhuǎn)換成 Number.POSITIVE_INFINITYNumber.NEGATIVE_INFINITY。0作為除數(shù)是不會(huì)報(bào)錯(cuò)的,正數(shù)除以0返回正無(wú)窮,負(fù)數(shù)除以0返回負(fù)無(wú)窮,0除以0返回NaN。例如:

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

console.log(Number.POSITIVE_INFINITY);    // 正無(wú)窮  Infinity
console.log(Number.NEGATIVE_INFINITY);    // 負(fù)無(wú)窮 -Infinity

console.log( 1 / 0);     //  Infinity
console.log(-1 / 0);     // -Infinity

JavaScript 提供了 isFinite() 函數(shù),來(lái)確定一個(gè)數(shù)是不是有窮的。例如:

console.log(isFinite(100));         // true
console.log(isFinite(Infinity));    // false 
NaN

NaN(not a number),是一個(gè)特殊的數(shù)值。之所以稱它為「非數(shù)值」,是因?yàn)樗荒軈⑴c算數(shù)運(yùn)算,任何涉及 NaN 的操作都返回 NaN。并且 NaN 與任何值都不相等(包括自身)。例如:

console.log(typeof NaN);      // "number"

console.log(0 / 0);                 // NaN
console.log(NaN - NaN);             // NaN
console.log(Infinity - Infinity);   // NaN

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

JavaScript 提供了 isNaN() 函數(shù),來(lái)確定一個(gè)數(shù)是不是 NaN。例如:

console.log(isNaN(100));        //  false
console.log(isNaN("100"));      //  false
console.log(isNaN(true));       //  false
console.log(isNaN("sss"));      //  true
console.log(isNaN(NaN));        //  true
Number()parseInt()parseFloat() 轉(zhuǎn)型函數(shù)

isNaN() 函數(shù)在接收到一個(gè)值之后,會(huì)嘗試使用轉(zhuǎn)型函數(shù) Number() 將這個(gè)值轉(zhuǎn)換為數(shù)值,轉(zhuǎn)換規(guī)則如下:

undefined 轉(zhuǎn)換為 NaN

null 轉(zhuǎn)換為 0;

true 轉(zhuǎn)換為 1false 轉(zhuǎn)換為 0

number 整數(shù)轉(zhuǎn)換為十進(jìn)制,小數(shù)不變;

string 如果只包含十進(jìn)制數(shù)和小數(shù),則返回對(duì)應(yīng)的數(shù)值,如果只包含八進(jìn)制數(shù),則忽略前導(dǎo)0返回剩余部分,如果只包含十六進(jìn)制,則返回十進(jìn)制數(shù),空字符串轉(zhuǎn)換為0,其它字符串轉(zhuǎn)換為 NaN

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

由于 Number() 轉(zhuǎn)型函數(shù)在轉(zhuǎn)換字符串時(shí)不夠理想,因此還有兩個(gè)專(zhuān)門(mén)用來(lái)轉(zhuǎn)換字符串的函數(shù) parseInt()parseFloat() 函數(shù)。

parseInt() 函數(shù)會(huì)忽略字符串前面的空格,直至找到第一個(gè)非空格字符,只要第一個(gè)非空格字符不是數(shù)字或者正負(fù)號(hào),一律返回 NaN, 如果第一個(gè)非空格字符是數(shù)字字符,parseInt() 會(huì)繼續(xù)解析第二個(gè)字符,直到解析完所有后續(xù)字符或者遇到了一個(gè)非數(shù)字字符。例如:

console.log(parseInt(""));          // NaN(Number("")返回 0)
console.log(parseInt("123S"));      // 123
console.log(parseInt("12.4"));      // 12

parseFloat() 函數(shù)也會(huì)忽略字符串前面的空格,直至找到第一個(gè)非空格字符,只要第一個(gè)非空格字符不是數(shù)字或者正負(fù)號(hào)或者小數(shù)點(diǎn),一律返回 NaN, 如果第一個(gè)非空格字符是上述字符之一,parseFloat() 會(huì)繼續(xù)解析第二個(gè)字符,直到解析完所有后續(xù)字符或者遇到了一個(gè)非浮點(diǎn)數(shù)值。例如:

console.log(parseFloat("098.2"));       // 98.2
console.log(parseFloat("123.23.23"));   // 123.23
String 類(lèi)型

String 類(lèi)型用于表示由零或多個(gè)16位 Unicode 字符組成的字符序列,即字符串。字符串可以由雙引號(hào)(")或單引號(hào)(")表示,因此下面兩種字符串的寫(xiě)法都是有效的:

var firstName = "Nicholas";
var lastName = "Zakas";

JavaScript 中的這兩種語(yǔ)法形式?jīng)]有什么區(qū)別。用雙引號(hào)表示的字符串和用單引號(hào)表示的字符串完全相同。不過(guò),以雙引號(hào)開(kāi)頭的字符串也必須以雙引號(hào)結(jié)尾,而以單引號(hào)開(kāi)頭的字符串必須以單引號(hào)結(jié)尾。

String 數(shù)據(jù)類(lèi)型包含一些特殊的字符字面量,也叫轉(zhuǎn)義序列,用于表示非打印字符,或者具有其他用途的字符。例如:n 換行、t 制表、b 空格、r 回車(chē)、f 進(jìn)紙、 斜杠、" 單引號(hào),在用單引號(hào)表示的字符串中使用、" 雙引號(hào),在用雙引號(hào)表示的字符串中使用。

轉(zhuǎn)義字符可出現(xiàn)在字符串中的任意位置,且長(zhǎng)度為1。如要在字符串中顯示 ` ,則必須使用 ` 進(jìn)行轉(zhuǎn)義。例如:

console.log("
".length);    // 2
console.log("hello");        // "hello"(長(zhǎng)度為6)

大部分值都可以使用繼承而來(lái)的 toString()方法轉(zhuǎn)換為字符串,但 undefinednull 值沒(méi)有這個(gè)方法。對(duì)數(shù)值使用 toString() 方法時(shí),可以傳入一個(gè)數(shù)字基數(shù),以此輸出對(duì)應(yīng)進(jìn)制的字符串值。例如:

console.log(true.toString());   // "true"

var num = 10;
console.log(num.toString());    // "10"
console.log(num.toString(2));   // "1010"
console.log(num.toString(8));   // "12"
console.log(num.toString(16));  // "a"

在不知道要轉(zhuǎn)換的值是不是 undefinednull 的情況下,還可以使用轉(zhuǎn)型函數(shù) String(),這個(gè)函數(shù)能夠?qū)⑷魏晤?lèi)型的值轉(zhuǎn)換為字符串。String() 函數(shù)遵循下列轉(zhuǎn)換規(guī)則:

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

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

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

var value;
console.log(String(10));        // "10"
console.log(String(true));      // "true"
console.log(String(null));      // "null"
console.log(String(value));     // "undefined"
Object 類(lèi)型

JavaScript 中所有對(duì)象都繼承自 Object 類(lèi)型,每個(gè)對(duì)象都具有下列基本的屬性和方法:

constructor:保存著用于創(chuàng)建當(dāng)前對(duì)象的函數(shù)(構(gòu)造函數(shù))。

hasOwnProperty():用于檢查給定的屬性在當(dāng)前對(duì)象實(shí)例中是否存在。

propertyIsEnumerable():用于檢查給定的屬性是否能夠使用for-in語(yǔ)句來(lái)枚舉。

isPrototypeOf():用于檢查對(duì)象是否是傳入對(duì)象的原型。

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

toLocaleString():返回對(duì)象的本地字符串表示。

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

Object 本質(zhì)上是由一組無(wú)序的名值對(duì)組成,「名稱」部分是一個(gè) JavaScript 字符串,「值」部分可以是任何 JavaScript 的數(shù)據(jù)類(lèi)型(包括對(duì)象和方法)。這使用戶可以根據(jù)具體需求,創(chuàng)建出相當(dāng)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

以下兩種方法都可以創(chuàng)建一個(gè)空對(duì)象,這兩種方法在語(yǔ)義上是相同的。第二種更方便的方法叫作「對(duì)象字面量」法。這也是 JSON 格式的核心語(yǔ)法,一般我們優(yōu)先選擇第二種方法。例如:

var obj = new Object();
var obj = {};   // 好的寫(xiě)法

「對(duì)象字面量」也可以用來(lái)在對(duì)象實(shí)例中定義一個(gè)對(duì)象:

var obj = {
    name: "Carrot",
    "for": "Max",
    details: {
        color: "orange",
        size: 12
    }
}

對(duì)象的屬性可以通過(guò)鏈?zhǔn)剑╟hain)表示方法進(jìn)行訪問(wèn):

obj.details.color;       // orange
obj["details"]["size"];  // 12

完成創(chuàng)建后,對(duì)象屬性可以通過(guò)如下兩種方式進(jìn)行賦值和訪問(wèn):

obj.name = "Simon"      // 賦值
var name = obj.name;    // 訪問(wèn)

obj["name"] = "Simon";  // 賦值
var name = obj["name"]; // 訪問(wèn)
關(guān)卡
// 挑戰(zhàn)一
console.log(typeof "undefined");  // ???
console.log(typeof null);         // ???
// 挑戰(zhàn)二
var message = "some string";
console.log(typeof massage);    // ???
message = 10000;
console.log(typeof message);    // ???
// 挑戰(zhàn)三
var a;
var b = null;
var c = {};
if(a && b && c){
    console.log("true.");       // ???
}else{
    console.log("false.");      // ???
}
// 挑戰(zhàn)四
console.log(typeof (0 / 0));    // ???
console.log(023 + 123);         // ???
// 挑戰(zhàn)五
console.log(Number("1234S"));   // ???
console.log(parseInt("1234S")); // ???
// 挑戰(zhàn)六
console.log(3.14E-7 === 0.000000314);   // ???
console.log(0.1 + 0.6 === 0.7); // ???
console.log(0.1 + 0.7 === 0.8); // ???
console.log(NaN === NaN);       // ???
// 挑戰(zhàn)七
console.log("
ight
ow");          // ???
console.log("
ight
ow".length);   // ???
console.log(010.toString(2));       // ???
// 挑戰(zhàn)八
// 1、為 person、wife、child 對(duì)象新增 weight 屬性,數(shù)值分別為 62、36、15。
// 2、為 person 對(duì)象新增二胎 child2 子對(duì)象,name 為 emma,其他屬性自行發(fā)揮。
var person = {
    name: "stone",
    age: 30,
    wife: {
        name: "sohpie",
        age: 30
    },
    child:{
        name: "tommy",
        age: 3
    }
}

挑戰(zhàn)九,深度閱讀下面兩篇文章,提出你的疑問(wèn)。

「JavaScript 檢測(cè)原始值、引用值、屬性」
http://shijiajie.com/2016/06/...

「JavaScript 檢測(cè)之 basevalidate.js」
http://shijiajie.com/2016/06/...

更多

關(guān)注微信公眾號(hào)「劼哥舍」回復(fù)「答案」,獲取關(guān)卡詳解。
關(guān)注 https://github.com/stone0090/javascript-lessons,獲取最新動(dòng)態(tài)。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80095.html

相關(guān)文章

  • JavaScript 闖關(guān)

    摘要:對(duì)象數(shù)組初始化表達(dá)式,闖關(guān)記之上文檔對(duì)象模型是針對(duì)和文檔的一個(gè)。闖關(guān)記之?dāng)?shù)組數(shù)組是值的有序集合。數(shù)組是動(dòng)態(tài)的,根闖關(guān)記之語(yǔ)法的語(yǔ)法大量借鑒了及其他類(lèi)語(yǔ)言如和的語(yǔ)法。 《JavaScript 闖關(guān)記》之 DOM(下) Element 類(lèi)型 除了 Document 類(lèi)型之外,Element 類(lèi)型就要算是 Web 編程中最常用的類(lèi)型了。Element 類(lèi)型用于表現(xiàn) XML 或 HTML 元素...

    mj 評(píng)論0 收藏0
  • JavaScript 闖關(guān)語(yǔ)句

    摘要:會(huì)自動(dòng)調(diào)用轉(zhuǎn)換函數(shù)將這個(gè)表達(dá)式的結(jié)果轉(zhuǎn)換為一個(gè)布爾值。語(yǔ)句語(yǔ)句與語(yǔ)句的關(guān)系最為密切,而且也是在其他語(yǔ)言中普遍使用的一種流控制語(yǔ)句。 表達(dá)式在 JavaScript 中是短語(yǔ),那么語(yǔ)句就是整句命令。表達(dá)式用來(lái)計(jì)算出一個(gè)值,語(yǔ)句用來(lái)執(zhí)行以使某件事發(fā)生。從本質(zhì)上看,語(yǔ)句定義了 JavaScript 中的主要語(yǔ)法,語(yǔ)句通常使用一或多個(gè)關(guān)鍵字來(lái)完成給定任務(wù)。語(yǔ)句可以很簡(jiǎn)單,例如通知函數(shù)退出;也可...

    OBKoro1 評(píng)論0 收藏0
  • JavaScript 闖關(guān)垃圾回收內(nèi)存管理

    摘要:內(nèi)存回收此時(shí),局部變量就沒(méi)有存在的必要了,因此可以釋放它們的內(nèi)存以供將來(lái)使用。局部變量會(huì)在它們離開(kāi)執(zhí)行環(huán)境時(shí)自動(dòng)被解除引用,如下面這個(gè)例子所示手工解除的引用由于局部變量在函數(shù)執(zhí)行完畢后就離開(kāi)了其執(zhí)行環(huán)境,因此無(wú)需我們顯式地去為它解除引用。 JavaScript 具有自動(dòng)垃圾收集機(jī)制(GC:Garbage Collecation),也就是說(shuō),執(zhí)行環(huán)境會(huì)負(fù)責(zé)管理代碼執(zhí)行過(guò)程中使用的內(nèi)存。而...

    Sleepy 評(píng)論0 收藏0
  • JavaScript 闖關(guān)語(yǔ)法

    摘要:的語(yǔ)法大量借鑒了及其他類(lèi)語(yǔ)言如和的語(yǔ)法。也就是說(shuō),關(guān)鍵字變量函數(shù)名和所有的標(biāo)識(shí)符都必須采取一致的大小寫(xiě)形式。中的字面量有字符串?dāng)?shù)字布爾值對(duì)象數(shù)組函數(shù)正則表達(dá)式,以及特殊的值。這是為了不破壞語(yǔ)法而特意選定的語(yǔ)法。 JavaScript 的語(yǔ)法大量借鑒了 C 及其他類(lèi) C 語(yǔ)言(如 Java 和 Perl)的語(yǔ)法。因此,熟悉這些語(yǔ)言的開(kāi)發(fā)人員在接受 JavaScript 更加寬松的語(yǔ)法時(shí),...

    xiangzhihong 評(píng)論0 收藏0
  • JavaScript 闖關(guān)函數(shù)

    摘要:把上面的函數(shù)聲明改為等價(jià)的函數(shù)表達(dá)式,就會(huì)在執(zhí)行期間導(dǎo)致錯(cuò)誤。換句話說(shuō),引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對(duì)象當(dāng)在網(wǎng)頁(yè)的全局作用域中調(diào)用函數(shù)時(shí),對(duì)象引用的就是。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)對(duì)象的值。 函數(shù)是一段代碼,它只定義一次,但可以被執(zhí)行或調(diào)用任意次。在 JavaScript 里,函數(shù)即對(duì)象,程序可以隨意操控它們。比如,可以把函數(shù)賦值給變量,或者作為...

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

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

0條評(píng)論

HackerShell

|高級(jí)講師

TA的文章

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