JavaScript中的細(xì)節(jié)分析
更新時(shí)間:2012年06月30日 00:49:31 作者:
高山登不上,不是因?yàn)轶w力不支,只因鞋里一粒。學(xué)習(xí)也是如此,因而有必要把JavaScript中常見(jiàn)的和與其它語(yǔ)言不同的那些細(xì)節(jié)學(xué)習(xí)一下
JavaScript區(qū)分大小寫(xiě):在JavaScript中變量、函數(shù)都是區(qū)分大小寫(xiě)的,例如:
function myfunction(){}和
function myFunction(){}不同
JavaScript中核心對(duì)象Array、Object等也是區(qū)分大小寫(xiě)。
單引號(hào)和雙引號(hào):這個(gè)問(wèn)題在學(xué)SQLServer拼接字符串"select * from page where name='lida'"時(shí)就有疑惑:后面都的三個(gè)'到底是雙引號(hào)在前還是單引號(hào)在前?學(xué)的多了知道,雙引號(hào)是編程語(yǔ)言使用的,單引號(hào)是SQLserver標(biāo)明字符串類(lèi)型的。但是在JavaScript中單引號(hào)和雙引號(hào)沒(méi)有特殊的區(qū)別,都可以用來(lái)創(chuàng)建字符串,但是一般情況下JavaScript使用單引號(hào),HTML等屬性值必須使用雙引號(hào);同時(shí)單引號(hào)可以包括雙引號(hào),雙引號(hào)也可以包括單引號(hào) ;特殊情況下需要使用轉(zhuǎn)義符號(hào)"\",例如:
var temp='<p class="nameA">What\'s this?';
括號(hào)的作用:和其他語(yǔ)言一樣,JavaScript中的括號(hào)同樣是兩種作用,一種是當(dāng)作分隔符使用,例如:(1+1)*2;第二種作用是表達(dá)式,例如:(1+1)*2;第二種作用是表達(dá)式,例如:(function (){})()中被分開(kāi)的括號(hào)為分隔符,后面的括號(hào)表示執(zhí)行方法。
函數(shù)的調(diào)用和引用:
var temp=myFunction();
var temp=myFunction;
因?yàn)槔ㄌ?hào)可以代表執(zhí)行,第一個(gè)temp代表的是myFunction函數(shù)的返回值,而第二個(gè)temp代表的是把myFunction賦值給temp。例如:
<script type="text/javascript">
// JavaScript Document
(function () {
function $() {
alert("正在Buffering!");
}
window['LD'] = {}
window['LD']['$'] = $;
}
)();
window.onload = LD.$;
</script>
網(wǎng)頁(yè)可以正常加載,因?yàn)檫@代表把$方法賦值給了window.onload,頁(yè)面加載運(yùn)行的是自己編寫(xiě)的$()函數(shù);如果把這句換成
window.onload=LD.$();運(yùn)行結(jié)果如下;首先會(huì)顯示“正在Buffering”,然后是

這是因?yàn)閛nload事件不需要返回值,而$函數(shù)也沒(méi)有返回值,所以會(huì)導(dǎo)致尚未實(shí)現(xiàn)的錯(cuò)誤。
換行:無(wú)論是用哪種引號(hào)創(chuàng)建字符串,中間都不能包含強(qiáng)制換行符。如下:
var temp='<h2 class="nameA">List</h2>
<ol>
</ol>'
將導(dǎo)致解析錯(cuò)誤,可以使用\或+來(lái)?yè)Q行:
var temp='<h2 class="nameA">List</h2>\
<ol>\
</ol>\
';
大括號(hào)和分號(hào)可選:
在JavaScript中分號(hào)和大括號(hào)不是必須的,例如alert('A');和alert('A')沒(méi)有區(qū)別,但是在if語(yǔ)句處運(yùn)行有差異,最好不要省略。
重載
JavaScript是基于原型的面向?qū)ο螅瑳](méi)有如C#中的重載,在此我們可以稱(chēng)之為替換,同名函數(shù)無(wú)論參數(shù)個(gè)數(shù)是否相同,程序都會(huì)執(zhí)行最后一個(gè)同名函數(shù),例如function alert(){}將會(huì)覆蓋JavaScript中的alert函數(shù)。
作用域和閉包
可以參加我的博客《JavaScript中的作用域鏈和閉包》。
復(fù)制代碼 代碼如下:
function myfunction(){}和
function myFunction(){}不同
JavaScript中核心對(duì)象Array、Object等也是區(qū)分大小寫(xiě)。
單引號(hào)和雙引號(hào):這個(gè)問(wèn)題在學(xué)SQLServer拼接字符串"select * from page where name='lida'"時(shí)就有疑惑:后面都的三個(gè)'到底是雙引號(hào)在前還是單引號(hào)在前?學(xué)的多了知道,雙引號(hào)是編程語(yǔ)言使用的,單引號(hào)是SQLserver標(biāo)明字符串類(lèi)型的。但是在JavaScript中單引號(hào)和雙引號(hào)沒(méi)有特殊的區(qū)別,都可以用來(lái)創(chuàng)建字符串,但是一般情況下JavaScript使用單引號(hào),HTML等屬性值必須使用雙引號(hào);同時(shí)單引號(hào)可以包括雙引號(hào),雙引號(hào)也可以包括單引號(hào) ;特殊情況下需要使用轉(zhuǎn)義符號(hào)"\",例如:
復(fù)制代碼 代碼如下:
var temp='<p class="nameA">What\'s this?';
括號(hào)的作用:和其他語(yǔ)言一樣,JavaScript中的括號(hào)同樣是兩種作用,一種是當(dāng)作分隔符使用,例如:(1+1)*2;第二種作用是表達(dá)式,例如:(1+1)*2;第二種作用是表達(dá)式,例如:(function (){})()中被分開(kāi)的括號(hào)為分隔符,后面的括號(hào)表示執(zhí)行方法。
函數(shù)的調(diào)用和引用:
復(fù)制代碼 代碼如下:
var temp=myFunction();
var temp=myFunction;
因?yàn)槔ㄌ?hào)可以代表執(zhí)行,第一個(gè)temp代表的是myFunction函數(shù)的返回值,而第二個(gè)temp代表的是把myFunction賦值給temp。例如:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
// JavaScript Document
(function () {
function $() {
alert("正在Buffering!");
}
window['LD'] = {}
window['LD']['$'] = $;
}
)();
window.onload = LD.$;
</script>
網(wǎng)頁(yè)可以正常加載,因?yàn)檫@代表把$方法賦值給了window.onload,頁(yè)面加載運(yùn)行的是自己編寫(xiě)的$()函數(shù);如果把這句換成
window.onload=LD.$();運(yùn)行結(jié)果如下;首先會(huì)顯示“正在Buffering”,然后是

