亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

《javascript高級(jí)程序設(shè)計(jì)》筆記:變量及變量檢測(cè)

XiNGRZ / 2971人閱讀

摘要:變量的特點(diǎn)變量是松散類型的,所謂松散類型就是可以用來(lái)保存任何類型的數(shù)據(jù)。

變量的特點(diǎn)

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

js變量可以用來(lái)保存任何值,未經(jīng)過(guò)初始化的變量,會(huì)保存一個(gè)特殊的值—undefined,如:var msg;

js變量的初始化并不會(huì)為它標(biāo)記類型;初始化的過(guò)程就是給變量賦一個(gè)值那么簡(jiǎn)單。因此,可以在修改變量值的同時(shí)修改值的類型(不推薦)

js變量的生命周期就是其所在的作用域,因此不推薦在全局內(nèi)定義變量(內(nèi)存泄漏)

js變量直接聲明時(shí),會(huì)創(chuàng)建一個(gè)全局變量,嚴(yán)格模式下會(huì)報(bào)錯(cuò) function test(){ msg = "hi"; }

可以使用一條語(yǔ)句定義多個(gè)變量,只要像下面這樣把每個(gè)變量(初始化或不初始化均可)用逗號(hào)分隔開(kāi)即可

var message = "hi",
    found = false,
    age = 29;

變量的分類和檢測(cè)

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

1. 變量檢測(cè)—typeof

typeof始終返回的是下列的某個(gè)字符串
"undefined"—如果這個(gè)值未定義;
"boolean"—如果這個(gè)值是布爾值;
"string"—如果這個(gè)值是字符串;
"number"—如果這個(gè)值是數(shù)值;
"object"—如果這個(gè)值是對(duì)象或 null;
"function"—如果這個(gè)值是函數(shù);

注意:
特殊值null被認(rèn)為是一個(gè)空的對(duì)象引用,因此typeof null === "object"
typeof會(huì)將函數(shù)類型識(shí)別為"function",雖然函數(shù)不是多帶帶的數(shù)據(jù)類型

var s = "Nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new Object();
var f = new Function();

alert(typeof s); //string
alert(typeof i); //number
alert(typeof b); //boolean
alert(typeof u); //undefined
alert(typeof n); //object
alert(typeof o); //object
alert(typeof f); //function

typeof 操作符是確定一個(gè)變量是字符串、數(shù)值、布爾值,還是 undefined 的最佳工具。如果變量的值是一個(gè)對(duì)象或 null,則 typeof 操作符會(huì)像下面例子中所示的那樣返回"object",我們依然無(wú)法確定對(duì)象的具體類型...

2. 變量檢測(cè)—instanceof

語(yǔ)法: result = variable instanceof constructor
如果變量是給定引用類型(根據(jù)它的原型鏈來(lái)識(shí)別)的實(shí)例,那么 instanceof 操作符就會(huì)返回 true

alert(person instanceof Object);
alert(colors instanceof Array);
alert(pattern instanceof RegExp);

注意:

在檢測(cè)一個(gè)引用類型值和 Object 構(gòu)造函數(shù)時(shí),instanceof 操作符始終會(huì)返回 true,因?yàn)?b>所有引用類型的值都是 Object 的實(shí)例

如果使用 instanceof 操作符檢測(cè)基本類型的值,則該操作符始終會(huì)返回 false,因?yàn)榛绢愋筒皇菍?duì)象

instanceof 能夠確定引用類型的實(shí)例對(duì)象是否在某條原型鏈上,但是無(wú)法精準(zhǔn)的判斷變量到底是什么類型,而且在面對(duì)基本類型時(shí)都會(huì)返回false...

3. 變量檢測(cè)—Obect.prototype.toString

這個(gè)方法是檢測(cè)數(shù)據(jù)類型最準(zhǔn)確的方法(在不認(rèn)為更改對(duì)象原型方法toString的前提下),建議將其封裝為函數(shù)做判別

Object.prototype.toString.call(123) //"[object Number]"
Object.prototype.toString.call("123") //"[object String]"
Object.prototype.toString.call(undefined) //"[object Undefined]"
Object.prototype.toString.call(true) //"[object Boolean]"
Object.prototype.toString.call({}) //"[object Object]"
Object.prototype.toString.call([]) //"[object Array]"
Object.prototype.toString.call(function(){}) //"[object Function]"
Object.prototype.toString.call(new Date) // "[object Date]"

函數(shù)封裝:

// 判斷是否為函數(shù)
function isFunction(fn) {
  return Object.prototype.toString.call(fn) === "[object Function]";
}

