欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
當javaScript從入門(mén)到提高前需要注意的細節:變量部分
到了HTML5的時(shí)代,對javaScript的要求不是降低了,而是更提高了。javaScript語(yǔ)言的入門(mén)非常簡(jiǎn)單,如果你有java、C#等C風(fēng)格的結構化語(yǔ)言的基礎,那javaScript你最多半天就可以寫(xiě)點(diǎn)什么了。但是javaScript是一種動(dòng)態(tài)語(yǔ)言,這個(gè)特性決定了他在很多方面和java、C#等語(yǔ)言有極大的不同。很多人說(shuō)只要會(huì )java、C#就可以在短時(shí)間內搞定javaScript,估計一般都是吹牛來(lái)的,用javaScript寫(xiě)點(diǎn)簡(jiǎn)單的應用沒(méi)有問(wèn)題,如果要完全比較好的掌握,那需要真正的理解javaScript的動(dòng)態(tài)這個(gè)特性。
當你快速的了解的javaScript入門(mén)編程后,在提高開(kāi)發(fā)能力之前,需要的是確保掌握javaScript的編程細節或者說(shuō)特殊性。
而且和css在不同的瀏覽器中有兼容性問(wèn)題一樣,javaScript在不同的瀏覽器和版本中也同樣有不同的變化。


我認為javaScript入門(mén)之后,向中級(基于面向對象的編程)發(fā)展之前,有兩個(gè)問(wèn)題會(huì )對開(kāi)發(fā)者有影響:類(lèi)型的動(dòng)態(tài)和語(yǔ)法的靈活性。而這兩點(diǎn)的集合,是另很多入門(mén)級的javaScript人員造成各種詭異問(wèn)題的核心。我這篇文章不討論關(guān)于語(yǔ)法的基礎,關(guān)于核心對象的方法,也不關(guān)心dom的處理,這些內容在網(wǎng)上的任何javaScript教程中都有,我們討論一個(gè)些基于代碼級別但容易寫(xiě)錯的地方,為你將來(lái)的高質(zhì)量的javaScript奠定些好的基礎。


我以下的內容是在IE7/8、Chrome14、FireFox10下進(jìn)行測試。同時(shí)聲明一個(gè)事情,下面的內容的次序比較隨意,比javaScript還隨意,不是作為一步步的教程給零基礎看的。需要你至少有些javaScript的代碼經(jīng)驗了。


關(guān)于變量部分

在javaScript中變量使用var聲明的變量是當前作用域的變量,不使用var聲明的則肯定是全局變量。

Html代碼
  1. <script type="text/javascript">  
  2.   
  3.     var x = 10; //全局   
  4.     y = 100; //全局   
  5.   
  6.     function fun1() {   
  7.         var m = 99; //局部   
  8.         n = 9; //全局   
  9.     }   
  10.   
  11.     alert(typeof this.x); //number   
  12.     alert(typeof this.y); //number   
  13.     alert(typeof this.m); //undefined   
  14.     alert(typeof this.n); //undefined   
  15.     fun1();   
  16.     alert(typeof this.m); //undefined   
  17.     alert(typeof this.n); //number   
  18.        
  19.   
  20. </script>  

以上代碼說(shuō)明,當fun1被執行后,函數內沒(méi)有用var聲明的n變量,被注冊為全局變量了。


下面的代碼得到同樣的執行效果

Html代碼
  1. <script type="text/javascript">  
  2.   
  3.     var x = 10; //全局   
  4.     y = 100; //全局   
  5.   
  6.     function fun1() {   
  7.         var m = 99; //局部   
  8.         n = 9; //全局   
  9.     }   
  10.   
  11.     alert(typeof window.x); //number   
  12.     alert(typeof window.y); //number   
  13.     alert(typeof window.m); //undefined   
  14.     alert(typeof window.n); //undefined   
  15.     fun1();   
  16.     alert(typeof window.m); //undefined   
  17.     alert(typeof window.n); //number   
  18.        
  19.   
  20. </script>  

那么,我們可以明顯的得到一個(gè)推理,在全局里面,window和this是同一個(gè)對象指向。

Html代碼
  1. <script type="text/javascript">  
  2.     alert(this == window);   
  3.     alert(this === window);   
  4. </script>  

那么下面的函數在其函數狀態(tài)和對象狀態(tài)時(shí)this的指向是不同的,因為javaScript的動(dòng)態(tài)的執行,當其執行到的時(shí)候,才去計算上下文情況。

Html代碼
  1. <script type="text/javascript">  
  2.   
  3.     function Fo1() {   
  4.         return this;   
  5.     }   
  6.   
  7.     alert(Fo1());   
  8.     alert(new Fo1());   
  9.        
  10. </script>  

同樣作為變量,使用var聲明的變量是不可以刪除的,沒(méi)有使用var聲明的變量是可以刪除的

