最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS編程小常識很有用

 更新時間:2012年11月26日 09:31:50   作者:  
JS是一門計算機編程語言,是一門動態(tài)語言也稱為腳本語言,是解析型編程語言。需要了解跟多
1.JS中的是是非非
JS是一門計算機編程語言,是一門動態(tài)語言也稱為腳本語言,是解析型編程語言。為什么是腳本?因為他本身不能執(zhí)行,就是沒有main函數或主程序的入口,必須被他的宿主環(huán)境,也就是解析環(huán)境解析執(zhí)行他。為是什么是解析型?因為JS不會進行編程,鏈接,匯編等一系統的過程生成某個文件,再執(zhí)行,他就是以字符串形式加載執(zhí)行..
2.JS中的真真假假
空,null,undefined,false,0,””,'',NaN都為假,其他都為真
3.函數,類,對象,構造器有什么區(qū)別?
答:在js中函數,類,對象,構造器可以說是沒有任何區(qū)別的,我們可以說函數既為對象,對象既為類,類既為構造器。但一般情況下,我們稱對象為那個類的實例,這是為了減少混亂。
復制代碼 代碼如下:

function Person(){
}
var person = new Person();
//Person我們可以稱為函數,類,對象,構造器(不帶參數)
//person稱為對象的引用

4.懂this關鍵字,你懂JS五分之一.
this永遠指向調用該方法(函數)的那個對象.(必背)
首先要知道this是什么?
this就是js中的一個對象。是一個對象,不是一個函數,此是的對象你可以看作是一個對象的引用,引用誰?引用調用方法的那個對象.
this這個對象存在哪里?存在JS代碼中,一般存在于函數之中。如果你把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現在等于一個函數了..為什么?
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框架中的影響
prototype為原型,是一個對象。,。
constructor為構造器,是一個函數
到現在為止,你要分清楚,什么時候的對象為對象,什么時候的對象是一個函數.也難為JS解析器,能解析運行如此靈活的代碼。
prototype可以說他是一個類的靜態(tài)的屬性,他指向這個對象的實例。換句話說prototype是一個對象。prototype指向的對象和我們new的對象有何區(qū)別?建立了一種等價橋梁關系,但不是同一個。當我們在函數prototype上綁定屬性的時候,那么屬性和值就綁定到了prototype對象上,并沒有正真的綁定到那個對象上去。當需要訪問那個對象上的這個屬性的時候,JS解析器,首先會去從對象本身上去找這個屬性,然后再到原型對象上找。
復制代碼 代碼如下:

function Person(){
}
var person = new Person();
person.name=”張三”;
Person.prototype.name=”李四”;
alert(person.name);
delete person.name;
alert(person.name);

constructor指向一個對象的構造器。(什么是構造器?自己去復習。),由此可以看出他是一個對象級別的屬性。也就是要使用constructor這個屬性,必須需要一個對象。
那么prototype是一個對象有沒有constructor屬性?當然有,既然constructor是指構造器,那有沒有一個prototype屬性?當然有,以此類推,下面這兩段代碼是正確的.
constructor.prototype.constructor.prototype.constructor……
prototype.constructor.prototype.constructor.prototype……
其實我也不知道到底可以連多長?感興趣可以試一下。順便告訴你用遞歸算法。
在眾多的JS代碼中,當我們已知一個對象,要求他的構造器,或者已知一個構造器,求他的對象。應入門了。
7.==和===將判斷進行到底.
==和===神像形不象.不要去考慮,一眼就看出是做斷判是否相等。
有木有區(qū)別?
==判斷變量是否相等。
===判斷變量的值相等。
以此類推:====用來干嘛的??用來報錯的.你懂的.這里只想告訴你,只有==和===
JS中變量是弱類型的,都懂。
復制代碼 代碼如下:

var a=3;
var b=”3”;
alert(a==b);
JS中變量的值是強類型的。你懂的.
var a =3;
var b =”3”;
alert(a===b);

