js基本的數(shù)據(jù)類型 :數(shù)字類型,字符串型,布爾型,undefined,null ,對象類型,數(shù)組
為平頂山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及平頂山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、網(wǎng)站設(shè)計、平頂山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
1、數(shù)字類型(Number)
只有一種數(shù)字類型,數(shù)字 可以是小數(shù) ,也可以的整數(shù)
以0開頭 默認(rèn)使用8進(jìn)制來表示我的這個數(shù)字
以0x開頭 默認(rèn)使用16進(jìn)制來表述我的這個數(shù)字
如果以-開頭 默認(rèn)以負(fù)數(shù)
如果我?guī)в衑:以科學(xué)計數(shù)法來解析我的這個數(shù)字
2、字符串型(string)
字符串是存儲字符的變量,用來表示文本的數(shù)據(jù)類型,程序中的字符串是包含單引號/雙引號的,由單引號來界定我雙引號中包含的字符串 反過來
es6模板字符串("`")
3、布爾類型(boolean)
一般是用在流程控制語句中,字符串和數(shù)字類型都是無窮多個,然而我們的布爾數(shù)據(jù)類型只有兩個:true 和 false
這兩個個值一般用于說明某個事物是真或者假
js一般用布爾類型來比較所得到的結(jié)果
4、null(空)
關(guān)鍵字null是一個特殊的值,它表示變量為空值,用來定義空的或者是不存在的引用。
如果試圖去引用一個沒有定義的值,就會返回一個null。
這里注意一點:null并不等于"" 或者0
5、undefined(未定義)
這個值表示變量不含有值,沒有定義的值,或者被定義了一個不存在的屬性值
將每一個字節(jié)表示的十六進(jìn)制表示的內(nèi)容,用字符串來顯示。
UTF(UCS Transformation Format)規(guī)范,常見的UTF規(guī)范包括UTF-8、UTF-7、UTF-16
使用2個字節(jié)表示已經(jīng)有碼點的字符。UCS-2只是一個編碼方案,UTF-16卻要用于實際的傳輸
UCS-4就是用4個字節(jié)(實際上只用了31位,最高位必須為0)編碼
js使用的編碼
中日韓統(tǒng)一表意文字
每個漢字由兩個字節(jié)構(gòu)成
是針對繁體漢字的漢字編碼,臺灣地區(qū)常用,共收錄13,060個漢字
該函數(shù)能解碼由創(chuàng)建或其它流程得到的統(tǒng)一資源標(biāo)識符(URI)。
方法用于解碼由方法或者其它類似方法編碼的部分統(tǒng)一資源標(biāo)識符(URI)。
escape生成新的由十六進(jìn)制轉(zhuǎn)義序列替換的字符串
計算生成一個新的字符串,其中的十六進(jìn)制轉(zhuǎn)義序列將被其表示的字符替換。
首先創(chuàng)建一個字符串,創(chuàng)建字符串的方法有兩種:
1.字面量:var str = "abc123efg456";
2.構(gòu)造函數(shù):var str = newString("abc123efg456");
其次,需要注意的是,javascript的字符串是不可變的,String類定義的方法都不可以改變字符串內(nèi)容。若是需要通過方法改變字符串的內(nèi)容,需要將返回值重新賦值給原來的字符串。如:str = str.toUpperCase();
下面,介紹比較常用的字符串的方法:
var str = "1abc123abc456abc";
功能:返回指定的字符串值在字符串中首次出現(xiàn)的位置。
參數(shù):s為要檢索的字符,必需;n為可選的字符參數(shù),規(guī)定字符串檢索的位置。
demo:
var index1 = str.indexOf("a");
var index2 =str.indexOf("a",8);
var index3 =str.indexOf("a",14);
console.log(index1); // 1
console.log(index2); // 13
console.log(index3); // -1? 從檢索的位置檢索不到字符,返回-1
功能:返回一個指定的字符串值最后出現(xiàn)的位置,在一個字符串中的指定位置從后向前搜索。
參數(shù):s為要檢索的字符,必需;n為可選的字符參數(shù),規(guī)定字符串檢索的位置。
demo:
var index1 =str.lastIndexOf("a");?
var index2 =str.lastIndexOf("a",11);
var index3 =str.lastIndexOf("a",0);
console.log(index1); // 13
console.log(index2); // 7
console.log(index3); // -1? 從檢索的位置檢索不到字符,返回-1
功能:返回指定位置的字符。
參數(shù):n表示字符串中某個位置的索引,不寫默認(rèn)為第0個字符。
demo:
var s = str.charAt(3);
console.log(s);? // c
功能:返回指定位置的字符的Unicode編碼。
參數(shù):n表示字符串中某個位置的索引,可以沒有參數(shù),默認(rèn)是索引為0的參數(shù)。
demo:
var s = str.charCodeAt(3);
console.log(s);? // 99
注:c的unicode編碼為99。
注意:charAt(n)方法和charCodeAt(n)方法類似,前者返回的是字符,后者返回的是字符的unicode編碼。
功能:將編碼轉(zhuǎn)成字符方法。
參數(shù):十進(jìn)制和十六進(jìn)制,不支持unicode編碼。
demo:
var s1 =String.fromCharCode("0x56fd");
var s2 = String.fromCharCode(22269);
console.log(s1);?? //國
console.log(s2);? //國
注:“國”的十六進(jìn)制編碼是56fd,十進(jìn)制是22269。
功能:根據(jù)指定位置,截取子串,從m到n,不包括n。
參數(shù):m,n為索引。
demo:
var s = str.slice(2,7);
console.log(s); // bc123
功能:根據(jù)指定位置,截取子串,從m到n,不包括n。
參數(shù):m,n為索引。
demo:
var s = str.substring(2,7);
console.log(s); // bc123
功能:根據(jù)指定位置,截取子串,從m位置取,共取n個。
參數(shù):m,n為索引。
demo:
var s = str.substr(2,7);
console.log(s); // bc123ab
功能:字符串替換。
參數(shù):oldstr為需要被替換的字符,newstr為替換的字符。
demo:
var s =str.replace("a","l");
console.log(s); // 1lbc123abc456abc
注意:每次只能替換一個符合條件的字符。
功能:分割字符,返回成為數(shù)組。
參數(shù):"s"為分割的字符。
demo1:
var arr1 = str.split("b");
console.log(arr1);? // ["1a", "c123a","c456a", "c"]
demo2:
var arr2 = str.split(); //["1abc123abc456abc"]
console.log(arr2);
demo3:
var arr3 = str.split("");
console.log(arr3); // ["1","a", "b", "c", "1", "2","3", "a", "b", "c", "4","5", "6", "a", "b", "c"]
注意:參數(shù)不寫的時候,返回原字符串組成的數(shù)組;參數(shù)為空字符的時候,將每個字符分割,返回一個數(shù)組
功能:檢索字符串中指定的子字符串,返回第一個與字符串匹配的索引值。
參數(shù):需要被檢索的字符串。
demo:
var s1= str.search("abc");
var s2 = str.search("efg");
console.log(s1); // 1
console.log(s2); // -1
注:如果沒有找到任何匹配的子串,則返回-1。
功能:在字符串內(nèi)檢索指定的值,匹配到就返回指定的字符值。
參數(shù):需要被檢索的字符串。
demo:
var s1= str.match("abc");
var s2 = str.match("efg");
console.log(s1); // ["abc",index: 1, input: "1abc123abc456abc", groups: undefined]
console.log(s2); // null
注:該方法類似indexOf()和lastIndexOf(),但是它返回指定的值,沒有就返回null
功能:連接兩個或多個字符串,返回連接后的字符串。
參數(shù):需要連接的字符串。
demo:
var str1="abc ";
var str2="123";
console.log(str1.concat(str2));?? // "abc 123"
提示:如果需要拼接字符串,用運算符“+”更簡單。
功能:把字符串轉(zhuǎn)換為小寫。
參數(shù):無
demo:
var str = "ABC abc";
console.log(str.toLowerCase()); // abcabc
功能:把字符串轉(zhuǎn)換為大寫。
參數(shù):無
demo:
var str = "ABC abc";
console.log(str.toUpperCase()); // ABCABC
功能:把字符串顯示為大號字體。
參數(shù):無
demo:
var s = str.big();
document.write(str+"");
document.write(s);
功能:把字符串顯示為小號字。
參數(shù):無
demo:
var s = str.small();
document.write(str+"");
document.write(s);
功能:把字符串顯示為粗體。
參數(shù):無
demo:
var s = str.bold();
document.write(str+"");
document.write(s);
功能:把字符串顯示為斜體。
參數(shù):無
demo:
var s = str.italics();
document.write(str+"");
document.write(s);
功能:將字符以指定的顏色顯示。
參數(shù):顏色名(red)、RGB 值(rgb(255,0,0))或者十六進(jìn)制數(shù)(#FF0000)。
demo:
var s = str.fontcolor("red");
document.write(str+"");
document.write(s);
功能:將字符以指定的字號顯示。
參數(shù):size參數(shù)必須是從1和7之間的數(shù)字,1表示小的字號,7表示最大的字號。
demo:
var s = str.fontsize(7);
document.write(str+"");
document.write(s);
功能:把字符串顯示為超鏈接。
參數(shù):鏈接的URL。
demo:
var s =str.link("");
document.write(str+"");
document.write(s);
功能:把字符串加字符串顯示。
參數(shù):無
demo:
var s = str.strike();
document.write(str+"");
document.write(s);
以上是對字符串方法的整理,如有修改、補(bǔ)充,后續(xù)會更新。
文中如果紕漏,錯誤,不合理,描述不清晰,不準(zhǔn)確等問題,歡迎大家留言指正...
靜態(tài)方法屬于整個類所有,因此調(diào)用它不用實例化,可以直接調(diào)用------ 類.靜態(tài)方法() ====Array.from()/Array of(),Object.is(),Math.ceil().....,不難發(fā)現(xiàn)這些 靜態(tài)方法都是類作為調(diào)用對象使用的
實例方法必須先實例化,創(chuàng)建一個對象,才能進(jìn)行調(diào)用------ 對象.實例方法()
①Object.is()
用來比較兩個值是 否嚴(yán)格相等 ,與嚴(yán)格比較運算符(===)的行為基本一致。
②Object.assign()
用于對象的 合并 ,將多個對象的所有可枚舉屬性復(fù)制到目標(biāo)對象。
newObject:目標(biāo)對象
object1,object2,object3…:源對象
添加屬性
添加方法
③Object.keys()
返回值為對象的所有屬性名組成的數(shù)組
④Object.values()
返回值為對象的所有值組成的數(shù)組
⑤Object.entries()
成員是參數(shù)對象自身的(不含繼承的)所有可遍歷屬性的 鍵值對數(shù)組 。
①Array.from()
用于將兩類對象轉(zhuǎn)化為真正的數(shù)組: 類數(shù)組對象,和可遍歷的對象
②Array.isArray()
用于判斷一個對象是否為數(shù)組,如果是返回true,否則返回false
③Array.of()
用于將一組 數(shù)據(jù) 裝進(jìn)一個 數(shù)組 中。
Array();? ? ? ? ? ? ? // [? ]
Array(7);? ? ? ? ? ? // [ , , , , , , ] 相當(dāng)于數(shù)組長度為7
Array(1, 2, 3);? ? // [1, 2, 3]
Array.of();? ? ? ? ? // [? ]
Array.of(7);? ? ? ? // [7] 這里寫7那就是數(shù)組中有一個7
Array.of(1, 2, 3);? // [1, 2, 3]
Array.of() 方法不存在 Array() 由于參數(shù)個數(shù)不同而導(dǎo)致的重載,它的行為很穩(wěn)定,所以一般用前者代替后者。
①Number.isFinite(), Number.isNaN()
Number.isFinite()用來檢查一個 數(shù)值 是否為有限的(finite)
Number.isNaN()用來檢查一個值是否為NaN 。
Number.isFinite()對于非數(shù)值一律返回false, Number.isNaN()只有對于NaN才返回true,非NaN一律返回false。
①Math.trunc()
Math.trunc方法用于 去除一個數(shù)的小數(shù)部分 , 返回整數(shù)部分。
②Math.sign()
Math.sign方法用來判斷一個數(shù)到底是正數(shù)、負(fù)數(shù)、還是零。 對于非數(shù)值,會先將其轉(zhuǎn)換為數(shù)值 。
它會返回五種值。
參數(shù)為正數(shù),返回+1;
參數(shù)為負(fù)數(shù),返回-1;
參數(shù)為 0,返回0;
參數(shù)為-0,返回-0;
其他值,返回NaN。
1)PI 取圓周率
2)abs() 取絕對值
3)ceil() 向上取整
4)floor() 向下取整
5)round() 四舍五入
6)max() 取最大值
7)min() 取最小值
8)pow() 取X的y次冪
9)random() 取隨機(jī)數(shù) =0 1
js數(shù)組遍歷某個值求和
一、增
1、push()
可接收任意數(shù)量的參數(shù),把它們逐個添加至數(shù)組末尾,并返回修改后數(shù)組的長度。例如:
2、unshift()
該方法與push()類似,也可接收任意數(shù)量的參數(shù),只不過是將參數(shù)逐個添加至數(shù)組前端而已,同樣返回新數(shù)組長度。咱們接著上面的例子:
3、concat()
該方法與push()方法有點類似,同樣是將元素添加至數(shù)組末尾,只不過這個數(shù)組已經(jīng)不是原來的那個數(shù)組了,而是其副本,所以concat()操作數(shù)組后會返回一個新的數(shù)組。具體用法如下:
① 不傳參數(shù),返回當(dāng)前數(shù)組副本
② 傳遞一或多個數(shù)組,則該方法會將這些數(shù)組中的每一項都添加到結(jié)果數(shù)組中
③ 傳遞非數(shù)組參數(shù),這些參數(shù)就會被直接添加到結(jié)果數(shù)組的末尾
繼續(xù)接著上面的栗子:
例子中一目了然,原數(shù)組保持不變,新數(shù)組后面添加了4、5、6三個元素。
4、splice()
前面的三個方法都具有很大局限性,因為不是添加到數(shù)組前就是數(shù)組后,而splice()就不一樣了,它非常靈活和強(qiáng)大。靈活是因為它可以添加元素到數(shù)組的任意位置,強(qiáng)大是因為它除了可以添加元素之外還具有刪除和替換元素的功能(這個后面會陸續(xù)講到)。
splice()可以向數(shù)組指定位置添加任意數(shù)量的元素,需要傳入至少3個參數(shù): 起始位置、0(要刪除的元素個數(shù))和要添加的元素。
依然接著上面的例子繼續(xù):
可以看出,splice()與push()和unshift()一樣是直接在原數(shù)組上修改的。
二、刪
1、pop()
與push()方法配合使用可以構(gòu)成后進(jìn)先出的棧,該方法可從數(shù)組末尾刪除最后一項并返回該項。
接著上例:
2、shift()
與push()方法配合使用可以構(gòu)成先進(jìn)先出的隊列,該方法可刪除數(shù)組第一項并返回該項。
繼續(xù)接著上例:
3、slice()
定義和用法
slice() 方法以新的數(shù)組對象,返回數(shù)組中被選中的元素。
slice() 方法選擇從給定的 start 參數(shù)開始的元素,并在給定的 end 參數(shù)處結(jié)束,但不包括。
注釋:slice() 方法不會改變原始數(shù)組。
該方法同concat()一樣是返回一個新數(shù)組,不會影響原數(shù)組,只不過slice()是用來裁剪數(shù)組的,返回裁剪下來的數(shù)組,具體用法如下:
4、splice()
好,繼續(xù)講這個“萬能”的方法。
上面講到,該方法在添加數(shù)組元素的時候需要傳入3個以上參數(shù),而其中第2個參數(shù)就是用于指定要刪除元素的個數(shù)的,那時我們傳的是數(shù)字0。那么,如果單單只需刪除元素,我們就只需給splice()傳入兩個參數(shù),第1個參數(shù)用于指定要刪除的第一項的位置,第2個參數(shù)用于指定要刪除元素的個數(shù)。
繼續(xù)上例~~
從索引項為2的位置開始刪除4個元素,所以結(jié)果為 [-1, 0, 1, 2]。
三、改
這個其實最靈活的方式就是直接使用splice()這個強(qiáng)大的方法了,其實通過以上對該方法的了解,我們大致就能知道使用該方法修改數(shù)組元素的基本原理。
原理很簡單,就是向指定位置插入任意數(shù)量的元素,且同時刪除任意數(shù)量的元素。
依然繼續(xù)上例~~
四、查
indexOf()和lastIndexOf()
這兩個方法都接收兩個參數(shù):要查找的項和(可選的)表示查找起點位置的索引。其中,indexOf()從數(shù)組的開頭(位置0)開始向后查找,lastIndexOf()方法則從數(shù)組的末尾開始向前查找。
例如:
當(dāng)找不到該元素時,返回 -1 ,lastIndexOf()方法同理。
1 數(shù)據(jù)類型
script
2 引用數(shù)據(jù)類型
object 對象類型
3 number 數(shù)字類型
包含所有的數(shù)字(整數(shù),浮點數(shù),正數(shù),負(fù)數(shù),極大極小數(shù)),Infinity(分母為零),NaN(not a number)
4 string 字符串類型
引號包含的任意文本,單雙引號都可以
輸出展示
2 比較運算符
script
/*
1 比較運算符
比較兩個值的大小 返回一個布爾值(true 或 false)
= = == != === !==
== 等于,只判斷數(shù)值
===全等,絕對等于,即判斷數(shù)據(jù)類型也判斷數(shù)值
!= == 取反
!== ===取反
console.log(undefined == null);//true 都沒有值
console.log(undefined === null);//false 數(shù)據(jù)類型不同undefined object
console.log(NaN == NaN); //false
console.log(NaN === NaN); //false
console.log(NaN != NaN); //true
console.log(NaN !== NaN); //true
/
/script
3 邏輯運算符
script
/
2 邏輯運算符
連接多個表達(dá)式,返回一個布爾值(true 或 false)
邏輯與 并且 所有的表達(dá)式都為true,結(jié)果才為true,有一個為false結(jié)果就為false
|| 邏輯或 或者 所有的表達(dá)式都為false,結(jié)果才為false,有一個為true結(jié)果就為true
! 邏輯非 取反 表達(dá)式為true取反就為true,反之亦然
注意: 邏輯與的優(yōu)先級大于邏輯或
*/
/script
邏輯運算符演示
輸出到控制臺的結(jié)果
4 賦值運算符
script
/*
3 賦值運算符
= 等號右邊的值賦值給左邊
+= x += y x = x + y 下同
-=
*=
/=
%= 要的是余數(shù)
*/
/script
script
x = 7;
y = 3;
console.log(x/=y)
/script
5 算術(shù)運算符
script
/*
算術(shù)運算符
+ - * / %(取余,取模) ++(自增) --(自減)
%(取余,取模) 應(yīng)用 判斷奇偶數(shù)、倍數(shù)
++ 相當(dāng)于自己加1 x++ 相當(dāng)于 x = x + 1
-- 相當(dāng)于自己加1 x-- 相當(dāng)于 x = x - 1
+運算碰到字符串,直接進(jìn)行字符串拼接,返回string類型
- * / %遇到字符串,都轉(zhuǎn)換成number類型進(jìn)行計算,如果不能轉(zhuǎn)換成數(shù)字,則返回NaN,數(shù)據(jù)類型未number
true轉(zhuǎn)換1 false轉(zhuǎn)換為0
++ --
前++和后++,對于變量自己來說沒有區(qū)別都是+1
前++ 先賦值 在加1
后++ 先加1 再賦值
/
/script
script
/ var x = 5;//number
var y = 2;//number
comsole.log(x + y);//7
comsole.log(x - y);//3
comsole.log(x * y);//10
comsole.log(x / y);//2.5
comsole.log(x % y);//1 */