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

資訊專欄INFORMATION COLUMN

引用類型基本使用

elina / 2288人閱讀

摘要:引用類型類型創(chuàng)建實(shí)例用的少等價(jià)于操作符字面量表示法這里的稱為屬性,屬性名可以用字符串。函數(shù)返回的值作為下一次的第一個(gè)參數(shù)使用,依次遍歷數(shù)組,直至結(jié)束。

引用類型 Object類型

創(chuàng)建實(shí)例:

var person = new Object() (用的少)等價(jià)于 var person = {}
person.name = "kangkang"
person.age = 18
// new 操作符

var person = {
  name:"kangkang",
  age:18,
  6:true
}
// 字面量表示法
//這里的name 稱為屬性,屬性名可以用字符串。參見(jiàn)json
將必須的參數(shù)存儲(chǔ)
function displayInfo(args) {    
  var output = ""
  if(typeof args.name == "string") {
  output += “Name: " + args.name + "
"
   console.log(args.name)
}
if( typeof args.age == "number") {
    output += “Age: " + args.age + ”
“ 
    console.log(args.age)
 }
 console.log(output)
}
displayInfo({
    name:"kangkang",
    age:18
})
displayInfo({
    name:"kangkang"
})

當(dāng)一個(gè)函數(shù)需要有大量的參數(shù)以供使用時(shí),但不是所有都是必須的,那么這樣寫就會(huì)提供很大便利,將經(jīng)常用到值使用命名參數(shù)(比如如果name和age經(jīng)常用到)處理,使用對(duì)象字面量封裝多個(gè)可選參數(shù)以供使用。

訪問(wèn)屬性

屬性的訪問(wèn)一般使用點(diǎn)號(hào),也可以使用方括號(hào)屬性名要加引號(hào),不過(guò)有一個(gè)就是屬性名為數(shù)值時(shí)要用方括號(hào)并且無(wú)需引號(hào)括起來(lái)(括起來(lái)也行),特殊的屬性名需要用引號(hào)包圍起來(lái)(比如第一個(gè)字符為數(shù)字,或者含有空格或運(yùn)算符). 屬性的書寫也基本遵循上面規(guī)則,保留字比如class則可以用作屬性名并且不加引號(hào)。

var person = {
  name:"kangkang",
  "age":18,
  6:true
  "1a": "no",
  "a b": "i",
  "p+q": "go"
}

console.log(person.age) // 18
console.log(person["age"]) // 18
console.log(person[6]) // true
console.log(["6"]) //true
Array 類型

JavaScript 中的數(shù)組可以保存不同類型的數(shù)據(jù)
創(chuàng)建方法

Array 構(gòu)造函數(shù)

字面量方法

var apples = Array(3) // 包含3個(gè) undefined 的的數(shù)組
var age = [3] //包含一個(gè)數(shù)值3 的數(shù)組

console.log(apples) //[undefined, undefined, undefined]
console.log(apples.length)  // 3

console.log(age) // [3]
console.log(age) //1 
訪問(wèn)數(shù)組數(shù)值

通過(guò)索引訪問(wèn)

var names = ["xiaoming", "xiaoqiang", "xiaojun"]
name[0]~ name[2]
console.log(names.length) // 3
length的使用
var names = ["xiaoming", "xiaoqiang", "xiaojun"]
names.length = 1
console.log(names)
// ["xiaoming"]

names.length = 4
console.log(names)
//["xiaoming", undefined, undefined, undefined]

// 數(shù)組的length 屬性可以去除和添加項(xiàng)
Array.isArray(names)

檢測(cè)是否為數(shù)組

轉(zhuǎn)換為數(shù)組 names.toString()

返回一個(gè)數(shù)組各項(xiàng)以逗號(hào)隔開(kāi)的一個(gè)字符串(注意是組成了一個(gè)字符串)

names.join("-")

以指定分隔符分割數(shù)組的項(xiàng)并返回組成的一個(gè)字符串,不傳或者傳入undefined 都將使用逗號(hào)分割

操作數(shù)組的項(xiàng) pop() 方法

棧方法,先進(jìn)后出。彈出最上面的項(xiàng)(既然是彈出,就會(huì)返回彈出的值),無(wú)需參數(shù)。