// 判斷是否為數(shù)組
function isArray(o) { 
  return Object.prototype.toString.call(o) === "[object Array]";  
}

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

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

相關(guān)文章

  • JavaScript高級(jí)程序設(shè)計(jì)》(第3版)讀書(shū)筆記 第4章 變量、作用域和內(nèi)存問(wèn)題

    摘要:具體說(shuō)就是執(zhí)行流進(jìn)入下列任何一個(gè)語(yǔ)句時(shí),作用域鏈就會(huì)得到加長(zhǎng)語(yǔ)句的塊。如果局部環(huán)境中存在著同名的標(biāo)識(shí)符,就不會(huì)使用位于父環(huán)境中的標(biāo)識(shí)符訪問(wèn)局部變量要比訪問(wèn)全局變量更快,因?yàn)椴挥孟蛏纤阉髯饔糜蜴湣? 基本類型和引用類型的值 ECMAscript變量包含 基本類型值和引用類型值 基本類型值值的是基本數(shù)據(jù)類型:Undefined, Null, Boolean, Number, String ...

    lidashuang 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)筆記:BOM(八)

    摘要:瀏覽器對(duì)象模型提供了很多對(duì)象,用于訪問(wèn)瀏覽器的功能,這些功能與任何網(wǎng)頁(yè)內(nèi)容無(wú)關(guān)。對(duì)象基本上只用來(lái)表明客戶端的能力。 BOM(瀏覽器對(duì)象模型)提供了很多對(duì)象,用于訪問(wèn)瀏覽器的功能,這些功能與任何網(wǎng)頁(yè)內(nèi)容無(wú)關(guān)。 window對(duì)象 全局作用域 定義全局變量與在window對(duì)象上直接定義屬性還是有一點(diǎn)差別:全局變量不能通過(guò)delete操作符刪除,而直接在window對(duì)象上的定義的屬性可以。 v...

    mushang 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)筆記變量、作用域、內(nèi)存問(wèn)題

    摘要:作用域鏈中的下一個(gè)變量對(duì)象來(lái)自包含外部環(huán)境,而再下一個(gè)變量對(duì)象則來(lái)自下一個(gè)包含環(huán)境。這樣,一直延續(xù)到全局執(zhí)行環(huán)境全局執(zhí)行環(huán)境的變量對(duì)象始終都是作用域鏈中的最后一個(gè)對(duì)象標(biāo)識(shí)符解析沿作用域鏈一級(jí)一級(jí)搜索標(biāo)識(shí)符。 一、寫在前面 最近研究了創(chuàng)建Android虛擬機(jī)、vscode結(jié)合weex開(kāi)發(fā)Android APP、Vmware裝MAC虛擬機(jī)的事,看的內(nèi)容不夠多,接下來(lái)加油 二、變量、作用域和...

    U2FsdGVkX1x 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)》讀書(shū)筆記

    摘要:為了每個(gè)對(duì)象都能通過(guò)來(lái)檢測(cè),需要以或者的形式來(lái)調(diào)用,傳遞要檢查的對(duì)象作為第一個(gè)參數(shù),稱為。對(duì)象都是動(dòng)態(tài)的,這就意味著每次訪問(wèn)對(duì)象,都會(huì)運(yùn)行一次查詢。是語(yǔ)言中立的用于訪問(wèn)和操作和文檔。 一、第三章 基本概念: 1.理解參數(shù) 1.1 可以向函數(shù)中傳遞任意數(shù)量的參數(shù),并且可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)這些參數(shù)。 1.2 arguments對(duì)象只是類似數(shù)組,它通過(guò)length來(lái)確定傳進(jìn)來(lái)...

    dayday_up 評(píng)論0 收藏0
  • javascript高級(jí)程序設(shè)計(jì)筆記:undefined和null

    摘要:表示沒(méi)有對(duì)象,即該處不應(yīng)該有值。典型用法是作為函數(shù)的參數(shù),表示該函數(shù)的參數(shù)不是對(duì)象。作為對(duì)象原型鏈的終點(diǎn)。表示缺少值,就是此處應(yīng)該有一個(gè)值,但是還沒(méi)有定義。 undefined 和 null 的簡(jiǎn)單介紹 undefined 和 null 都是簡(jiǎn)單數(shù)據(jù)類型,且對(duì)應(yīng)的我數(shù)據(jù)類型下有且僅有一個(gè)值,分別為undefined和null; 《javascript高級(jí)程序設(shè)計(jì)》書(shū)中這樣描述: 在使用...

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

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

0條評(píng)論

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