久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      javascript中有幾種類(lèi)型

      有9種數(shù)據(jù)類(lèi)型:1、字符串類(lèi)型,是一段以引號(hào)包裹起來(lái)的文本;2、數(shù)值類(lèi)型,用來(lái)定義數(shù)值;3、布爾類(lèi)型,只有兩個(gè)值;4、Null類(lèi)型,表示一個(gè)“空”值,即不存在任何值;5、Undefined類(lèi)型,表示未定義;6、Symbol類(lèi)型,表示獨(dú)一無(wú)二的值;7、對(duì)象類(lèi)型,是一組由鍵、值組成的無(wú)序集合;8、數(shù)組類(lèi)型,是一組按順序排列的數(shù)據(jù)的集合;9、函數(shù)類(lèi)型,是一段具有特定功能的代碼塊。

      javascript中有幾種類(lèi)型

      前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
      API 文檔、設(shè)計(jì)、調(diào)試、自動(dòng)化測(cè)試一體化協(xié)作工具:點(diǎn)擊使用

      本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

      數(shù)據(jù)類(lèi)型指的是可以在程序中存儲(chǔ)和操作的值的類(lèi)型,每種編程語(yǔ)言都有其支持的數(shù)據(jù)類(lèi)型,不同的數(shù)據(jù)類(lèi)型用來(lái)存儲(chǔ)不同的數(shù)據(jù),例如文本、數(shù)值、圖像等。

      JavaScript 是一種動(dòng)態(tài)類(lèi)型的語(yǔ)言,在定義變量時(shí)不需要提前指定變量的類(lèi)型,變量的類(lèi)型是在程序運(yùn)行過(guò)程中由 JavaScript 引擎動(dòng)態(tài)決定的,另外,您可以使用同一個(gè)變量來(lái)存儲(chǔ)不同類(lèi)型的數(shù)據(jù),例如:

      var a;  // 此時(shí) a 為 Undefined a = "http://c.biancheng.net/"; // 此時(shí) a 為 String 類(lèi)型 a = 123;  // 此時(shí) a 為 Number 類(lèi)型
      登錄后復(fù)制

      JavaScript 中的數(shù)據(jù)類(lèi)型可以分為兩種類(lèi)型:

      • 基本數(shù)據(jù)類(lèi)型(值類(lèi)型):字符串(String)、數(shù)字(Number)、布爾(Boolean)、空(Null)、未定義(Undefined)、Symbol;

      • 引用數(shù)據(jù)類(lèi)型:對(duì)象(Object)、數(shù)組(Array)、函數(shù)(Function)。

      提示:Symbol 是 ECMAScript6 中引入的一種新的數(shù)據(jù)類(lèi)型,表示獨(dú)一無(wú)二的值。

      1、String 類(lèi)型

      字符串(String)類(lèi)型是一段以單引號(hào)''或雙引號(hào)""包裹起來(lái)的文本,例如 '123'、"abc"。需要注意的是,單引號(hào)和雙引號(hào)是定義字符串的不同方式,并不是字符串的一部分。

      2、Number 類(lèi)型

      數(shù)值(Number)類(lèi)型用來(lái)定義數(shù)值,JavaScript 中不區(qū)分整數(shù)和小數(shù)(浮點(diǎn)數(shù)),統(tǒng)一使用 Number 類(lèi)型表示

      注意:Number 類(lèi)型所能定義的數(shù)值并不是無(wú)限的,JavaScript 中的 Number 類(lèi)型只能表示 -(2∧53 – 1) 到 (2∧53 -1) 之間的數(shù)值。

      3、Boolean 類(lèi)型

      布爾(Boolean)類(lèi)型只有兩個(gè)值,true(真)或者 false(假),在做條件判斷時(shí)使用的比較多,您除了可以直接使用 true 或 false 來(lái)定義布爾類(lèi)型的變量外,還可以通過(guò)一些表達(dá)式來(lái)得到布爾類(lèi)型的值

      4、Null 類(lèi)型

      Null 是一個(gè)只有一個(gè)值的特殊數(shù)據(jù)類(lèi)型,表示一個(gè)“空”值,即不存在任何值,什么都沒(méi)有,用來(lái)定義空對(duì)象指針。

      使用 typeof 操作符來(lái)查看 Null 的類(lèi)型,會(huì)發(fā)現(xiàn) Null 的類(lèi)型為 Object,說(shuō)明 Null 其實(shí)使用屬于 Object(對(duì)象)的一個(gè)特殊值。因此通過(guò)將變量賦值為 Null 我們可以創(chuàng)建一個(gè)空的對(duì)象。

      5、Undefined 類(lèi)型

      Undefined 也是一個(gè)只有一個(gè)值的特殊數(shù)據(jù)類(lèi)型,表示未定義。當(dāng)我們聲明一個(gè)變量但未給變量賦值時(shí),這個(gè)變量的默認(rèn)值就是 Undefined。

      6、Symbol 類(lèi)型

      Symbol 是 ECMAScript6 中引入的一種新的數(shù)據(jù)類(lèi)型,表示獨(dú)一無(wú)二的值。

      Symbol值通過(guò)Symbol函數(shù)生成。對(duì)象的屬性名可以有兩種類(lèi)型,一種是原來(lái)就有的字符串,另一種就是新增的 Symbol 類(lèi)型。屬性名屬于 Symbol 類(lèi)型的,都是獨(dú)一無(wú)二的,可以保證不會(huì)與其他屬性名產(chǎn)生沖突。

      let s1=Symbol() let s2=Symbol() console.log(s1) //Symbol() console.log(s2) //Symbol() console.log(s1===s2) //false  //Symbol函數(shù)能接受字符串作為參數(shù),表示對(duì)Symbol實(shí)例的描述 let s1=Symbol('xxx') let s2=Symbol('hhh') console.log(s1) //Symbol(xxx) console.log(s2) //Symbol(hhh) console.log(s1===s2) //false復(fù)制代碼
      登錄后復(fù)制

      Symbol函數(shù)前不能使用new命令,會(huì)報(bào)錯(cuò)。這是因?yàn)樯傻?Symbol 是一個(gè)原始類(lèi)型的值,不是對(duì)象。也就是說(shuō),由于 Symbol 值不是對(duì)象,所以不能添加屬性。相當(dāng)于是一種特殊的字符串。

      應(yīng)用場(chǎng)景

      • 作為屬性名

      由于 Symbol 值都是不相等的,這意味著 Symbol 值可以作為標(biāo)識(shí)符,用在對(duì)象的屬性名,就能保證不會(huì)出現(xiàn)同名的屬性。這對(duì)于一個(gè)對(duì)象由多個(gè)模塊構(gòu)成的情況非常有用,防止某一個(gè)鍵被不小心改寫(xiě)或覆蓋。

      const grade={     張三:{address:'qqq',tel:'111'},     李四:{address:'aaa',tel:'222'},     李四:{address:'sss',tel:'333'}, } console.log(grade) //張三: {address: "qqq", tel: "111"} 李四: {address: "sss", tel: "333"} //對(duì)象的key值不能重復(fù) 如果有重復(fù) 后面的value值就會(huì)覆蓋前面的   //使用Symbol解決,相當(dāng)于一個(gè)獨(dú)一無(wú)二的字符串 const stu1=Symbol('李四') const stu2=Symbol('李四') console.log(stu1===stu2) //false const grade={     [stu1]:{address:'aaa',tel:'222'},     [stu2]:{address:'sss',tel:'333'}, } console.log(grade) //李四:{address:'sss',tel:'222'} 李四:{address:'sss',tel:'333'} console.log(grade[stu1]) //李四:{address:'sss',tel:'222'} console.log(grade[stu2]) //李四:{address:'sss',tel:'333'}
      登錄后復(fù)制

      • 屬性遍歷

      const sym=Symbol('imooc') class User{     constructor(name){         this.name=name         this[sym]='imooc.com'     }     getName(){         return this.name+this[sym]     } } const user=new User('www')  //for in的方法不能遍歷到Symbol屬性 像被隱藏了 for(let key in user){     console.log(key)//name  }  //Object.keys(obj)方法也不能遍歷到Symbol屬性 for(let key of Object.keys(user)){     console.log(key)//name  }  //Object.getOwnPropertySymbols(obj)只能獲取到Symbol屬性 for(let key of Object.getOwnPropertySymbols(user)){     console.log(key)//Symbol(imooc)  }  //Reflect.ownKeys(obj)對(duì)象的屬性都能獲取到 for(let key of Reflect.ownKeys(user)){     console.log(key)     //name      //Symbol(imooc)  }
      登錄后復(fù)制

      • 消除魔術(shù)字符串

      魔術(shù)字符串指的是,在代碼中多次出現(xiàn)、與代碼形成強(qiáng)耦合的某一個(gè)具體的字符串或者數(shù)值。風(fēng)格良好的代碼,應(yīng)該盡量消除魔術(shù)字符串,改成一些含義清晰的變量代替。

      function getArea(shape) {     let area = 0     switch (shape) {         case 'Triangle':             area = 1             break         case 'Circle':             area = 2             break     }     return area } console.log(getArea('Triangle')) //Triangle和Circle就是魔術(shù)字符串。多次出現(xiàn),與代碼形成了“強(qiáng)耦合”,不利于后面的修改和維護(hù)。  const shapeType = {     triangle: Symbol(),     circle: Symbol() }  function getArea(shape) {     let area = 0     switch (shape) {         case shapeType.triangle:             area = 1             break         case shapeType.circle:             area = 2             break     }     return area } console.log(getArea(shapeType.triangle))
      登錄后復(fù)制

      7、Object 類(lèi)型

      Object數(shù)據(jù)類(lèi)型,稱(chēng)為對(duì)象,是一組由鍵、值組成的無(wú)序集合??梢杂胣ew操作符后跟要?jiǎng)?chuàng)建的對(duì)象類(lèi)型的名稱(chēng)來(lái)創(chuàng)建。也可以用字面量表示法創(chuàng)建。在其中添加不同名(包含空字符串在內(nèi)的任意字符串)的屬性。

      1)構(gòu)造對(duì)象

      使用 new 運(yùn)算符調(diào)用構(gòu)造函數(shù),可以構(gòu)造一個(gè)實(shí)例對(duì)象。具體用法如下:

      var objectName = new functionName(args);
      登錄后復(fù)制

      參數(shù)說(shuō)明如下:

      • objectName:返回的實(shí)例對(duì)象。

      • functionName:構(gòu)造函數(shù),與普通函數(shù)基本相同,但是不需要 return 返回值,返回實(shí)例對(duì)象,在函數(shù)內(nèi)可以使用 this 預(yù)先訪問(wèn)。

      • args:實(shí)例對(duì)象初始化配置參數(shù)列表。

      示例

      下面示例使用不同類(lèi)型的構(gòu)造函數(shù)定義各種實(shí)例。

      var o = new Object(); //定義一個(gè)空對(duì)象

      var a = new Array(); //定義一個(gè)空數(shù)組

      var f = new Function(); //定義一個(gè)空函數(shù)

      2)對(duì)象直接量

      使用直接量可以快速創(chuàng)建對(duì)象,也是最高效、最簡(jiǎn)便的方法。具體用法如下:

      var objectName = {     屬性名1 : 屬性值1,     屬性名2 : 屬性值2,     ...     屬性名n : 屬性值n };
      登錄后復(fù)制

      在對(duì)象直接量中,屬性名與屬性值之間通過(guò)冒號(hào)進(jìn)行分隔,屬性值可以是任意類(lèi)型的數(shù)據(jù),屬性名可以是 JavaScript 標(biāo)識(shí)符,或者是字符串型表達(dá)式。屬性于屬性之間通過(guò)逗號(hào)進(jìn)行分隔,最后一個(gè)屬性末尾不需要逗號(hào)。

      在 JavaScript 中,對(duì)象類(lèi)型的鍵都是字符串類(lèi)型的,值則可以是任意數(shù)據(jù)類(lèi)型。要獲取對(duì)象中的某個(gè)值,可以使用對(duì)象名.鍵的形式,如下例所示:

      var person = {     name: 'Bob',     age: 20,     tags: ['js', 'web', 'mobile'],     city: 'Beijing',     hasCar: true,     zipcode: null }; console.log(person.name);       // 輸出 Bob console.log(person.age);        // 輸出 20
      登錄后復(fù)制

      8、Array 類(lèi)型

      數(shù)組(Array)是一組按順序排列的數(shù)據(jù)的集合,數(shù)組中的每個(gè)值都稱(chēng)為元素(Element),每個(gè)元素的名稱(chēng)(鍵)被稱(chēng)為數(shù)組下標(biāo)(Index)。數(shù)組的長(zhǎng)度是彈性的、可讀寫(xiě)的。

      數(shù)組中可以包含任意類(lèi)型的數(shù)據(jù)。

      在 JavaScript 中定義(創(chuàng)建或者聲明)數(shù)組的方法有兩種:構(gòu)造數(shù)組和數(shù)組直接量。

      1)構(gòu)造數(shù)組

      使用 new 運(yùn)算符調(diào)用 Array() 類(lèi)型函數(shù)時(shí),可以構(gòu)造一個(gè)新數(shù)組。

      示例:

      • 直接調(diào)用 Array() 函數(shù),不傳遞參數(shù),可以創(chuàng)建一個(gè)空數(shù)組。

      var a = new Array();  //空數(shù)組
      登錄后復(fù)制

      • 傳遞多個(gè)值,可以創(chuàng)建一個(gè)實(shí)數(shù)組。

      var a = new Array(1, true, "string", [1,2], {x:1,y:2});  //實(shí)數(shù)組
      登錄后復(fù)制

      每個(gè)參數(shù)指定一個(gè)元素的值,值得類(lèi)型沒(méi)有限制。參數(shù)的順序也是數(shù)組元素的順序,數(shù)組的 length 屬性值等于所傳遞參數(shù)的個(gè)數(shù)。

      • 傳遞一個(gè)數(shù)值參數(shù),可以定義數(shù)組的長(zhǎng)度,即包含元素的個(gè)數(shù)。

      var a = new Array(5);  //指定長(zhǎng)度的數(shù)組
      登錄后復(fù)制

      參數(shù)值等于數(shù)組 length 的屬性值,每個(gè)元素的值默認(rèn)值為 undefined。

      • 如果傳遞一個(gè)參數(shù),值為 1,則 JavaScript 將定義一個(gè)長(zhǎng)度為 1 的數(shù)組,而不是包含一個(gè)元素,其值為 1 的數(shù)組。

      var a = new Array(1); console.log(a[0]);
      登錄后復(fù)制

      2)數(shù)組直接量

      數(shù)組直接量的語(yǔ)法格式:在中括號(hào)中包含多個(gè)值列表,值之間用逗號(hào)分隔。

      下面代碼使用數(shù)組直接量定義數(shù)組。

      var a = [];  //空數(shù)組 var a = [1, true, "0", [1,0], {x:1,y:0}];  //包含具體元素的數(shù)組
      登錄后復(fù)制

      推薦使用數(shù)組直接量定義數(shù)組,因?yàn)閿?shù)組直接量是定義數(shù)組最簡(jiǎn)便、最高效的方法。

      9、Function 類(lèi)型

      函數(shù)(Function)是一段具有特定功能的代碼塊,函數(shù)并不會(huì)自動(dòng)運(yùn)行,需要通過(guò)函數(shù)名調(diào)用才能運(yùn)行,如下例所示:

      function sayHello(name){     return "Hello, " + name; } var res = sayHello("Peter"); console.log(res);  // 輸出 Hello, Peter
      登錄后復(fù)制

      此外,函數(shù)還可以存儲(chǔ)在變量、對(duì)象、數(shù)組中,而且函數(shù)還可以作為參數(shù)傳遞給其它函數(shù),或則從其它函數(shù)返回,如下例所示:

      var fun = function(){     console.log("http://c.biancheng.net/js/"); } function createGreeting(name){     return "Hello, " + name; } function displayGreeting(greetingFunction, userName){     return greetingFunction(userName); } var result = displayGreeting(createGreeting, "Peter"); console.log(result);  // 輸出 Hello, Peter
      登錄后復(fù)制

      【推薦學(xué)習(xí):javascript高級(jí)教程】

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)