var names = ["xiaoming", "xiaoqiang", "xiaojun"]

console.log(names.pop()) //["xiaojun"]
console.log(names) // ["xiaoming", "xiaoqiang"]
push() 方法

棧方法,先進(jìn)后出。推入,將參數(shù)依次推入棧中,數(shù)據(jù)添加到數(shù)組末尾,返回最終數(shù)組長(zhǎng)度。

var names = ["xiaoming", "xiaoqiang", "xiaojun"]

console.log(names.push("dalong")) // 4
console.log(names) // ["xiaoming", "xiaoqiang","dalong"]
shift() 方法

取出數(shù)組第一項(xiàng)并返回

unshift() 方法

按參數(shù)中順序?qū)⒅堤砑拥綌?shù)組開(kāi)頭并返回個(gè)數(shù)

reverse() 方法
var values = [1,2,3,4,5]
values.reverse()
console.log(values) // 5,4,3,2,1
sort() 方法

默認(rèn)將數(shù)組進(jìn)行從小到大排序,但比較的是項(xiàng)的字符串Unicode位點(diǎn)進(jìn)行排序,就會(huì)出現(xiàn)數(shù)值比較時(shí)的錯(cuò)誤,所以可以傳遞一個(gè)比較函數(shù)來(lái)指定排布方式

function compare (value ,value2) {
  if(value < value2){
    return -1
}else if (value > value2) {
    return 1
}else {
    return 0
  }
}
// 這是升序排列的比較函數(shù)
function compare (value,value2){
   return value - value2
}

function compare (value,value2){
   return value > value2
}
// 這兩種形式均是從小到大排列的簡(jiǎn)寫形式

比較函數(shù)的機(jī)制: sort接受true 和false ,對(duì)數(shù)組每一項(xiàng)按函數(shù)迭代比較,如上面代碼,若第一個(gè)參數(shù)(項(xiàng)) 小于第二個(gè)參數(shù)(項(xiàng)),如果想轉(zhuǎn)換位置則返回true,sort接受到true后進(jìn)行位置交換。返回false則位置不變。

splice方法

這是一個(gè)很強(qiáng)大的數(shù)組方法

刪除 splice(2, 2)

可以刪除任意的項(xiàng),接受兩個(gè)參數(shù),第一個(gè)是起始位置,第二個(gè)是刪除的項(xiàng)數(shù)(不是結(jié)束位置),返回被刪除的項(xiàng)

插入 splice(2, 0, 2)

向指定的位置插入任意數(shù)量的項(xiàng),接受三個(gè)參數(shù),分別是起始位置,要?jiǎng)h除的項(xiàng)數(shù)(0項(xiàng)),要插入的項(xiàng)(可以是多個(gè)項(xiàng))

替換 splice(2, 2, "a","b")

這個(gè)替換,可以不是等數(shù)量項(xiàng)的替換,執(zhí)行的是先刪除再插入的操作,接受的參數(shù)分別是,起始位置、要?jiǎng)h除的項(xiàng)數(shù)、要插入的項(xiàng)。注意到這里要?jiǎng)h除的項(xiàng)數(shù)如果是0就變成了只有插入功能了。

var colors = ["red", "green", "blue", "black"]

console.log(colors.splice(0,1)) //["red"]
console.log(colors) // ["green", "blue", "black"]
// 刪除從0 開(kāi)始一個(gè)項(xiàng)

colors.splice(0,0,"yellow")
console.log(colors) // ["yellow", "green", "blue", "black"]
// 在0位置插入"yellow",項(xiàng)依次后移

colors.splice(1,2,"brown")
console.log(colors) // ["yellow", "brown", "black"]
// 從 1 開(kāi)始刪除兩個(gè)項(xiàng),并插入項(xiàng)" brown"
slice()

裁剪,可以接受一個(gè)或者兩個(gè)參數(shù),第一個(gè)參數(shù)是起始位置,第二個(gè)是結(jié)束位置(不包括這個(gè)項(xiàng)),若只有一個(gè)參數(shù),則作為起始位置并至數(shù)組末尾,取出起始位置到結(jié)束位置的項(xiàng)作為一個(gè)新數(shù)組返回,不影響原數(shù)組。