都是var 類型的變量,但他們的值不一樣,一個是整形,一個是字符串型.
var類型和var類型相比,當然是true,整形和字符串型比,當然是false.
==用來比較他們值是否一樣。不會是計較值的類型,只要他們的變量是var類型就可以了。當然是這廢話,難不成,你不還能聲明第二種變量類型的變量?.
===用來比較,會去判斷他們的值是否為同一類型。如果不是,沒有的比較。JS中變量的值是強類型的,有整形,字符串,數字,布爾等.
8.typeof和instanceof完成了判斷未成的使命
typeof用來判斷基本數據類型
instanceof 用來判斷對象類型是否為某一個類型號
9.5種繼承讓你如虎添翼.
i.對象冒充
ii.apply
iii.call
iv.prototype
v.for循環(huán)方式
用法:永遠只須記住,JS中的繼承只是屬性和方法的拷貝.
10.DOM模型結構改變你的思想
DOM是一種思想,一種將數據以樹狀結構數據的思想。學習DOM只需要掌握任何一個節(jié)點都有一個父節(jié)點和0到多個子節(jié)點.任何一個節(jié)點都有一個頁面上的標簽表現形式和一個內存對應著一個標簽對象.頁面只是展示數據的地方,內存中才是DOM對象數據保存地方。任何一個DOM對象只能有一個父節(jié)點對象。父子關系可以隨時改變。
必須:
獲取對象:查
對象操作:增,修,刪
內容操作:innerHTML,innerText等
事件操作:mouse,key
樣式操作:id,tag,class
屬性操作:attribute
11.回調函數減少編寫代碼
什么是回調函數?
在JS中函數名是用來標識一個函數的。既我們可以傳遞給某個函數一個函數名(函數名柄),然后由那個函數來自動調用我們的函數完成相關的處理。
調用者與被調用者分開,我們不需要關心調用者,和被調用者?;卣{可用于通知機制,事件。
12.函數和arguments
函數名就是函數的句柄,指針,函數名是唯一的,這也成就了JS中沒有函數重載。只有函數覆蓋。函數名才是唯一標識函數的。
永遠需牢訪,JS中的函數調用就是在函數名后面加對括號()
函數調用參數可有可無,無論什么情況下,參數都會保存在函數體中的arguments對象中,你可以直接使用他,他是一個對象,參數是以數組形式存放。
13.閉包(匿名函數)為開發(fā)開辟了捷徑
閉包是函數內調用函數外的參數,一般也可稱為匿名函數,但兩者有所不同。
閉包的價值在于可以作為函數對象或者匿名函數,對于類型系統而言這就意味著不僅要表示數據還要表示代碼。支持閉包的多數語言都將函數作為第一級對象,就是說這些函數可以存儲到變量中、作為參數傳遞給其他函數,最重要的是能夠被函數動態(tài)地創(chuàng)建和返回.
匿名函數減少了變量名稱的沖突,為沒有權限作用域的JS提供了權限作用域。當我們需要提供一個接口,但又不想讓這個接口對象為全局變量就需要用匿名函數:
(function(){
局部代碼,外部永遠無法訪問,除非你提供一個入口
})();

相關文章

  • package.json與package-lock.json的區(qū)別及詳細解釋

    package.json與package-lock.json的區(qū)別及詳細解釋

    不知道大家平時在開發(fā)中有沒有注意到,你的項目中有兩個文件:package.json,package-lock.json,應該很多人平時都不會去關注這兩個文件有啥關系吧,這篇文章主要給大家介紹了關于package.json與package-lock.json的區(qū)別及詳細解釋,需要的朋友可以參考下
    2022-08-08
  • javascript顯式類型轉換實例分析

    javascript顯式類型轉換實例分析

    這篇文章主要介紹了javascript顯式類型轉換,實例分析了javascript實現類型轉換的常用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • js實現點擊生成隨機div

    js實現點擊生成隨機div

    這篇文章主要為大家詳細介紹了js實現點擊生成隨機div,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • HTML中setCapture、releaseCapture 使用方法淺析

    HTML中setCapture、releaseCapture 使用方法淺析

    本文給大家簡單介紹了下html中的高級拖動技術setCapture、releaseCapture的使用方法,有需要的小伙伴可以參考下
    2016-09-09
  • 聊一聊JS中的prototype

    聊一聊JS中的prototype

    function定義的對象有一個prototype屬性,prototype屬性又指向了一個prototype對象,注意prototype屬性與prototype對象是兩個不同的東西,要注意區(qū)別.這篇文章主要介紹了JS中的prototype的相關資料,需要的朋友可以參考下
    2016-09-09
  • js字符串中空格和換行符(\r,\s,\n,\r\n)淺析

    js字符串中空格和換行符(\r,\s,\n,\r\n)淺析

    我們在使用字符串時經常會遇到換行問題,下面這篇文章主要給大家介紹了關于js字符串中空格和換行符(\r,\s,\n,\r\n)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • HTML5+Canvas調用手機拍照功能實現圖片上傳(上)

    HTML5+Canvas調用手機拍照功能實現圖片上傳(上)

    這篇文章主要為大家詳細介紹了HTML5+Canvas,和jquery技術,調用手機拍照功能實現圖片上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • js實現上下左右彈框劃出效果

    js實現上下左右彈框劃出效果

    本文主要介紹js實現上下左右彈框劃出效果的實例,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 使用PDFJS遇到的坑及解決辦法記錄

    使用PDFJS遇到的坑及解決辦法記錄

    PDF.js是由Mozilla支持的基于HTML5的PDF查看器,可以在web上解析和呈現PDF文件,它支持內容檢索、頁面跳轉、文件打印等功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • javascript實現圖片預加載和懶加載

    javascript實現圖片預加載和懶加載

    這篇文章主要為大家詳細介紹了javascript實現圖片預加載和懶加載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評論

中方县| 分宜县| 皮山县| 黔西| 桦南县| 东莞市| 额尔古纳市| 海丰县| 长兴县| 东方市| 遂川县| 三都| 闵行区| 井冈山市| 唐山市| 鲜城| 诸暨市| 杭州市| 陆河县| 萨嘎县| 徐汇区| 黔南| 门源| 托克托县| 诸暨市| 新民市| 阿克| 钦州市| 马鞍山市| 蒙阴县| 阜城县| 宜君县| 色达县| 陈巴尔虎旗| 安远县| 黔西| 巫山县| 江城| 阳朔县| 松桃| 土默特右旗|