JavaScript學(xué)習(xí)-序列化盐固、轉(zhuǎn)義和函數(shù)

序列化:

把JS對象轉(zhuǎn)換成JSON格式

JSON.stringify(obj)? 序列化

JSON.parse(str)? ? 反序列化

var ls=[1,2,3,4];

var ls_st = JSON.stringify(ls);

var ls_ls = JSON.parse(ls_st);

document.write(ls_st);? ? //[1,2,3,4]

document.write(ls_ls);? ? //1,2,3,4

轉(zhuǎn)義:

把URL的中文轉(zhuǎn)義成編碼绿聘。一般用于轉(zhuǎn)義數(shù)據(jù)后塞祈,保存在本地Cookies

encodeURI( ) :轉(zhuǎn)義URL字符,轉(zhuǎn)中文字和常見符號辜王,不轉(zhuǎn)!@#$&*()_+-=.

encodeURIComponent( ):轉(zhuǎn)義URL字符,除了~!*()-_.罐孝,其它都轉(zhuǎn)

decodeURI( ):還原decodeURI中的轉(zhuǎn)義字符

decodeURIComponent( ):還原decodeURIcomponent組件中的字符

escape( ):對字符串轉(zhuǎn)義

unescape( ):給轉(zhuǎn)義字符串解碼

URIError:由URl的編碼和解碼方法拋出

var web_address='http://localhost:8080/test.html?user=管理員';

var web_encode=encodeURI(web_address);

document.write(web_encode);//http://localhost:8080/test.html?user=%E7%AE%A1%E7%90%86%E5%91%98

var web_encode=decodeURI(web_encode);

document.write('<br>');

document.write(web_encode);? ? ? ? ? //http://localhost:8080/test.html?user=管理員?

document.write('<br>');

var web_en_c=encodeURIComponent(web_address);? ? ? //原始地址encode?

//http%3A%2F%2Flocalhost%3A8080%2Ftest.html%3Fuser%3D%E7%AE%A1%E7%90%86%E5%91%98

document.write('<br>');

var web_ene_c=encodeURIComponent(web_encode);? ? ? //encodeURI,encode呐馆,把%號也encode了

//http%3A%2F%2Flocalhost%3A8080%2Ftest.html%3Fuser%3D%25E7%25AE%25A1%25E7%2590%2586%25E5%2591%2598

document.write('<br>');

var web_de_c=decodeURIComponent(web_en_c);? ? ? ?

//http://localhost:8080/test.html?user=管理員

document.write('<br>');

var web_dee_c=decodeURIComponent(web_ene_c);? //decode一層,漢字需要再次decode/decodeURIC也可以

//http://localhost:8080/test.html?user=%E7%AE%A1%E7%90%86%E5%91%98

eval和exec:

eval():執(zhí)行字符表達(dá)式或代碼塊莲兢,

執(zhí)行表達(dá)式返回結(jié)果汹来;

執(zhí)行代碼塊返回最后一個帶=號變量的結(jié)果续膳,代碼塊的變量運(yùn)算可以改變外面代碼的變量值

var a;

var multiple='var a=1;a=a+1;var b=1;b=b+6;'

var result=eval(multiple);

document.write(result);? ? // 7

document.write(a);? ? ? ? // 2

作用域:

以函數(shù)做為作用域,函數(shù)內(nèi)變量在函數(shù)沒調(diào)用前就已經(jīng)聲明(變量沒有值收班,值是undefined)

作用域鏈:變量值尋找方式坟岔,先找自已-再找父-再找爺爺。

//作用域鏈摔桦,子函數(shù)存在a變量

var a='grand';function func(){

? var a='parent';

? function sub(){

? ? var a='son';

? ? document.write(a)

? }

? return sub;}

? var b=func()

? b()? ? ? ? ? ? ? ? //son

//作用域鏈例子社付,變量在子函數(shù)運(yùn)行前調(diào)用

var a='grand';

function func(){

? var a='parent';

? function sub(){

? ? document.write(a)

? }

? var a='son';

? return sub;? ? //在返回的函數(shù)前

? }

? var b=func()

? b()? ? ? ? ? ? //son

//函數(shù)內(nèi)的局部變量,調(diào)用時先聲明變量邻耕,聲明

var bfunction func(){

? document.write(b);

? var b='s'? ? ? ? ? ? // b在調(diào)用后聲明瘦穆,但程序并不報錯

}

func();? ? ? ? // undefined

對象的this:類似于python類的self

使用new創(chuàng)建一個對象,就可以像python類一樣調(diào)用屬性,并且可以創(chuàng)建不同的實例

function Foo(n){

? this.name=n;

? this.sayname=function (){

? document.write(this.name)

? }

}

? var f = new Foo('david');

? document.write(f.name);? ? ? ? //daivd


? var f1 = new Foo('sam');

? document.write(f1.name);? ? ? ? // sam


? f.sayname();? ? ? ? ? ? ? ? ? ? //把子函數(shù)當(dāng)做類方法調(diào)用