這是因?yàn)閛nload事件不需要返回值,而$函數(shù)也沒(méi)有返回值,所以會(huì)導(dǎo)致尚未實(shí)現(xiàn)的錯(cuò)誤。
換行:無(wú)論是用哪種引號(hào)創(chuàng)建字符串,中間都不能包含強(qiáng)制換行符。如下:
復(fù)制代碼 代碼如下:
var temp='<h2 class="nameA">List</h2>
<ol>
</ol>'
將導(dǎo)致解析錯(cuò)誤,可以使用\或+來(lái)?yè)Q行:
復(fù)制代碼 代碼如下:
var temp='<h2 class="nameA">List</h2>\
<ol>\
</ol>\
';
大括號(hào)和分號(hào)可選:
在JavaScript中分號(hào)和大括號(hào)不是必須的,例如alert('A');和alert('A')沒(méi)有區(qū)別,但是在if語(yǔ)句處運(yùn)行有差異,最好不要省略。
重載
JavaScript是基于原型的面向?qū)ο螅瑳](méi)有如C#中的重載,在此我們可以稱(chēng)之為替換,同名函數(shù)無(wú)論參數(shù)個(gè)數(shù)是否相同,程序都會(huì)執(zhí)行最后一個(gè)同名函數(shù),例如function alert(){}將會(huì)覆蓋JavaScript中的alert函數(shù)。
作用域和閉包
可以參加我的博客《JavaScript中的作用域鏈和閉包》。
相關(guān)文章
Next.js預(yù)期錯(cuò)誤與未捕獲異常的處理方法
在開(kāi)發(fā)過(guò)程中,錯(cuò)誤是不可避免的,如何優(yōu)雅地處理這些錯(cuò)誤是提升應(yīng)用穩(wěn)定性與用戶(hù)體驗(yàn)的關(guān)鍵,本文將詳細(xì)介紹如何在 Next.js 中處理預(yù)期錯(cuò)誤與未捕獲的異常,包括使用 useFormState 處理預(yù)期錯(cuò)誤,使用錯(cuò)誤邊界捕獲未捕獲的異常,需要的朋友可以參考下2025-03-03
原生javascript實(shí)現(xiàn)的全屏滾動(dòng)功能示例
這篇文章主要介紹了原生javascript實(shí)現(xiàn)的全屏滾動(dòng)功能,涉及javascript事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09
js實(shí)現(xiàn)DIV的一些簡(jiǎn)單控制
js實(shí)現(xiàn)DIV的一些簡(jiǎn)單控制...2007-06-06
超級(jí)簡(jiǎn)易的JS計(jì)算器實(shí)例講解(實(shí)現(xiàn)加減乘除)
下面小編就為大家?guī)?lái)一篇超級(jí)簡(jiǎn)易的JS計(jì)算器實(shí)例講解(實(shí)現(xiàn)加減乘除)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
JavaScript實(shí)現(xiàn)郵箱地址自動(dòng)匹配功能代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)E-mail郵箱地址自動(dòng)匹配功能代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
javascript簡(jiǎn)單實(shí)現(xiàn)命名空間效果
這篇文章主要介紹了javascript簡(jiǎn)單的實(shí)現(xiàn)命名空間效果的方法。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03
javascript控制圖片播放的實(shí)現(xiàn)代碼
這篇文章主要介紹了javascript控制圖片播放的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08
JavaScript對(duì)數(shù)字的判斷與處理實(shí)例分析
這篇文章主要介紹了JavaScript對(duì)數(shù)字的判斷與處理方法,實(shí)例分析了javascript判斷數(shù)字的常見(jiàn)方法與針對(duì)數(shù)字處理的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
網(wǎng)頁(yè)上的Javascript編輯器和代碼格式化
因?yàn)槲覀兊捻?xiàng)目可以通過(guò)編寫(xiě)腳本(javascript)進(jìn)行功能擴(kuò)展,所以為了方便現(xiàn)場(chǎng)實(shí)施人員,所以突發(fā)奇想想在網(wǎng)頁(yè)上(系統(tǒng)是B/S的)提供一個(gè)javascript的編輯器。2010-04-04

