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

資訊專欄INFORMATION COLUMN

基本類型String和引用類型Array

Invoker / 2079人閱讀

摘要:區(qū)分基本類型和引用類型基本類型值指的是簡單的數(shù)據(jù)段,而引用類型值指那些可能由多個值構(gòu)成的對象。基本包裝類型類型類型是字符串的對象包裝,可以使用構(gòu)造函數(shù)來創(chuàng)建。對數(shù)組中的每一項運(yùn)行給定函數(shù),返回該函數(shù)返回的項組成的數(shù)組。

區(qū)分基本類型和引用類型

基本類型值指的是簡單的數(shù)據(jù)段,而引用類型值指那些可能由多個值構(gòu)成的對象。
基本類型包含Undefined、Null、Boolean、Number、String,這5種基本數(shù)據(jù)類型是按值訪問的,因為可以操作保存在變量中的實際值。
而在操作對象時,實際上是在操作對象的引用而不是實際的對象。
為了方便操作基本類型值,ECMAScript 還提供了 3 個特殊的引用類型:Boolean、NumberString,以便于使用對象方法操作基本類型值,引用類型與基本包裝類型的主要區(qū)別就是對象的生存期,基本包裝類型自動創(chuàng)建,并在代碼執(zhí)行后自動銷毀實例。

基本類型 String類型 定義:

Sring類型用于表示由零個或多個16位Unicode字符組成的字符序列,即字符串。

表示:

字符串可以由單引號和雙引號組成,兩者沒有區(qū)別

var firstName = "Nicholas";
var lastName = "Zakas";
字符串的特點:

ECMAScript中的字符串是不可變的。字符串一旦創(chuàng)建,它們的值就無法改變。要改變某個變量保存的字符串,首先要銷毀原來的字符串,然后在用一個包含新值的字符串來填充該變量。

轉(zhuǎn)化為字符串:

把一個值轉(zhuǎn)化為一個字符串有兩種方式。
第一種使用toString()方法,數(shù)值,布爾值,對象,和字符串值 。但是nullundefined值沒有這個方法。

var age = 11;
age.toString();
var bool = true;
bool.toString();

//可以傳遞參數(shù),代表輸出數(shù)值的基數(shù)。
age.toString(2);//11
基本包裝類型 String類型

String類型是字符串的對象包裝,可以使用String構(gòu)造函數(shù)來創(chuàng)建。

var stringObject = new String("hello world");??

所有String對象的方法也可以在所有基本的字符串值中訪問到,其中繼承的value()toLocaleString()toString()方法,都返回對象所表示的基本字符值。

String類型的方法

(一)字符方法
charAt()charCodeAt(),都接收一個參數(shù),基于0的字符位置。charAt()返回給定位置的字符,charCodeAt()返回字符編碼。
(二)字符串操作方法
concat()方法,接收任意多個參數(shù),返回一個新的字符串,不改變原字符串。可以使用+代替。

var str = "hello";
var res =  str.concat("world")//helloworld
//str仍為hello

還提供3個基于字符串創(chuàng)建新字符串的方法:
slice(),substr(),substring()。都接收一個或兩個參數(shù)。第一個參數(shù)指定子字符串的開始位置,而slice(),substring()第二個參數(shù)表示字符串到哪里結(jié)束,substr()第二個參數(shù)指定返回的個數(shù)。都不會修改原字符串。推薦使用slice()

var str = "hello world";
str.slice(3);       //"lo world"
str.substring(3);   //"lo world"
str.substr(3);      //"lo world"
str.slice(3,7);     //"lo w"
str.substring(3,7); //"lo w"
str.substr(3,7);    //"lo worl"
  

(三)字符串位置方法
indexOf()lastindexOf(),兩個方法都是從一個字符串中搜索給定的子字符串,然后返回字符串的位置。如果沒有找到則返回-1。一個從頭開始,另一個從尾開始。

(四)trim()方法
這個方法會創(chuàng)建一個字符串的副本,刪除前置和后綴的空格。不改變原字符。