var colors = ["red", "green", "blue", "black", "yellow", "brown"]
var colors2 = colors.slice(1,3) //["green","blue","]
concat(array)

拼接,可以把參數(shù)作為值添加到數(shù)組的末尾,如果這個(gè)參數(shù)是一個(gè)數(shù)組,則會(huì)將數(shù)組中的 值拿出添加進(jìn)去,返回一個(gè)被改變的新數(shù)組,原數(shù)組不變

var colors = ["red","green","blue"]
var colors2 = colors.concat("black",["yellow","brown"])


console.log(colors) // ["red", "green", "blue"]
console.log(colors2) // ["red", "green", "blue", "black", "yellow", "brown"]
indexOf() 方法 lastIndexOf()方法

均接受兩個(gè)參數(shù),分別是要查找的項(xiàng)和起始位置

indexOf():從數(shù)組開(kāi)頭查找,第二個(gè)參數(shù)相對(duì)于開(kāi)頭位置

lastIndexOf(): 從數(shù)組末尾開(kāi)始查找,第二個(gè)參數(shù)是于末尾位置向前

迭代方法

接受函數(shù)作為參數(shù),運(yùn)行在數(shù)組每一項(xiàng)上,接受的函數(shù)又可以接受三個(gè)形式參數(shù)分別作用是:
迭代的值、該項(xiàng)在數(shù)組的位置(索引)、數(shù)組本身

every()

對(duì)數(shù)組每一項(xiàng)運(yùn)行給定函數(shù),只有每一項(xiàng)在函數(shù)運(yùn)行后均為true,函數(shù)才返回true

filter()

對(duì)數(shù)組每一項(xiàng)運(yùn)行給定函數(shù),返回一個(gè)由項(xiàng)在運(yùn)行后且結(jié)果為true的項(xiàng)組成的新數(shù)組(過(guò)濾效果)

var numbers = [1,2,3,4,5,6,7,8,9]
var filterResult = numbers.filter(function(item, index ,array){
  return (item >2 )
})
console.log(filterResult)
forEach()

對(duì)數(shù)組每一項(xiàng)運(yùn)行給定函數(shù),沒(méi)有返回值

var numbers = [1,2,3,4,5,6,7,8,9]
numbers.forEach((n,index)=> {
 numbers[index] += 2
 
})
console.log(numbers)
// [3, 4, 5, 6, 7, 8, 9, 10, 11]
map()

每一項(xiàng)運(yùn)行函數(shù),且返回運(yùn)行后的每一項(xiàng)組成的數(shù)組

var numbers = [1,2,3,4,5,6,7,8,9]
var mapResult = numbers.map((n)=> {
 numbers[index] += 2 //修改原數(shù)組的值
 return n*2 //返回給新數(shù)組的對(duì)應(yīng)索引的值
})
console.log(mapResult)
// [2, 4, 6, 8, 10, 12, 14, 16, 18]
some()

對(duì)每一項(xiàng)運(yùn)行函數(shù),只要有一項(xiàng)運(yùn)行結(jié)果為true,則器結(jié)果返回true

reduce()方法和 reduceRight()方法

歸并,接受兩個(gè)參數(shù):調(diào)用的函數(shù)和可選的初始值。調(diào)用的函數(shù)接受四個(gè)參數(shù):前一個(gè)值,當(dāng)前值,索引,數(shù)組對(duì)象(這個(gè)有時(shí)會(huì)用到)。如果設(shè)置了初始值,就用初始值和第一項(xiàng)作為函數(shù)的參數(shù),如果沒(méi)有則是前兩項(xiàng)。函數(shù)返回的值作為下一次的第一個(gè)參數(shù)使用,依次遍歷數(shù)組,直至結(jié)束。

reduce()方法:從前往后開(kāi)始

reduceRight()方法:從后往前開(kāi)始

var values = [1,2,3,4,5]
var sum = values.reduce(function(prev, cur, index, array){
  return prev+cur
})
// 這是一個(gè)求和的操作

此為看書筆記,僅作為本人備忘使用,如有謬誤,歡迎指正 。

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

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

