JavaScript筆記

小東西

1.訪問未初始化的變量

var a;

console.log("The value of a is "+a);// logs "的值未定義"

console.log("The value of b is "+b);// 拋出ReferenceError異常

2.數(shù)據(jù)類型

六種原型數(shù)據(jù)類型(Boolean、null、undefined、Number、String、Symbol)以及Object對(duì)象

3.數(shù)據(jù)轉(zhuǎn)換

parseInt()和parseFloat()分別用于字符串變?yōu)閿?shù)字的全局方法。//雙引號(hào)~

4.對(duì)象的值

對(duì)象屬性名字可以是任意字符串,包括空串。如果對(duì)象屬性名字不是合法的javascript標(biāo)識(shí)符,它必須用""包裹。屬性的名字不合法,那么便不能用.訪問屬性值,而是通過類數(shù)組標(biāo)記("[]")訪問和賦值。

5.函數(shù)的遞歸

function factorial(n){

? if((n==0)||(n==1))

? return1;

? else

? return(n*factorial(n-1));

} ? ?// 用自身遞歸計(jì)算階乘

6.閉包

JavaScript允許函數(shù)嵌套,并且內(nèi)部函數(shù)可以訪問定義在外部函數(shù)中的所有變量和函數(shù),以及外部函數(shù)能訪問的所有變量和函數(shù)。但是,外部函數(shù)卻不能夠訪問定義在內(nèi)部函數(shù)中的變量和函數(shù)。這給內(nèi)部函數(shù)的變量提供了一定的安全性。而且,當(dāng)內(nèi)部函數(shù)生存周期大于外部函數(shù)時(shí),由于內(nèi)部函數(shù)可以訪問外部函數(shù)的作用域,定義在外部函數(shù)的變量和函數(shù)的生存周期就會(huì)大于外部函數(shù)本身。當(dāng)內(nèi)部函數(shù)以某一種方式被任何一個(gè)外部函數(shù)作用域訪問時(shí),一個(gè)閉包就產(chǎn)生了。

7.函數(shù)默認(rèn)參數(shù)是undefined

對(duì)象數(shù)組以及字符串

1.創(chuàng)建對(duì)象

創(chuàng)建對(duì)象

//直接創(chuàng)建

person=new Object();

person.name="bill";

person.age="13";

//函數(shù)構(gòu)造對(duì)象

function person(name,age)

{

this.name=name;

this.age=age;

}

var myFather=new person("bill","13");

//對(duì)象初始化器

person={name:"bill",age:"13"};

2.常用的APi

1.數(shù)組

concat() //連接數(shù)組

join() //把數(shù)組變?yōu)樽址?默認(rèn)分隔符為“,”,可以變?yōu)椤?”、“.”等等......

pop() //刪除并返回最后一個(gè)元素

shift() //刪除并返回第一個(gè)元素

unshift(newelement1,newelement2,....,newelementX) //向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長(zhǎng)度

push() //在末尾添加一個(gè)元素并返回?cái)?shù)組的新長(zhǎng)度

reverse() //顛倒數(shù)組中元素的順序

slice(start,end) //提取start到end的數(shù)組值,原數(shù)組不改變

sort()/sort(sortNumber) //字母順序排序、數(shù)值大小排序

splice(index,howmany,item1,.....,itemX) //如果刪除數(shù)量(howmany)為0就不刪除直接在index后面添加items,item為可選屬性

toSource()?//返回該對(duì)象的源代碼

toString()?//把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果

3.字符串練習(xí)

// 字符串長(zhǎng)度

function stringLength (str) {

var theLength=str.length;

return theLength;

}

// CHONG重復(fù)打印

stringLength('strr');

function repeatStringNumTimes (str,num) {

var result="";

while (num > 0) {

result += str;

num--;

}

return result;

}

repeatStringNumTimes('huang',3);

function repeatStringNumTimes (str,num) {

var array = [];

for (var i = 0; i < num; i++) {

array.push(str)

}

return array.join("");

}

repeatStringNumTimes ('strin',3);

// 字符串去重函數(shù)

function uniqString(str) {

var Arr = str.split("");

var newArr = [];

for (var i in Arr) {

if (newArr.indexOf(Arr[i]) == -1){

newArr.push(Arr[i]);

}

}

var strr = newArr.join("");

return strr;

}

uniqString('wwwooorrrdddd');

// 字符串翻轉(zhuǎn)

function reverseString(str) {

var arr = str.split("");

var reverseArr = arr.reverse();

var strr = reverseArr.join("");

return strr;

}

reverseString('str');

// 去除數(shù)字

function removeNum(str) {

var res;

if (typeof str === 'string') {

res = str.replace(/\d/g, '');

}

else {

res = str ;

}

return res;

}

removeNum('s1t4r3');

//統(tǒng)計(jì)字符串出現(xiàn)的數(shù)量

function caculateExistNum(str){

var res = {};

var Arr = str.split('');

Arr.forEach(function (eachChar){

res[eachChar] = res[eachChar] ? res[eachChar] + 1 : 1;

})

var strr = '';

var key = Object.keys(res);

key.forEach(function(eachChar) {

strr = strr? + res[eachChar] + eachChar;

})

return strr;

}

caculateExistNum('strr');

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容