var str = "  hello   ";
str.trim();//hello

還有非標(biāo)準(zhǔn)的trimLeft(),trimRight(),用于刪除字符串開頭或末尾的空格

(五)字符串的模式匹配方法
1.search()
查找字符串,接受一個參數(shù)為正則表達(dá)式或字符串,返回一個與之匹配的子串的起始位置。若未找到返回-1。
例 :javaScript.search(/script/i);//返回4
search屬性不支持全局屬性檢索,所以會忽略修飾符g
2.replace()
用以執(zhí)行檢索與替換操作,接受兩個參數(shù),第一個參數(shù)是正則或字符串,第二個參數(shù)是要進(jìn)行替換的字符串或一個函數(shù),不修改原字符串 。
若第一個參數(shù)是字符串,replace()則會直接搜索這個字符串
如果想要替換所有子字符串,唯一辦法就是提供一個正則表達(dá)式。而且還要指定(g)標(biāo)志。

var text = "cat, bat, sat";
var res = text.replace(/at/g,"ond")
res//"cond, bond, sond"
text//"cat, bat, sat"

3.match()
接受唯一一個參數(shù),就是正則表達(dá)式,返回一個由匹配結(jié)果組成的數(shù)組。
例:“1 plus 2 equal 3”.match(/d+/g/);//返回["1","2","3"]
如果沒有設(shè)置修飾符,,就不會進(jìn)行全局檢索,也會返回一個數(shù)組,數(shù)組的第一個元素保存匹配的字符串,余下的元素保存正則表達(dá)式中用圓括號括起來的子表達(dá)式。
例:解析一個url

var url = /(w+)://([w.]+)/(S*)/;?
var text = "Visit my blog at http://www.example.com/-david";
result = text.match(url);
if(result != null){
    var fullurl = result[0];//"http://www.example.com/-david"
    var protocol = result[1];//"http"
    var host = result[2];//"www.examplr.com"
    var path = result[3];//"-david"
}

4.split()
用以將調(diào)用它的字符串拆分為子串組成的數(shù)組,使用分隔符是split()的參數(shù),返回一個數(shù)組。
參數(shù)為字符串

“123,456,789”.split(","); //返回["123,"456","789"];

參數(shù)為正則

“1,2  3,4 ,5”.split(/s*,s*/)//返回["1","2","3","4","5"]  

(六)localeCompare()方法
如果字符串在字母表中排在參數(shù)前,返回一個負(fù)數(shù)。
如果相等,則返回0;
如果字符串在字母表中排在參數(shù)之后,返回一個正數(shù)。

(七)fromCharCode()方法
接收一個或多個字符編碼,返回一個字符串

String.fromCharCode(104,101,101,108,111)//"hello"
引用類型Array

和其他語言一樣,javaScript中的數(shù)組是一個有序列表。但和其他語言不同的是,javaScript數(shù)組的每一項可以保存任何類型的數(shù)據(jù)。

創(chuàng)建數(shù)組

有兩種基本方式,第一種使用Array構(gòu)造函數(shù),用new創(chuàng)建數(shù)組數(shù)組(new可以省略)

var colors = new Array("red","blue","green");

第二種使用字面量創(chuàng)建

var colors = ["red","blue","green"];
棧方法

javaScript為數(shù)組專門提供push()pop()方法,以便實現(xiàn)類似棧的行為。
push()可以接收任意數(shù)量的參數(shù),把他們添加到數(shù)組末尾,返回修改后數(shù)組的長度。
pop()方法從數(shù)組末尾移除一項,減少數(shù)組的length值,返回移除的項。

隊列方法

結(jié)合使用shift(),push(),可以像使用隊列一樣的數(shù)組。
同時使用unshift()pop()方法,可以從相反的方向來模擬隊列。
shift():從數(shù)組頭部刪除一個元素,返回被移除的元素。
unshift():從數(shù)組頭部添加一個元素,返回數(shù)組的長度。

重排序方法

數(shù)組中已經(jīng)存在兩個可以直接用來重排序的方法:reverse()sort()。

