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

資訊專欄INFORMATION COLUMN

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

XiNGRZ / 2923人閱讀

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

變量的特點(diǎn)

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

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

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

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

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

可以使用一條語句定義多個變量,只要像下面這樣把每個變量(初始化或不初始化均可)用逗號分隔開即可

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

變量的分類和檢測

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

1. 變量檢測—typeof

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

注意:
特殊值null被認(rèn)為是一個空的對象引用,因此typeof null === "object"
typeof會將函數(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 操作符是確定一個變量是字符串、數(shù)值、布爾值,還是 undefined 的最佳工具。如果變量的值是一個對象或 null,則 typeof 操作符會像下面例子中所示的那樣返回"object",我們依然無法確定對象的具體類型...

2. 變量檢測—instanceof

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

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

注意:

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

如果使用 instanceof 操作符檢測基本類型的值,則該操作符始終會返回 false,因?yàn)榛绢愋筒皇菍ο?/p>

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

3. 變量檢測—Obect.prototype.toString

這個方法是檢測數(shù)據(jù)類型最準(zhǔn)確的方法(在不認(rèn)為更改對象原型方法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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

    codeKK 評論0 收藏0

發(fā)表評論

0條評論

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