關(guān)于javascript的心得體會(huì)
當(dāng)我們有一些感想時(shí),可用寫(xiě)心得體會(huì)的方式將其記錄下來(lái),如此可以一直更新迭代自己的想法。應(yīng)該怎么寫(xiě)才合適呢?以下是小編為大家整理的javascript的心得體會(huì),歡迎閱讀與收藏。
javascript的心得體會(huì) 篇1
1、javascript 是一種基于對(duì)象,和事件驅(qū)動(dòng)的 并具有安全性的腳本語(yǔ)言;基于對(duì)象,動(dòng)態(tài)語(yǔ)言,無(wú)需編譯,直接解釋執(zhí)行;
2、可以放在的地方;
A、<he標(biāo)識(shí)著一個(gè)語(yǔ)句的結(jié)束。
塊:
大括號(hào){ }通常用來(lái)括起一行或多行語(yǔ)句。
注釋?zhuān)?/p>
JavaScript提供了兩種注釋符號(hào):
“//”
“/**/”
JavaScript基本語(yǔ)法—數(shù)據(jù)類(lèi)型
JavaScript的數(shù)據(jù)類(lèi)型分為基本數(shù)據(jù)類(lèi)型和復(fù)合數(shù)據(jù)類(lèi)型,復(fù)合數(shù)據(jù)類(lèi)型主要有對(duì)象、數(shù)組和函數(shù)。
簡(jiǎn)單數(shù)據(jù)類(lèi)型
JavaScript的基本數(shù)據(jù)類(lèi)型有數(shù)值型、字符型、邏輯型,以及兩個(gè)特殊的數(shù)據(jù)類(lèi)型。
1.普通數(shù)值型
與C、C++、Java等語(yǔ)言不同,JavaScript中的數(shù)值包含整數(shù)和浮點(diǎn)數(shù)。
2.特殊數(shù)值型
特殊數(shù)值型包括Infinity和NAN。
Infinity表示值超出了可表示的最大值的范圍,而NAN是“not a number”的縮寫(xiě)形式,表示undefined表達(dá)式結(jié)果為數(shù)值型數(shù)據(jù)。
3.字符型
在JavaScript中,字符串是一組被引號(hào)(單引號(hào)或雙引號(hào))括起來(lái)的文本。注:JavaScript不對(duì)字符和字符串加以區(qū)分。
字母、數(shù)字與標(biāo)點(diǎn)可以放在字符串內(nèi),但諸如換行符等符號(hào),若要在字符串中使用,必須用到轉(zhuǎn)義字符。
【常用的轉(zhuǎn)義字符如下】
【注意】
由于字符串是用單引號(hào)或雙引號(hào)括起來(lái)的,所以當(dāng)字符串中出現(xiàn)引號(hào)時(shí),必須進(jìn)行轉(zhuǎn)義,但若單引號(hào)內(nèi)出現(xiàn)雙引號(hào)或雙引號(hào)內(nèi)出現(xiàn)單引號(hào)時(shí),則無(wú)需轉(zhuǎn)義。
4.Boolean布爾型(true or false)
特殊數(shù)據(jù)類(lèi)型
在JavaScript中,有一些是沒(méi)有任何類(lèi)型的變量,稱(chēng)為undefined,還有一種空值數(shù)據(jù)類(lèi)型。
1.無(wú)定義數(shù)據(jù)類(lèi)型(undefined)
undefinded用來(lái)表示不存在的值,或者尚未賦值的變量。
如果只聲明了m,而沒(méi)有為其賦值,此時(shí)判斷m的類(lèi)型,就是undefined。如果賦予一個(gè)不存在的屬性值,系統(tǒng)也會(huì)認(rèn)為是undefined。
2.空值(null)
null表示空值,是一個(gè)“什么都沒(méi)有”的占位符。
【null與undefined的區(qū)別】
undefined表示一個(gè)變量尚未賦值;
null表示該變量被賦予了一個(gè)空值。
基本類(lèi)型與合成類(lèi)型
基本數(shù)據(jù)類(lèi)型在內(nèi)存中有固定大小,而合成類(lèi)型(如對(duì)象、數(shù)組、函數(shù)等類(lèi)型)則可以具有任意長(zhǎng)度。因此,不能將合成類(lèi)型直接存儲(chǔ)在關(guān)聯(lián)每個(gè)變量的固定內(nèi)存地址中,實(shí)際上存儲(chǔ)的只是這個(gè)值的引用。
類(lèi)型轉(zhuǎn)換
JavaScript是一種無(wú)類(lèi)型語(yǔ)言。在聲明變量時(shí)無(wú)需指定數(shù)據(jù)類(lèi)型,這使得JavaScript具有靈活性和簡(jiǎn)單性。在代碼執(zhí)行過(guò)程中,JavaScript會(huì)根據(jù)需要進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換。 轉(zhuǎn)換規(guī)則
1. 轉(zhuǎn)換為邏輯型數(shù)據(jù)
undefined: false
null: false
數(shù)值型:若為0或NaN,則結(jié)果為false,否則為true
字符串型:若長(zhǎng)度為0,則結(jié)果為false,否則為true.
其他對(duì)象:true
2.轉(zhuǎn)換為數(shù)值型數(shù)據(jù)
undefined: NaN
null: 0
邏輯型:值為true,則結(jié)果為1,值為false,則結(jié)果為0
字符串型:若內(nèi)容為數(shù)字,則結(jié)果為相應(yīng)數(shù)字,否則為NaN
其他對(duì)象:NaN
3.轉(zhuǎn)換為字符串型數(shù)據(jù)
undefined: Undefined
null: NaN
邏輯型:若為true,則結(jié)果為”true”
提升基本數(shù)據(jù)為對(duì)象
每一個(gè)基本數(shù)據(jù)類(lèi)型都存在一個(gè)相應(yīng)的對(duì)象,這些對(duì)象提供了一些很有用的方法來(lái)處理基本數(shù)據(jù)。
例如,String對(duì)象提供了一個(gè)toLowerCase()方法來(lái)把一個(gè)字符串轉(zhuǎn)換為小寫(xiě)格式。
JavaScript基本語(yǔ)法—變量
JavaScript是一門(mén)弱類(lèi)型的語(yǔ)言,所有的變量定義均以var來(lái)定義。
JavaScript的變量應(yīng)該先定義,再使用。雖然JavaScript可以不需定義即可直接使用變量,但不建議這么做。
類(lèi)型規(guī)則
JavaScript、Java和C這樣的語(yǔ)言之間存在一個(gè)重要的差別:JavaScript是無(wú)類(lèi)型的,即JavaScript的變量可以存放任何數(shù)據(jù)類(lèi)型的值,而Java和C的變量都只能存放特定類(lèi)型的數(shù)據(jù)。
與HTML不同,JavaScript區(qū)分大小寫(xiě)
聲明變量
在JavaScript中,變量使用關(guān)鍵字“var”來(lái)聲明。聲明變量必須遵循以下規(guī)則:
可以使用一個(gè)var同時(shí)聲明多個(gè)變量。
可以在聲明變量的同時(shí)對(duì)其進(jìn)行賦值。
如果只是聲明了變量,并未對(duì)其賦值,其值默認(rèn)為undefined。
使用var多次聲明同一變量也是允許的,如果重復(fù)聲明的語(yǔ)句已有一個(gè)初始值,此時(shí)的聲明就相當(dāng)于對(duì)變量的.重新賦值。
JavaScript基本語(yǔ)法—數(shù)組
數(shù)組定義
var arr = new Array(3);
通過(guò)arr.length取得數(shù)組的長(zhǎng)度
Javascript數(shù)組可以越界訪問(wèn)元素
創(chuàng)建一個(gè)數(shù)組有以下3種方式:
new Array();
new Array(len);
new Array([item0,[item1,[]]]);
【注意】
數(shù)組中的每個(gè)元素代表了一個(gè)變量,而JavaScript中的變量是沒(méi)有類(lèi)型的,因此數(shù)組
元素也是沒(méi)有類(lèi)型的。所以,可以在一個(gè)數(shù)組中存儲(chǔ)不同類(lèi)型的數(shù)據(jù)。
數(shù)組使用
使用方式:
myarray=new Array(num)
myarray=new Array(value1,value2)
script language="JavaScript"
aa = new Array(3);
aa[20] = 444;
document.write (aa[20]);
/Script
num不設(shè)定,則按數(shù)組默認(rèn)的最大長(zhǎng)度自動(dòng)設(shè)定。例如:
Script language="JavaScript"
aa = new Array();
aa[20] = 444;
document.write (aa.length);
/Script
JavaScript基本語(yǔ)法—表達(dá)式
表達(dá)式
表達(dá)式是一個(gè)句子,用于JavaScript腳本進(jìn)行運(yùn)行、運(yùn)算的句子。其可以包含常量、變量、運(yùn)算符等。表達(dá)式的結(jié)果通常會(huì)通過(guò)賦值語(yǔ)句賦值給一個(gè)變量,或直接作為函數(shù)的參數(shù)。
JavaScript基本語(yǔ)法—運(yùn)算符
算術(shù)運(yùn)算符
運(yùn)算符是在表達(dá)式中用于進(jìn)行運(yùn)算的一種符號(hào)。JavaScript包括+、-、*、/、%等算術(shù)運(yùn)算符。
減號(hào)(-)的特殊含義
減號(hào)(-)的另外一種用法是對(duì)數(shù)值或數(shù)值型變量求反。
賦值運(yùn)算符
賦值運(yùn)算符只有一個(gè)等號(hào)“=”,其作用是給變量賦值。
比較運(yùn)算符
比較運(yùn)算符用來(lái)連接操作數(shù)用來(lái)組成比較表達(dá)式,比較表達(dá)式的結(jié)果為邏輯值trut或false。
常用的比較運(yùn)算符有:< 、 <=> 、>= 、 != 、 == 、 === 、 !==
補(bǔ)充說(shuō)明
條件語(yǔ)句中使用=符號(hào)
在條件語(yǔ)句中如果誤將“=”用于“==”,程序?qū)⒉粫?huì)報(bào)錯(cuò),但運(yùn)行結(jié)果錯(cuò)誤。 比較運(yùn)算符的自動(dòng)轉(zhuǎn)換
在比較過(guò)程中,“!=”和“==”會(huì)進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換,而“!==”和“===”則不轉(zhuǎn)換。
【注意】
進(jìn)行相等比較時(shí),如果不希望進(jìn)行類(lèi)型自動(dòng)轉(zhuǎn)換,則應(yīng)使用“===”。
邏輯運(yùn)算符
常用的邏輯運(yùn)算符:&&、||、!
位運(yùn)算符
javascript的心得體會(huì) 篇2
1.JS類(lèi)的寫(xiě)法:
(xx.js)(function($){
function abc()
{
} js.phone_click("this is abc"); js = { }; phone_click : function(personData){ } alert(personData); })(jQuery);
在xx.js文件中JS={}相當(dāng)于有個(gè)JS對(duì)象, 只是不需要new去生成對(duì)象;
也可將目錄名與對(duì)象名命名為一致,以便于引用,{}是類(lèi)的寫(xiě)法,此類(lèi)中可有多個(gè)方法,或多個(gè)屬性的存在;
屬性的寫(xiě)法為:userName:”zhangshan”,
方法簽名如:phone_click : function(personData){}
屬性與方法之間用逗號(hào)隔開(kāi);
在類(lèi)中不能將方法簽名寫(xiě)成:function phone_click (personData){},因?yàn)轭?lèi)中的描述是以JSON”格式的寫(xiě)法;也可將js對(duì)象理解為“JSON”對(duì)象串;
調(diào)用時(shí),包名(目錄名)點(diǎn)的形式調(diào)用;
2.JavaScript對(duì)象的形式寫(xiě)法:
var obj = new Object();//先生成對(duì)象
obj.xxx=false;//添加屬性
obj.test=function(){}//添加方法
///////////////////////////////////////////////////////////////// var obj = {};//聲明對(duì)象
obj.xxx=false;//添加屬性
obj.test=function(){}添加方法
也一樣,另外
var obj = function(name,age){//構(gòu)造函數(shù)
this.name=name;//屬性
this.age=age;//屬性
this.test=function(){}//方法
}
解釋“prototype”: 原始類(lèi)型;
obj.prototype.test2 = function(){}//原形中覆蓋方法; obj.prototype.name = "3333";//原形中覆蓋屬性;
obj.prototype.name = "3333";與obj.xxx=false;的區(qū)別; 前者是相當(dāng)于覆蓋原形中的屬性,后者是對(duì)象中添加屬性;
3.普通的方法;
Function alert(){alert(“test”)}
寫(xiě)在(function($){})(jQuery);中,部調(diào)不到,除非是綁定的事件或自定義方法,寫(xiě)在里面是加載即執(zhí)行;
4.自定義方法:
(function($){
function abc()
{
} alert($.prop); $.fn.dosh(); $.prop=自定義屬性; $.fn.dosh = function (){ alert(自定義方法); } })(jQuery);
5.類(lèi)屬性的寫(xiě)法:
var parameter = {};
parameter.userName = “l(fā)ishi”;
不能將寫(xiě)成var parameter = {username=”lishi”;};
6. jQuery插件引用的寫(xiě)法及區(qū)別;
(A).$(function(){
$("#userName").val("abcde");
});
(B).(function($){
$("#userName").val("abcde");
})(jQuery);
A與B的區(qū)別:A再DOM加載后執(zhí)行,B加載即執(zhí)行(對(duì)DOM操作時(shí),保證先加DOM再加載B,否則操作不到對(duì)DOM而不會(huì)報(bào)錯(cuò)),要是調(diào)用不到就不會(huì)執(zhí)行了:
通常使用第二種方法來(lái)開(kāi)發(fā)jQuery插件,利用閉包的特性可以避免內(nèi)部的臨時(shí)變量影響到全局,同時(shí)通過(guò)將jQuery傳進(jìn)閉包,可以方便的使用$符號(hào)。一般使用還是使用第一種方法吧,DOM解析完畢就會(huì)執(zhí)行,一般插件不會(huì)具體去寫(xiě)哪個(gè)DOM元素的事件的,因?yàn)槎际窃趈Query導(dǎo)入后導(dǎo)入插件,可以把要操作的DOM對(duì)象傳進(jìn)插件里再實(shí)現(xiàn)具體的操作;
7.對(duì)象原型中的方法覆蓋(重寫(xiě)):如;
String.prototype.trim = function()
{
// 用正則表達(dá)式將前后空格用空字符串替代。return this.replace( /(^s*)|(s*$)/g, "" ); }
8.query,Ajax請(qǐng)求拼接Json字符串時(shí),value值應(yīng)加單引號(hào),或雙引號(hào);
如下;
String data = “{id:’no1’,value:’111’}”;
String data = “{id:”no1”,value:”111”}”;
9.方法中的對(duì)象聲明的寫(xiě)法:
Var parameter = {};
parameter.getSystemParam = function(){
//公共參數(shù)
parameter.checkXml ={}; 在此方法中,再添加一個(gè)對(duì)象 }
調(diào)用時(shí)可寫(xiě)成:parameter.checkXml.;
10.變量聲明的作用或:
var server = post.html;此變量的作用域是全局變量;
11.屬性數(shù)組,對(duì)象的聲明:
(function($){
request = $.extend(request, {
entAdd: [],//屬性數(shù)組的聲明;
html:{}
/script
javascript的心得體會(huì) 篇3
性能對(duì)任何編程語(yǔ)言或系統(tǒng)來(lái)說(shuō)都是一個(gè)很重要的問(wèn)題,對(duì)JavaScript來(lái)說(shuō)更是如此。
● JavaScript代碼是從服務(wù)器原封不動(dòng)地發(fā)送到客戶(hù)端的,代碼越大,下載所需的時(shí)間和帶寬越多。
● JavaScript在瀏覽器中解釋?zhuān)皇蔷幾g好的。
● JavaScript代碼通過(guò)DOM API修改HTML頁(yè)面來(lái)與用戶(hù)交互。對(duì)JavaScript開(kāi)發(fā)人員來(lái)說(shuō),這是功能強(qiáng)大的高級(jí)模型,但對(duì)DOM所做的每個(gè)簡(jiǎn)單修改都將導(dǎo)致瀏覽器的頁(yè)面 渲染引擎執(zhí)行一系列復(fù)雜的操作。對(duì)DOM看似細(xì)微的修改常常導(dǎo)致需要占用比預(yù)期的多得多的CPU周期。
諸如Gmail和基于Ajax的Yahoo! Mail(編寫(xiě)本書(shū)時(shí)仍處于測(cè)試階段)等Web應(yīng)用程序都對(duì)JavaScript性能提出了挑戰(zhàn)。大量的人力被投入到這些Web應(yīng)用程序中,它們?cè)谧钚碌?計(jì)算機(jī)中可能運(yùn)行順暢,但在較舊的計(jì)算機(jī)中可能反應(yīng)遲鈍,而在這些舊計(jì)算機(jī)中運(yùn)行相應(yīng)的桌面應(yīng)用程序沒(méi)有任何問(wèn)題。
3.2.1 縮短JavaScript的下載時(shí)間
大多數(shù)編程語(yǔ)言要么是編譯型的,要么在代碼安裝的計(jì)算機(jī)中運(yùn)行,或兩者兼而有之。例如,使用諸如Python、PHP或Perl等腳本語(yǔ)言 時(shí),代碼在執(zhí)行前不需要通過(guò)網(wǎng)絡(luò)傳輸,而在本地運(yùn)行。諸如Java等其他語(yǔ)言的代碼被編譯成二進(jìn)制文件,可在執(zhí)行前通過(guò)網(wǎng)絡(luò)傳輸?紤]到這種情況,采用了 大量措施以使二進(jìn)制格式更加緊湊。
JavaScript不屬于上述任何一種情況,其源代碼及用到的庫(kù)將被瀏覽器按原樣下載。因此,JavaScript代碼的總體大小以及如何 將代碼打包為文件對(duì)頁(yè)面性能的影響巨大,這在剛開(kāi)始編碼時(shí)可能無(wú)關(guān)緊要,但隨著編寫(xiě)的代碼和使用的庫(kù)越來(lái)越多,很快將導(dǎo)致下載頁(yè)面使用的 JavaScript代碼時(shí)需要相當(dāng)長(zhǎng)的時(shí)間。
為最大限度地縮短下載時(shí)間,應(yīng)這樣做:
● 除非每個(gè)頁(yè)面有不同的JavaScript,否則不要直接將JavaScript代碼放在HTML中,而在HTML中引用JavaScript文件。如果一定要在頁(yè)面中包含JavaScript,這樣的代碼不能太長(zhǎng)。
● 減少在頁(yè)面中包含的JavaScript文件數(shù)。不需要走極端,將所有代碼放到一個(gè)文件中。包含不超過(guò)5個(gè)文件是可行的,但如果包含超過(guò)20個(gè)文件就要三 思而行。這些數(shù)字只是象征性的,如果這是個(gè)問(wèn)題,應(yīng)進(jìn)行測(cè)試看看在單個(gè)頁(yè)面中使用多少文件將影響網(wǎng)站的性能。
● 減少使用的庫(kù)。如果使用大量不同來(lái)源的庫(kù),它們的有些代碼很可能是重復(fù)的。例如,每個(gè)庫(kù)都可能包含處理DOM事件的代碼,這是一種浪費(fèi),因?yàn)檫@些代碼可以 共享。選擇一個(gè)能夠解決大量問(wèn)題且模塊化的庫(kù),這樣可只包含所需的子集。使用來(lái)自一個(gè)主要庫(kù)的代碼還有其他好處:將減少依賴(lài)關(guān)系,從而降低不兼容的可能 性;升級(jí)到新版本更容易;通常來(lái)說(shuō),大型庫(kù)將獲得更大社區(qū)的支持,因此更新更頻繁,新特性更多。本章后面的內(nèi)容將更詳細(xì)地介紹JavaScript庫(kù)。
很多庫(kù)都會(huì)發(fā)布其代碼的兩個(gè)版本:完整版和精簡(jiǎn)版。
● 完整版適合用于閱讀和修改庫(kù)的代碼。它包含縮進(jìn)和注釋?zhuān)瑢?duì)開(kāi)發(fā)人員來(lái)說(shuō)可讀性更高。
● 精簡(jiǎn)版適合用于部署網(wǎng)站。這種版本是基于完整版自動(dòng)創(chuàng)建的:刪除了注釋和縮進(jìn);通常所有代碼位于一行中;有時(shí)候不暴露的變量被重命名為很短(而晦澀)的名稱(chēng)。
部署網(wǎng)站時(shí),務(wù)必使用精簡(jiǎn)版。根據(jù)自己編寫(xiě)的代碼長(zhǎng)度,可能要使用工具創(chuàng)建JavaScript文件的精簡(jiǎn)版。這樣的工具有很多,其中包括開(kāi)源(GPL)的ECMAScript Cruncher(ESC)。
3.2.2 最大限度地減少DOM更新
為完成任何有趣的工作,代碼必須修改DOM。然而,修改DOM的開(kāi)銷(xiāo)非常高。顯然,為處理修改頁(yè)面內(nèi)容的DOM API調(diào)用,瀏覽器必須做大量工作。更令人驚訝的是,調(diào)用不修改頁(yè)面的方法(如注冊(cè))可能非常慢。
另外,請(qǐng)注意遍歷大量DOM對(duì)象的代碼,如遍歷documet.all以查找特定元素的代碼或document. getElementByName()。這些代碼的執(zhí)行時(shí)間將隨頁(yè)面的增大而增長(zhǎng)。
【關(guān)于javascript的心得體會(huì)】相關(guān)文章:
關(guān)于師德師風(fēng)的心得體會(huì)02-16
關(guān)于初中的軍訓(xùn)心得體會(huì)01-22
關(guān)于護(hù)士的工作心得體會(huì)01-10
關(guān)于學(xué)法用法的心得體會(huì)范文01-18
關(guān)于銷(xiāo)售工作情況的心得體會(huì)02-18
關(guān)于中國(guó)女足奪冠的心得體會(huì)02-10