valvalues=[1,2,3,4,5];
values.reverse();
alert(values);//5,4,3,2,1

sort()方法按升序排列數(shù)組項,sort()方法可以接收一個函數(shù)作為參數(shù),修改排序。

function compare(a,b){
    if(a < b){
        return -1;
    }
    else if(a > b){
        return 1
    }
    else{
        return 0;
    }
}
var values = [4,5,1,3,2];
values.sort(compare);
alert(values);//1,2,3,4,5
對于數(shù)值型可以直接寫成
function compare(a,b){
    return a-b;//降序
}
操作方法

concat(),將接收到的參數(shù)添加到數(shù)組的末尾,返回一個新數(shù)組,不修改原數(shù)組。

var colors  = ["red","green","blue"];
var colors2 = colors.concat("yellow","red");
alert(colors);//red,green,blue
alert(colors2);//red,green,blue,yellow,red

slice():能夠基于當(dāng)前數(shù)組中的一個多項創(chuàng)建一個新數(shù)組。slice()方法可以接收一個或兩個參數(shù),即返回項的起始和結(jié)束位置。不會影響原始數(shù)組。
splice()方法有很多種用法,始終都是返回一個數(shù)組。直接修改原數(shù)組

var colors = ["red","green"];
//刪除:指定2個參數(shù):刪除第一項的位置,和刪除的項數(shù),返回刪除的項
 var colors4 = colors.splice(0,2);
 //插入:提供三個參數(shù),起始位置,0(要刪除的項數(shù)),要插入的項,返回空數(shù)組
 var colors5 = colors.splice(0,0,"1","2");
 //替換:提供3個參數(shù),起始位置,要替換的項數(shù),要插入的項,返回替換的項
 var colors6 = colors.splice(0,2,"red","green");??
位置方法

indexOf()lastIndexOf().兩個方法都接收兩個參數(shù)要查找的項和(查找的起始位置)。
在比較第一個參數(shù)中的每一項時,會使用全等操作符。

迭代方法

javaScript定義了5個迭代方法。每個方法都接收兩個參數(shù):要在每一項上運(yùn)行的函數(shù)和(運(yùn)行該函數(shù)對象的作用域——影響this的值)。傳入這些方法的函數(shù)會接收三個參數(shù)。數(shù)組項的值,該項在數(shù)組中的位置,數(shù)組對象本身。都不會修改數(shù)組的值。
every():對數(shù)組中的每一項運(yùn)行給定函數(shù),如果該函數(shù)每一項都返回true,則返回true。
filter():對數(shù)組中的每一項運(yùn)行給定函數(shù),返回該函數(shù)返回true的項組成的數(shù)組。
forEach():對數(shù)組中的每一項運(yùn)行給定函數(shù),沒有返回值。
map():對數(shù)組中的每一項運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用結(jié)構(gòu)組成的數(shù)組。
some():對數(shù)組中的每一項運(yùn)行給定函數(shù),如果該函數(shù)對任意一項返回true,則返回true

var number = [1,2,3,4,5,4,3,2,1];
var everyResult = number.every(function(item,index,array){
    return (item>2);
});
alert(everyResult);//false

var someResult = number.some(function(item,index,array){
    return (item>2);
});
alert(someResult);//true

var filterResult = number.filter(function(item,index,array){
    return item>2;
});
alert(filterResult);//[3, 4, 5, 4, 3]

var mapReuslt = number.map(function(item,index,array){
    return item*2;
});
alert(mapResult);//[2, 4, 6, 8, 10, 8, 6, 4, 2]

var num = [];
var forEachResult = number.forEach(function(item,index,array){
    if(item!=0){
        num += item;
    }
});
alert(num);//"123454321"
alert(forEachResult)//undefined
縮小方法

