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