JS編程小常識很有用
2024-05-06 14:20:50
供稿:網友
1.JS中的是是非非
JS是一門計算機編程語言,是一門動態(tài)語言也稱為腳本語言,是解析型編程語言。為什么是腳本?因為他本身不能執(zhí)行,就是沒有main函數(shù)或主程序的入口,必須被他的宿主環(huán)境,也就是解析環(huán)境解析執(zhí)行他。為是什么是解析型?因為JS不會進行編程,鏈接,匯編等一系統(tǒng)的過程生成某個文件,再執(zhí)行,他就是以字符串形式加載執(zhí)行..
2.JS中的真真假假
空,null,undefined,false,0,””,'',NaN都為假,其他都為真
3.函數(shù),類,對象,構造器有什么區(qū)別?
答:在js中函數(shù),類,對象,構造器可以說是沒有任何區(qū)別的,我們可以說函數(shù)既為對象,對象既為類,類既為構造器。但一般情況下,我們稱對象為那個類的實例,這是為了減少混亂。
代碼如下:
function Person(){
}
var person = new Person();
//Person我們可以稱為函數(shù),類,對象,構造器(不帶參數(shù))
//person稱為對象的引用
4.懂this關鍵字,你懂JS五分之一.
this永遠指向調用該方法(函數(shù))的那個對象.(必背)
首先要知道this是什么?
this就是js中的一個對象。是一個對象,不是一個函數(shù),此是的對象你可以看作是一個對象的引用,引用誰?引用調用方法的那個對象.
this這個對象存在哪里?存在JS代碼中,一般存在于函數(shù)之中。如果你把this放到<script>標簽中,你可以試下window==this,打印什么?為什么?
剖析this關鍵字
代碼如下:
function ready(){
alert(this==window);
}
ready();
此時打什么?true,為什么?
代碼如下:
function Person(){
this.name='張三';
alert(this==window);
}
new Person();
此時打印什么?false,為什么?
把代碼加長點.加一個var perso=
var person = new Person();
全世界的人都知道person引用了new Person產生的那個對象。new Person創(chuàng)建的是一個JS實例對象,我們就可以綁定屬性和方法.
看下面這段代碼
代碼如下:
fn=function(){
}
fn.ready=function(){
alert(this== fn);
}
當調用fn.ready()的時候打印什么?true ,為什么?
十分奇怪,this現(xiàn)在等于一個函數(shù)了..為什么?
5.JS中靜態(tài)方法和屬性將助你一臂之力.
什么是靜態(tài).顧名思意:就是不動了,JS中不動的方法是什么?就是不需要創(chuàng)建實例,直接可以通過類名調用方法,哪里都沒有動。方法就調用了。不需要任何額外的代碼。這只是片面之言。所謂靜態(tài):就是屬于類的屬于類本身的特征.
Js中類既為對象,何不能直接綁定屬性和方法。當然可以.
代碼如下:
fn=function(){
}
fn.name='張三';
fn.getName=function(){
return fn.name;
}
這也行,但為什么還要new 的過程,全都這樣綁定不就可以了嗎?思考
6.prototype和constructor的在JS框架中的影響