Html代碼
  1. var x = 10; //全局   
  2. y = 100; //全局   
  3.   
  4. function fun1() {   
  5.     var m = 99; //局部   
  6.     n = 9; //全局   
  7.     delete m;   
  8.     delete n;   
  9.     alert(typeof m); //number   
  10.     alert(typeof n); //undefined   
  11. }   
  12.   
  13. delete x;   
  14. delete y;   
  15.   
  16. alert(typeof x); //number   
  17. alert(typeof y); //undefined   
  18. fun1();   
  19. alert(typeof n); //undefined  

在javaScript中聲明變量非常的靈活,但這個(gè)靈活性,對控制全局和局部要有所注意。

Html代碼
  1. function fun1() {   
  2.     var m = n = 10; //n是全局,m是局部   
  3.     var x, y = 1k = 10; //xyk都是局部   
  4. }  

而且,有意思的是,在通常的語(yǔ)言中,我們對變量總是先定義后使用,不過(guò)在javaScript中嘛……看以下代碼

Html代碼
  1. function fun1() {   
  2.     alert(typeof x); //undefined   
  3.     alert(typeof y); //undefined   
  4.     var x = 10;   
  5.     alert(typeof x); //number   
  6. }   
  7.   
  8. fun1();  

這樣的結果,對你來(lái)說(shuō)是完全可以接受和預期的,不過(guò)……

Html代碼
  1. function fun1() {   
  2.     alert(x); //undefined   
  3.     alert(y); //提示y沒(méi)有定義   
  4.     var x = 10;   
  5.     alert(x); //number   
  6. }   
  7.   
  8. fun1();  
上面的現象很奇怪,如果我們當真要用x和y的時(shí)候,編譯器卻給予不同的對待,認為x僅僅是沒(méi)有定義(認可已經(jīng)聲明了),而y是真正的不存在。這說(shuō)明在處理一個(gè)范圍的變量的時(shí)候,var無(wú)論你在哪里聲明的,總是一開(kāi)始就進(jìn)行分配了。對于非var定義的變量嘛,就沒(méi)有這樣的待遇了,必須等執行到才進(jìn)行分配

Html代碼
  1. <pre name="code" class="html">function fun1() {   
  2.     alert(x); //提示x沒(méi)有定義   
  3.     alert(y); //提示y沒(méi)有定義   
  4.     x = 10;   
  5.     alert(x); //number   
  6. }   
  7. fun1();</pre>  

更需要注意的是,在函數內部聲明的var變量,并不局限在聲明的代碼語(yǔ)句塊中,看看以下代碼

Html代碼
  1. function fun1() {   
  2.     for (var i = 0; i < 10; i++) {   
  3.   
  4.     }   
  5.     alert(i); //10   
  6. }   
  7.   
  8. fun1();  

所以呢,我們推薦在一個(gè)對象/函數的第一行就把所有的局部變量全部聲明完畢

Html代碼
  1. function fun1() {   
  2.     var value = 1,   
  3.     arr = [],   
  4.      obj = {},   
  5.     date = new Date(),   
  6.     has = false;   
  7. }  


注意變量之間用逗號隔離,這樣的好處是明顯的,自己去考慮吧。
javaScript的語(yǔ)法很靈活,語(yǔ)句后面可以不加;來(lái)表示結束,這個(gè)時(shí)候編譯器會(huì )講硬回車(chē)作為語(yǔ)句的結束符合

Html代碼
  1. function fun1() {   
  2.     var x = 10  
  3.     var y = 9  
  4.     return x + y   
  5. }   
  6.   
  7. alert(fun1()); //19  

以上的代碼寫(xiě)法我不知道有什么特別的好處,如果是炫耀你知道可以不用;來(lái)結束語(yǔ)句,那就到此為止吧。因為下面的代碼會(huì )得到一個(gè)錯誤

Html代碼
  1. function fun1() {   
  2.     return    
  3.     {   
  4.         Title: "title",   
  5.         Style: "style",   
  6.         Value: "Value"   
  7.     }   
  8. }   
  9.   
  10. alert(typeof fun1());   

因為javaScript會(huì )再return后面加一個(gè);

正確的做法是

Html代碼
  1. function fun1() {   
  2.     return {   
  3.         Title: "title",   
  4.         Style: "style",   
  5.         Value: "Value"   
  6.     };   
  7. }   
  8.   
  9. alert(typeof fun1());   
  
我不好說(shuō),這個(gè)原因一定是;不寫(xiě)引起的,但我想說(shuō)明的是,你要小心javaScript對隨意代碼的隨意處理:你總是應該讓javaScript編譯器知道你明確的要干嘛,而不是由他去猜呀猜的。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JavaScript中的null和undefined
javascript判斷一個(gè)變量是否為undefined
javascript快速入門(mén)2
JavaScript:數據類(lèi)型
JS面試題及答案
javascript高級程序設計—— 第二章 ECMAScript基礎
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久