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

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

這是因為onload事件不需要返回值,而$函數(shù)也沒有返回值,所以會導致尚未實現(xiàn)的錯誤。
換行:無論是用哪種引號創(chuàng)建字符串,中間都不能包含強制換行符。如下:
復制代碼 代碼如下:
var temp='<h2 class="nameA">List</h2>
<ol>
</ol>'
將導致解析錯誤,可以使用\或+來換行:
復制代碼 代碼如下:
var temp='<h2 class="nameA">List</h2>\
<ol>\
</ol>\
';
大括號和分號可選:
在JavaScript中分號和大括號不是必須的,例如alert('A');和alert('A')沒有區(qū)別,但是在if語句處運行有差異,最好不要省略。
重載
JavaScript是基于原型的面向?qū)ο?,沒有如C#中的重載,在此我們可以稱之為替換,同名函數(shù)無論參數(shù)個數(shù)是否相同,程序都會執(zhí)行最后一個同名函數(shù),例如function alert(){}將會覆蓋JavaScript中的alert函數(shù)。
作用域和閉包
可以參加我的博客《JavaScript中的作用域鏈和閉包》。
相關(guān)文章
js冒泡法和數(shù)組轉(zhuǎn)換成字符串示例代碼
將數(shù)組轉(zhuǎn)換成字符串的方法有很多,想必大家也不會陌生,下面為大家講解下js冒泡法的使用,感興趣的朋友可以參考下2013-08-08ionic js 模型 $ionicModal 可以遮住用戶主界面的內(nèi)容框
這篇文章主要介紹了ionic js 模型 $ionicModal 可以遮住用戶主界面的內(nèi)容框的相關(guān)資料,需要的朋友可以參考下2016-06-06JavaScript中new操作符的原理與實現(xiàn)詳解
你知道new嗎?你知道new的實現(xiàn)原理嗎?你能手寫new方法嗎?不要擔心,這篇文件就來帶大家深入了解一下JavaScript中的new操作符,感興趣的小伙伴可以學習一下2022-10-10教你如何使用firebug調(diào)試功能了解javascript閉包和this
這篇文章主要介紹了教你如何使用firebug調(diào)試功能了解javascript閉包和this,javascript的調(diào)試也是一個比較大的難點,很多基礎(chǔ)的東西都需要自己去摸索,這里將自己的經(jīng)驗分享給大家,希望對大家能夠有所幫助2015-03-03關(guān)于onchange事件在IE和FF下的表現(xiàn)及解決方法
本篇文章主要是對關(guān)于onchange事件在IE和FF下的表現(xiàn)及解決方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03