Reduce()reduceRight(),這兩個方法都會迭代數(shù)組的所有項,然后構(gòu)建一個最終返回的值。reduce()方法從數(shù)組的第一項開始,逐個遍歷到最后。reduceRight()則相反.
都接收兩個參數(shù):一個在每一項上調(diào)用的函數(shù)和(作為縮小基礎(chǔ)的初始值)。調(diào)用的函數(shù)接收4個參數(shù):前一值,當(dāng)前值,項的索引和項的數(shù)組。這個函數(shù)返回的任何值都會作為參數(shù)返回。

//執(zhí)行求和操作
var arr = [1,2,3,4,5];
var sum = arr.reduce(function(prev,cur,index,array){
    return prev + cur;
});

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

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

相關(guān)文章

  • 溫故js系列(1)-基本數(shù)據(jù)類型引用數(shù)據(jù)類型判斷&存儲訪問&類型轉(zhuǎn)換

    摘要:引用數(shù)據(jù)類型引用數(shù)據(jù)類型值指保存在堆內(nèi)存中的對象。訪問方式是按引用訪問。數(shù)據(jù)類型檢測操作符是檢測基本類型的最佳工具。未定義布爾值字符串?dāng)?shù)值對象或函數(shù)用于檢測引用類型,可以檢測到它是什么類型的實例。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:數(shù)據(jù)類型 回味,無窮! 數(shù)據(jù)類型定義 數(shù)據(jù)類型分類 基本數(shù)據(jù)...

    jone5679 評論0 收藏0
  • 1、自定義類型的定義及使用 2、自定義類的內(nèi)存圖 3、ArrayList集合的基本功能 4、隨機(jī)點名

    摘要:自定義類的概述自定義類的概述代碼映射成現(xiàn)實事物的過程就是定義類的過程。自定義類的格式自定義類的格式使用類的形式對現(xiàn)實中的事物進(jìn)行描述。 01引用數(shù)據(jù)類型_類 * A: 數(shù)據(jù)類型 * a: java中的數(shù)據(jù)類型分為:基本類型和引用類型 * B: 引用類型的分類 * a: Java為我們提供好的類,比如說:Scanner,Random等。 * b: 我們自己創(chuàng)建的類...

    only_do 評論0 收藏0
  • 細(xì)數(shù)判斷數(shù)據(jù)類型的各種方法

    摘要:可用于判斷多種數(shù)據(jù)類型基本數(shù)據(jù)類型和內(nèi)置對象,然而對于一些自定義構(gòu)造函數(shù)生成的對象就不能進(jìn)行判斷了。判斷是不是所有數(shù)據(jù)類型中,只有不等于它本身判斷數(shù)組的方法除了上文提到的三種方法可判斷外,還有一個構(gòu)造函數(shù)自帶的方法可判斷。 數(shù)據(jù)類型的分類 要想判斷數(shù)據(jù)類型,首先要知道數(shù)據(jù)類型的分類。數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。 基本數(shù)據(jù)類型 基本數(shù)據(jù)類型有 五 種,ES6中新加了第 六 種...

    hoohack 評論0 收藏0
  • 基礎(chǔ)回顧-javascript數(shù)據(jù)類型

    摘要:棧區(qū)由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。屬性返回對創(chuàng)建此對象的構(gòu)造函數(shù)的引用。所有的和都是宿主對象參考高級程序設(shè)計堆和棧的概念和區(qū)別全面解析中的數(shù)據(jù)類型與類型轉(zhuǎn)換 數(shù)據(jù)類型 數(shù)據(jù)類型劃分 javascript中定義了6中基本數(shù)據(jù)類型(原始值類型),和一種復(fù)雜數(shù)據(jù)類型(引用類型),所謂復(fù)雜類型,其本質(zhì)是由無序的名值對(key:val...

    codergarden 評論0 收藏0
  • JavaScript的數(shù)據(jù)類型及其檢測

    摘要:值的比較只進(jìn)行值的比較會進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。只要在當(dāng)前實例的原型鏈上,我們用其檢測出來的結(jié)果都是。但檢測與不一樣,還可以處理基本數(shù)據(jù)類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數(shù)據(jù)類型,分別是基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。其中...

    starsfun 評論0 收藏0

發(fā)表評論

0條評論

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