? f1.sayname();

prototype原型赊豌,可以給對象添加屬性

function Foo(n){

? this.name=n;

}

var f = new Foo('david');

Foo.prototype.age=19;

document.write(f.age)? ? ? ? //19

函數(shù):

1、基本函數(shù)

function func(){

? var a=1;

? document.write(a);

}

2绵咱、匿名函數(shù):沒有函數(shù)名碘饼。通常寫在其它函數(shù)或方法里

//例一

function Foo(n){

? this.name=n;

? this.action=function(){

document.write('papapa');

}

}

var f = new Foo('david');

f.action()//例二

var i=1;

setInterval(function(){i++;alert(i);},2000);

3、自執(zhí)行函數(shù)

無需調(diào)用悲伶,直接運(yùn)行

(function test(n){

? for (var i=1;i<10;i++){

? ? document.write(i,':',n+i,'<br>');

? }})(3)

4艾恼、閉包函數(shù):占用內(nèi)存大,盡量少用

普通函數(shù)的問題:函數(shù)做用域是在函數(shù)本身麸锉,當(dāng)?shù)诙握{(diào)用時钠绍,不能記住上次運(yùn)算的值 ,函數(shù)里的變量重新獲取值花沉。

閉包函數(shù)原理:自執(zhí)行func()后柳爽,func()對象保存在add變量里,add變量不消失碱屁,內(nèi)存就不回收func()磷脯, count的作用域是在func()內(nèi),count+=1也改變了var count的值 娩脾,所以實現(xiàn)累加赵誓。

var add=(function func(){

? var count=0;

? return function(){count+=1; return count;}})();

? document.write(add())

? document.write(add())

? document.write(add())

函數(shù)實現(xiàn)解讀:

1、var add 柿赊,聲明變量add俩功,作用域-全局,

2碰声、(func)()是自執(zhí)行函數(shù)诡蜓,執(zhí)行func,所以add=function(){count+=1;return count;}

3奥邮、運(yùn)行add()万牺,也就是運(yùn)行function()這個匿名函數(shù)罗珍,并改變count的值,count=2

4、重點(diǎn)來了脚粟,add變量保存的內(nèi)存對象繼續(xù)生效覆旱,也就是count作用域也繼續(xù)存在,所以核无,再次運(yùn)行add()扣唱,也就是再次運(yùn)行了function()這個匿名函數(shù),count再加1团南,count=3

更多web前端開發(fā)知識噪沙,請查閱 HTML中文網(wǎng) !吐根!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末正歼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拷橘,更是在濱河造成了極大的恐慌局义,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冗疮,死亡現(xiàn)場離奇詭異萄唇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)术幔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門另萤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诅挑,你說我怎么就攤上這事四敞。” “怎么了拔妥?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵目养,是天一觀的道長。 經(jīng)常有香客問我毒嫡,道長癌蚁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任兜畸,我火速辦了婚禮努释,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咬摇。我一直安慰自己伐蒂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布肛鹏。 她就那樣靜靜地躺著逸邦,像睡著了一般恩沛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缕减,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天雷客,我揣著相機(jī)與錄音,去河邊找鬼桥狡。 笑死搅裙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的裹芝。 我是一名探鬼主播部逮,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫂易!你這毒婦竟也來了兄朋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤怜械,失蹤者是張志新(化名)和其女友劉穎蜈漓,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宫盔,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年享完,在試婚紗的時候發(fā)現(xiàn)自己被綠了灼芭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡般又,死狀恐怖彼绷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茴迁,我是刑警寧澤寄悯,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站堕义,受9級特大地震影響猜旬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜倦卖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怕膛。 院中可真熱鬧熟嫩,春花似錦、人聲如沸褐捻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昧狮,卻和暖如春景馁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陵且。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工裁僧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慕购。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓聊疲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沪悲。 傳聞我的和親對象是個殘疾皇子获洲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 猶記當(dāng)年童蒙時, 朔雪飄搖三千里殿如。 可憐歸期無定日贡珊, 徒教飛羽亂相思。 入世三年涉馁,心中惶惶门岔,歸期不定……
    SJwaiting閱讀 142評論 0 5
  • 丹尼爾·亞蒙醫(yī)生的《大腦勇士》告訴我們,要想獲得健康的大腦和身體烤送,成為大腦勇士寒随,我們需要以下三點(diǎn)策略: 1...
    韻兒吉祥閱讀 899評論 0 1
  • 高考完了,家長和孩子都松了一口氣帮坚。家長們終于可以休息了妻往,接著孩子們開始主動進(jìn)攻來了。 讓家長買手機(jī)试和,搬出電腦開始玩...
    山高欲攀閱讀 618評論 2 51
  • (一) 驕傲第一次認(rèn)識刺是在一次聚會上讯泣,那時驕傲在自然地和坐在對面的A聊天,他在自己抬頭瞬間下意識地向刺撇了一眼阅悍。...
    星際spike閱讀 583評論 1 2