JavaScript初學(xué)者需要了解10個(gè)小技巧
更新時(shí)間:2010年08月25日 22:25:19 作者:
在之前的編程語(yǔ)言排行榜中,我們?cè)榻B過(guò)轉(zhuǎn)正在即的JavaScript語(yǔ)言,正如文章中闡明的那樣,JavaScript不僅是最具活力的腳本語(yǔ)言,還是是最有用的編程語(yǔ)言之一。
因?yàn)榻^大多數(shù)的瀏覽器都和它兼容,你可以在這些瀏覽器中使用它。JavaScript被接受的相當(dāng)快,因?yàn)樗侨绱说暮?jiǎn)單,而且使用范圍相當(dāng)廣泛。許多程序員過(guò)去常常認(rèn)為JavaScript是一門(mén)“玩具語(yǔ)言”,但是,AJAX進(jìn)入市場(chǎng)后表現(xiàn)出了完全相反的一面,它讓JavaScript展現(xiàn)出了完全不同的能力和功能。
由于這個(gè)發(fā)明的出現(xiàn),程序員現(xiàn)在已經(jīng)可以創(chuàng)建帶有桌面應(yīng)用程序效果的Web應(yīng)用程序了,這是很有益處的,因?yàn)閿?shù)據(jù)可以更快地改變。這是一些迷你技巧,它們可以幫助初學(xué)者更好地使用JavaScript。JavaScript的使用范圍相當(dāng)廣泛,而且還有這么多的風(fēng)格,所以它可以有很多的技巧。另外,雖然它很多的編程方法,但是我只挑選了10個(gè)技巧,我認(rèn)為這些技巧對(duì)初學(xué)者理解JavaScript來(lái)說(shuō)是很好的的起點(diǎn)。
1,在一個(gè)數(shù)組的最后添加一個(gè)元素
這個(gè)技巧可以讓你使用Length屬性在一個(gè)數(shù)組的最后添加一個(gè)元素,因?yàn)長(zhǎng)ength屬性比數(shù)組的最后一個(gè)元素的下標(biāo)多1。這個(gè)方法和“push”方法是相同的。例如:
var myArray = [];
myArray[myArray.length] = 'New Element';
2,調(diào)整一個(gè)數(shù)組的長(zhǎng)度
Length屬性不是只讀的,所以你可以設(shè)置Length屬性的值。而且,你可以使用它增大或縮小數(shù)組的長(zhǎng)度。例如:
var myArray = [1,2,3];
myArray.length // 3
myArray.length = 2; //Delete the last element
myArray.length = 20 // add 18 elements to the array; the elements have the undefined value.
3,使用“!!”把任意數(shù)據(jù)類(lèi)型轉(zhuǎn)換成Boolean
這個(gè)技術(shù)可以讓你使用“!!”把任意數(shù)據(jù)類(lèi)型(比如string, number或integer)轉(zhuǎn)換成Boolean。例如:
var myString = '23255';
typeof myString; //String
myString = !!myString;
typeof myString //Boolean
4,把Number轉(zhuǎn)換成String
這個(gè)技巧可以讓你在number的結(jié)尾添加一個(gè)空的string來(lái)把number轉(zhuǎn)換成string,例如:
var mynumber = 234;
typeof mynumber; //Number
mynumber += '';
typeof mynumber; //String
5,了解一個(gè)函數(shù)需要多少個(gè)變量
這是一個(gè)偉大的技巧,可以讓你準(zhǔn)確地知道一個(gè)函數(shù)需要多少個(gè)變量。例如:
function add_nums(num1, num2){
return num1 + num2;
}
add_nums.length // 2 is the amount of parameters expected by the function add_nums
6,使用“arguments”對(duì)象來(lái)了解一個(gè)函數(shù)接收到了多少個(gè)參數(shù)
這個(gè)技術(shù)可以讓你使用“arguments”對(duì)象來(lái)了解一個(gè)函數(shù)接收到了多少個(gè)參數(shù)。例如:
function add_nums(){
return arguments.length;
}
add_nums(23,11,32,56,89,89,89,44,6); //this return the number 9
當(dāng)你需要檢查參數(shù)個(gè)數(shù)的有效性的時(shí)候,或者當(dāng)你需要?jiǎng)?chuàng)建一個(gè)不確定參數(shù)個(gè)數(shù)的函數(shù)的時(shí)候,這個(gè)技巧是很有用的。
function sum_three_nums( ){
if(arguments.length!=3) throw new Error('received ' + arguments.length + ' parameters and should work with 3');
}
sum_three_nums(23,43); //Return the error message
function sum_num(){
var total = 0;
for(var i=0;i<arguments .length;i++){
total+=arguments[i];
}
return total;
}
sum_num(2,34,45,56,56);
7,把對(duì)象當(dāng)成參數(shù),來(lái)組織和改善函數(shù)
在現(xiàn)代Web開(kāi)發(fā)中,對(duì)象最普遍的一個(gè)用途是把它們當(dāng)成函數(shù)的參數(shù)。要記住函數(shù)參數(shù)的這個(gè)規(guī)則總是很困難的;但是,使用一個(gè)對(duì)象是十分有好處的,因?yàn)槲覀儾槐卦贀?dān)心參數(shù)的規(guī)則了。而且,它更有組織性,可以讓用戶更好的理解我們要做什么。這個(gè)方法可以讓你把對(duì)象當(dāng)成參數(shù),來(lái)組織和改善函數(shù)。例如:
function insertData(name,lastName,phone,address){
code here;
}
重構(gòu)以后的代碼是這樣的:
function insertData(parameters){
var name = parameters.name;
var lastName = parameters.lastName;
var phone = parameters.phone;
var address = parameters.address;
}
當(dāng)你要使用默認(rèn)值的時(shí)候,它也是十分有用的。例如:
function insertData(parameters){
var name = parameters.name;
var lastName = parameters.lastName;
var phone = parameters.phone;
var address = parameters.address;
var status = parameters.status || 'single' //If status is not defined as a property
//in the object the variable status take single as value
}
現(xiàn)在,要使用這個(gè)函數(shù)十分的簡(jiǎn)單;我們可以用兩種方式來(lái)發(fā)送數(shù)據(jù):
//Example 1
insertData({name:'Mike', lastName:'Rogers', phone:'555-555-5555',address:'the address', status:'married'});
//Example 2
var myData = { name:'Mike',
lastName:'Rogers',
phone:'555-555-5555',
address:'the address',
status:'married'
};
insertData(myData);
8,函數(shù)就是數(shù)據(jù)
函數(shù)就是像strings或numbers那樣的數(shù)據(jù),我們可以把它們當(dāng)成函數(shù)參數(shù)來(lái)傳遞它們,這可以創(chuàng)建十分令人驚訝而又“威風(fēng)凜凜”的Web應(yīng)用程序。這個(gè)方法是非常有用的,幾乎所有的主流框架都使用了這個(gè)方法。例如:
function byId(element, event, f){
Document.getElementById(element).['on'+event] = f; //f is the function that we pass as parameter
}
byId('myBtn','click',function(){alert('Hello World')});
Another example of functions as data:
//Example 1
function msg(m){
Alert(m);
}
//Example 2
var msg = function(m){ alert(m);}
這些函數(shù)幾乎是完全相同的。唯一的區(qū)別是使用它們的方式。例如:第一個(gè)函數(shù),在你聲明它以前,你就可以使用它了;但是第二個(gè)函數(shù)只有聲明以后才能使用:
//Example 1
msg('Hello world'); //This will work
function msg(m){
alert(m);
}
//Example 2
msg('Hello world'); //Does not work because JavaScript cannot find the function msg because is used before is been declared.
var msg = function(m){ alert(m)}
9,擴(kuò)展本地對(duì)象
雖然一些JavaScript的領(lǐng)袖不推薦這個(gè)技術(shù),但是它已經(jīng)被一些框架使用了。它可以讓你針對(duì)JavaScript API來(lái)創(chuàng)建一些輔助性的方法。
//We create the method prototype for our arrays
//It only sums numeric elements
Array.prototype.sum = function(){
var len = this.length;
total = 0;
for(var i=0;i<len ;i++){
if(typeof this[i]!= 'number') continue;
total += this[i];
}
return total;
}
var myArray = [1,2,3,'hola'];
myArray.sum();
Array.prototype.max = function(){
return Math.max.apply('',this);
}
10,Boolean
注意它們之間的區(qū)別,因?yàn)檫@會(huì)節(jié)省你調(diào)試腳本的時(shí)間。
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
true == 1 // true
'' == null // false
false == '' // true
如果你在其他地方看過(guò)這些腳本,那么這些技巧可以幫助你融會(huì)貫通。這些技巧甚至還不及JavaScript所有功能的冰山一角,但是這是一個(gè)開(kāi)始!請(qǐng)不要客氣,留下你的評(píng)論,問(wèn)題,額外的技巧或疑慮吧,但是請(qǐng)記住,這是一篇針對(duì)初學(xué)者的文章?。∥蚁M苁盏揭恍╅_(kāi)發(fā)者同行的來(lái)信!Enjoy!
由于這個(gè)發(fā)明的出現(xiàn),程序員現(xiàn)在已經(jīng)可以創(chuàng)建帶有桌面應(yīng)用程序效果的Web應(yīng)用程序了,這是很有益處的,因?yàn)閿?shù)據(jù)可以更快地改變。這是一些迷你技巧,它們可以幫助初學(xué)者更好地使用JavaScript。JavaScript的使用范圍相當(dāng)廣泛,而且還有這么多的風(fēng)格,所以它可以有很多的技巧。另外,雖然它很多的編程方法,但是我只挑選了10個(gè)技巧,我認(rèn)為這些技巧對(duì)初學(xué)者理解JavaScript來(lái)說(shuō)是很好的的起點(diǎn)。
1,在一個(gè)數(shù)組的最后添加一個(gè)元素
這個(gè)技巧可以讓你使用Length屬性在一個(gè)數(shù)組的最后添加一個(gè)元素,因?yàn)長(zhǎng)ength屬性比數(shù)組的最后一個(gè)元素的下標(biāo)多1。這個(gè)方法和“push”方法是相同的。例如:
復(fù)制代碼 代碼如下:
var myArray = [];
myArray[myArray.length] = 'New Element';
2,調(diào)整一個(gè)數(shù)組的長(zhǎng)度
Length屬性不是只讀的,所以你可以設(shè)置Length屬性的值。而且,你可以使用它增大或縮小數(shù)組的長(zhǎng)度。例如:
復(fù)制代碼 代碼如下:
var myArray = [1,2,3];
myArray.length // 3
myArray.length = 2; //Delete the last element
myArray.length = 20 // add 18 elements to the array; the elements have the undefined value.
3,使用“!!”把任意數(shù)據(jù)類(lèi)型轉(zhuǎn)換成Boolean
這個(gè)技術(shù)可以讓你使用“!!”把任意數(shù)據(jù)類(lèi)型(比如string, number或integer)轉(zhuǎn)換成Boolean。例如:
復(fù)制代碼 代碼如下:
var myString = '23255';
typeof myString; //String
myString = !!myString;
typeof myString //Boolean
4,把Number轉(zhuǎn)換成String
這個(gè)技巧可以讓你在number的結(jié)尾添加一個(gè)空的string來(lái)把number轉(zhuǎn)換成string,例如:
復(fù)制代碼 代碼如下:
var mynumber = 234;
typeof mynumber; //Number
mynumber += '';
typeof mynumber; //String
5,了解一個(gè)函數(shù)需要多少個(gè)變量
這是一個(gè)偉大的技巧,可以讓你準(zhǔn)確地知道一個(gè)函數(shù)需要多少個(gè)變量。例如:
復(fù)制代碼 代碼如下:
function add_nums(num1, num2){
return num1 + num2;
}
add_nums.length // 2 is the amount of parameters expected by the function add_nums
6,使用“arguments”對(duì)象來(lái)了解一個(gè)函數(shù)接收到了多少個(gè)參數(shù)
這個(gè)技術(shù)可以讓你使用“arguments”對(duì)象來(lái)了解一個(gè)函數(shù)接收到了多少個(gè)參數(shù)。例如:
復(fù)制代碼 代碼如下:
function add_nums(){
return arguments.length;
}
add_nums(23,11,32,56,89,89,89,44,6); //this return the number 9
當(dāng)你需要檢查參數(shù)個(gè)數(shù)的有效性的時(shí)候,或者當(dāng)你需要?jiǎng)?chuàng)建一個(gè)不確定參數(shù)個(gè)數(shù)的函數(shù)的時(shí)候,這個(gè)技巧是很有用的。
復(fù)制代碼 代碼如下:
function sum_three_nums( ){
if(arguments.length!=3) throw new Error('received ' + arguments.length + ' parameters and should work with 3');
}
sum_three_nums(23,43); //Return the error message
function sum_num(){
var total = 0;
for(var i=0;i<arguments .length;i++){
total+=arguments[i];
}
return total;
}
sum_num(2,34,45,56,56);
7,把對(duì)象當(dāng)成參數(shù),來(lái)組織和改善函數(shù)
在現(xiàn)代Web開(kāi)發(fā)中,對(duì)象最普遍的一個(gè)用途是把它們當(dāng)成函數(shù)的參數(shù)。要記住函數(shù)參數(shù)的這個(gè)規(guī)則總是很困難的;但是,使用一個(gè)對(duì)象是十分有好處的,因?yàn)槲覀儾槐卦贀?dān)心參數(shù)的規(guī)則了。而且,它更有組織性,可以讓用戶更好的理解我們要做什么。這個(gè)方法可以讓你把對(duì)象當(dāng)成參數(shù),來(lái)組織和改善函數(shù)。例如:
復(fù)制代碼 代碼如下:
function insertData(name,lastName,phone,address){
code here;
}
重構(gòu)以后的代碼是這樣的:
復(fù)制代碼 代碼如下:
function insertData(parameters){
var name = parameters.name;
var lastName = parameters.lastName;
var phone = parameters.phone;
var address = parameters.address;
}
當(dāng)你要使用默認(rèn)值的時(shí)候,它也是十分有用的。例如:
復(fù)制代碼 代碼如下:
function insertData(parameters){
var name = parameters.name;
var lastName = parameters.lastName;
var phone = parameters.phone;
var address = parameters.address;
var status = parameters.status || 'single' //If status is not defined as a property
//in the object the variable status take single as value
}
現(xiàn)在,要使用這個(gè)函數(shù)十分的簡(jiǎn)單;我們可以用兩種方式來(lái)發(fā)送數(shù)據(jù):
復(fù)制代碼 代碼如下:
//Example 1
insertData({name:'Mike', lastName:'Rogers', phone:'555-555-5555',address:'the address', status:'married'});
//Example 2
var myData = { name:'Mike',
lastName:'Rogers',
phone:'555-555-5555',
address:'the address',
status:'married'
};
insertData(myData);
8,函數(shù)就是數(shù)據(jù)
函數(shù)就是像strings或numbers那樣的數(shù)據(jù),我們可以把它們當(dāng)成函數(shù)參數(shù)來(lái)傳遞它們,這可以創(chuàng)建十分令人驚訝而又“威風(fēng)凜凜”的Web應(yīng)用程序。這個(gè)方法是非常有用的,幾乎所有的主流框架都使用了這個(gè)方法。例如:
復(fù)制代碼 代碼如下:
function byId(element, event, f){
Document.getElementById(element).['on'+event] = f; //f is the function that we pass as parameter
}
byId('myBtn','click',function(){alert('Hello World')});
Another example of functions as data:
//Example 1
function msg(m){
Alert(m);
}
//Example 2
var msg = function(m){ alert(m);}
這些函數(shù)幾乎是完全相同的。唯一的區(qū)別是使用它們的方式。例如:第一個(gè)函數(shù),在你聲明它以前,你就可以使用它了;但是第二個(gè)函數(shù)只有聲明以后才能使用:
//Example 1
msg('Hello world'); //This will work
function msg(m){
alert(m);
}
//Example 2
msg('Hello world'); //Does not work because JavaScript cannot find the function msg because is used before is been declared.
var msg = function(m){ alert(m)}
9,擴(kuò)展本地對(duì)象
雖然一些JavaScript的領(lǐng)袖不推薦這個(gè)技術(shù),但是它已經(jīng)被一些框架使用了。它可以讓你針對(duì)JavaScript API來(lái)創(chuàng)建一些輔助性的方法。
復(fù)制代碼 代碼如下:
//We create the method prototype for our arrays
//It only sums numeric elements
Array.prototype.sum = function(){
var len = this.length;
total = 0;
for(var i=0;i<len ;i++){
if(typeof this[i]!= 'number') continue;
total += this[i];
}
return total;
}
var myArray = [1,2,3,'hola'];
myArray.sum();
Array.prototype.max = function(){
return Math.max.apply('',this);
}
10,Boolean
注意它們之間的區(qū)別,因?yàn)檫@會(huì)節(jié)省你調(diào)試腳本的時(shí)間。
復(fù)制代碼 代碼如下:
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true
true == 1 // true
'' == null // false
false == '' // true
如果你在其他地方看過(guò)這些腳本,那么這些技巧可以幫助你融會(huì)貫通。這些技巧甚至還不及JavaScript所有功能的冰山一角,但是這是一個(gè)開(kāi)始!請(qǐng)不要客氣,留下你的評(píng)論,問(wèn)題,額外的技巧或疑慮吧,但是請(qǐng)記住,這是一篇針對(duì)初學(xué)者的文章?。∥蚁M苁盏揭恍╅_(kāi)發(fā)者同行的來(lái)信!Enjoy!
您可能感興趣的文章:
- JavaScript小技巧整理篇(非常全)
- JavaScript小技巧整理
- 谷歌瀏覽器調(diào)試JavaScript小技巧
- Javascript小技巧之生成html元素
- JavaScript小技巧 2.5 則
- javascript小技巧 超強(qiáng)推薦
- JavaScript編程的10個(gè)實(shí)用小技巧
- JavaScript編程開(kāi)發(fā)中的五個(gè)實(shí)用小技巧
- JavaScript 學(xué)習(xí)筆記一些小技巧
- javascript兩段代碼,兩個(gè)小技巧
- Javascript 小技巧全集
- 分享12個(gè)非常實(shí)用的JavaScript小技巧
相關(guān)文章
通過(guò)JavaScript下載文件到本地的方法(單文件)
這篇文章主要介紹了通過(guò)JavaScript下載文件到本地的方法(單文件),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03JS實(shí)現(xiàn)TITLE懸停長(zhǎng)久顯示效果完整示例
這篇文章主要介紹了JS實(shí)現(xiàn)TITLE懸停長(zhǎng)久顯示效果,結(jié)合完整實(shí)例形式分析了JavaScript鼠標(biāo)事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-02-02js實(shí)現(xiàn)簡(jiǎn)單的左右兩邊固定廣告效果實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)簡(jiǎn)單的左右兩邊固定廣告效果,實(shí)例分析了javascript實(shí)現(xiàn)固定廣告的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04layui的select聯(lián)動(dòng)實(shí)現(xiàn)代碼
今天小編就為大家分享一篇layui的select聯(lián)動(dòng)實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09通過(guò)babel操作AST精準(zhǔn)插入配置代碼全流程
這篇文章主要為大家介紹了通過(guò)babel操作AST精準(zhǔn)插入配置代碼的全流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02iframe如何動(dòng)態(tài)創(chuàng)建及釋放其所占內(nèi)存
一個(gè)項(xiàng)目后期測(cè)試發(fā)現(xiàn)瀏覽器內(nèi)存一直居高不下,而且打開(kāi)iframe頁(yè)面越多內(nèi)存占用越大,在IE系列瀏覽器中尤其明顯,下面與大家分享下iframe動(dòng)態(tài)創(chuàng)建及釋放內(nèi)存2014-09-09詳解bootstrap-fileinput文件上傳控件的親身實(shí)踐
這篇文章主要介紹了詳解bootstrap-fileinput文件上傳控件的親身實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03JavaScript 數(shù)組常見(jiàn)操作技巧 (二)
這篇文章主要介紹了JavaScript 數(shù)組常見(jiàn)操作技巧,上一篇文章已經(jīng)給大家分享了(一),下面緊接上一篇文章分享下面技巧,需要的小伙伴可以參考一下2022-02-02