相關(guān)文章

  • js的基本數(shù)據(jù)類型引用數(shù)據(jù)類型

    摘要:熟悉的同學(xué)都知道,它的數(shù)據(jù)類型一般分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型復(fù)雜數(shù)據(jù)類型。基本數(shù)據(jù)類型基本數(shù)據(jù)類型有種新增。動(dòng)態(tài)的屬性基本數(shù)據(jù)類型的值是沒(méi)有辦法添加屬性和方法的。類型檢測(cè)根據(jù)它的原型鏈來(lái)識(shí)別引用類型。 熟悉js的同學(xué)都知道,它的數(shù)據(jù)類型一般分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(復(fù)雜數(shù)據(jù)類型)。那么他們之間到底有什么不同?從下面這個(gè)例子入手: var a = 1; ...

    kgbook 評(píng)論0 收藏0
  • 基本數(shù)據(jù)類型引用類型的區(qū)別詳解

    摘要:前兩天看到大神的關(guān)于基本數(shù)據(jù)類型和引用類型的區(qū)別的文章覺(jué)得寫得非常不錯(cuò),就想著在其基礎(chǔ)上加上自己平時(shí)看到的一些知識(shí)點(diǎn)和理解,所以就有了以下的文章基本數(shù)據(jù)類型基本數(shù)據(jù)類型包括基本數(shù)據(jù)類型是按值訪問(wèn)的,就是說(shuō)我們可以操作保存在變量中的實(shí)際的值基 前兩天看到kraaas大神的關(guān)于基本數(shù)據(jù)類型和引用類型的區(qū)別的文章覺(jué)得寫得非常不錯(cuò),就想著在其基礎(chǔ)上加上自己平時(shí)看到的一些知識(shí)點(diǎn)和理解,所以就有了...

    CoffeX 評(píng)論0 收藏0
  • 關(guān)於Javascript基本類型引用類型小知識(shí)

    摘要:變量有兩種不同的數(shù)據(jù)類型基本類型,引用類型。知識(shí)一基本類型值就是簡(jiǎn)單的數(shù)據(jù)段引用類型值保存的是對(duì)象的引用,不是實(shí)際的對(duì)象。 ECMAScirpt 變量有兩種不同的數(shù)據(jù)類型:基本類型,引用類型。 基本的數(shù)據(jù)類型有:undefined,boolean,number,string,null. 基本類型的訪問(wèn)是按值訪問(wèn)的,就是說(shuō)你可以操作保存在變量中的實(shí)際的值。JavaScript中除了上面的...

    iKcamp 評(píng)論0 收藏0
  • [ JS 進(jìn)階 ] 基本類型 引用類型 簡(jiǎn)單賦值 對(duì)象引用

    摘要:也就是說(shuō)基本類型在賦值操作后,兩個(gè)變量是相互不受影響的。前面講引用類型的時(shí)候提到,保存在變量中的是對(duì)象在堆內(nèi)存中的地址,所以,與簡(jiǎn)單賦值不同,這個(gè)值的副本實(shí)際上是一個(gè)指針,而這個(gè)指針指向存儲(chǔ)在堆內(nèi)存的一個(gè)對(duì)象。 ECMAScirpt 變量有兩種不同的數(shù)據(jù)類型:基本類型,引用類型。也有其他的叫法,比如原始類型和對(duì)象類型,擁有方法的類型和不能擁有方法的類型,還可以分為可變類型和不可變類型,...

    余學(xué)文 評(píng)論0 收藏0
  • JS學(xué)習(xí)筆記(第4章)(變量、作用域和內(nèi)存問(wèn)題)

    摘要:具體來(lái)說(shuō)就是當(dāng)執(zhí)行流進(jìn)入下列任何一個(gè)語(yǔ)句時(shí),作用域鏈就會(huì)得到加長(zhǎng)語(yǔ)句的塊和語(yǔ)句。這兩個(gè)語(yǔ)句都會(huì)在作用域鏈的前端添加一個(gè)變量對(duì)象。對(duì)來(lái)說(shuō),會(huì)將指定的對(duì)象添加到作用域鏈中。 1. 基本類型和引用類型的值 JavaScript變量可以用來(lái)保存兩種類型的值:基本類性值和引用類性值。基本類型值源自以下5種基本數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。基本...

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

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

0條評(píng)論

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