日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

JavaScript 基礎(chǔ)

 印度阿三17 2019-07-13

 1. 數(shù)據(jù)類型:

  js中的原始數(shù)據(jù)類型:number、string、boolean、undefined、null、object

  原始數(shù)據(jù)類型又分為:

    基本類型(簡單類型),值類型:number、string、boolean

    復(fù)雜類型(引用類型):object

    空類型:undefined、null

  注意:值類型之間傳遞,傳遞的是值,值在棧上;引用類型之間的傳遞,傳遞的是地址(引用),對象在堆,地址在棧。

2. 獲取變量的數(shù)據(jù)類型:typeof  typeof 變量名 / typeof(變量名)

3. isNaN():驗證這個變量或值是不是 不是一個數(shù)字。NaN:Not a Number(不是一個數(shù)字)

注意:不要用NaN 驗證 isNaN;不要用小數(shù)驗證小數(shù);js中所有數(shù)字都是number類型的。

4. 類型裝換

    4.1 其他類型轉(zhuǎn)換成數(shù)字類型:parseInt();    parseFloat();   Number();

    4.2 其他類型轉(zhuǎn)換字符串類型:toString();    String();

    4.3 其他類型轉(zhuǎn)換成布爾類型:boolean();  //空字符串、null、undefined轉(zhuǎn)換之后都是false(即沒有意義的,轉(zhuǎn)換之后都是false)

5. 循環(huán):

  while循環(huán):先判斷,再執(zhí)行,循環(huán)體可能一次都不會被執(zhí)行

  do-while循環(huán):先執(zhí)行一次循環(huán)體,后判斷。至少執(zhí)行一次循環(huán)體

  for循環(huán):先執(zhí)行一次表達(dá)式1,然后判斷表達(dá)式2

6. 數(shù)組:

 ?。?)創(chuàng)建數(shù)組:

            1)通過構(gòu)造函數(shù)創(chuàng)建數(shù)組

       var arr = new Array();  

       var arr = new Array(10);  //長度為10的數(shù)組,但是數(shù)據(jù)類型都為 undefined

       var arr = new Array(1,2,3,4,5);

     2)通過字面量的方式創(chuàng)建數(shù)組

       var arr = [];

       var arr = [1, 2, 3, 4];

 ?。?)小案例:

      1)去掉數(shù)組中重復(fù)的0:

     

       2)反轉(zhuǎn)數(shù)組:

     

6. arguments:對象,偽數(shù)組,當(dāng)不知道傳入的參數(shù)的具體個數(shù)時,可以使用。

7. 函數(shù):匿名函數(shù)(函數(shù)表達(dá)式)、命名函數(shù)(函數(shù)聲明)、函數(shù)的自調(diào)用(沒有名字,聲明的同時,直接調(diào)用)。

  注意:函數(shù)聲明,函數(shù)名相同,則前面的同名函數(shù)將會被覆蓋;函數(shù)表達(dá)式,變量名相同,不會被覆蓋。

  作為參數(shù)使用的函數(shù),叫回調(diào)函數(shù)。(注意:函數(shù)名代表代碼,若有括號,則是結(jié)果。)

  函數(shù)可以作為參數(shù)使用,也可以作為返回值使用。

8. 作用域鏈:你使用的變量應(yīng)該在當(dāng)前作用域范圍內(nèi)查找,找不到,則往上一級查找,以此類推,直到0級作用域也找不到,則會報錯,說明沒有定義。

  

9. 預(yù)解析:把變量的聲明和函數(shù)的聲明提前到了該作用域的嘴上面,但是值沒有。

10. 創(chuàng)建對象的三種方式:

 ?。?)調(diào)用系統(tǒng)構(gòu)造函數(shù)來創(chuàng)建對象:

  var obj = new Object();

  obj.name = 'smile';    //添加屬性

  obj.play = function() { console.log("I like to play football");}   //添加方法

 ?。?)自定義構(gòu)造函數(shù)來創(chuàng)建對象:

    先自定義一個構(gòu)造函數(shù):

    

    再創(chuàng)建對象——實例化對象,并初始化:

    

    注意:函數(shù)和構(gòu)造函數(shù)的區(qū)別:函數(shù)名首字母是小寫的,是用來調(diào)用的;構(gòu)造函數(shù)的函數(shù)名首字母是大寫的,是用來創(chuàng)建對象的。

    自定義構(gòu)造函數(shù)創(chuàng)建對象做了四件事:

    1)在內(nèi)存中開辟(申請一塊空閑的空間)空間,存儲創(chuàng)建的新的對象。

    2)把this設(shè)置為當(dāng)前的對象
    3)設(shè)置對象的屬性和方法的值
    4)把this這個對象返回

  ?。?)字面量的方式創(chuàng)建對象:

     

 ?。?)一次性創(chuàng)建多個對象:工廠模式。把創(chuàng)建對象的代碼封裝在一個函數(shù)中:

  

  創(chuàng)建并實例化一個對象:

  

  再創(chuàng)建并實例化一個對象:

  

11. 設(shè)置和獲取屬性的方法:

  1)點語法:obj.age = 22;   obj.play()

  2)方括號:obj["age"] = 22;    obj["play"]();

12. JSON 格式的數(shù)據(jù):

  JSON格式的數(shù)據(jù)一般都是成對的,是鍵值對;JSON也是一個對象,一般json格式的數(shù)據(jù)無論是鍵還是值都是用雙引號括起來的。

  

13. 遍歷對象:

  不能用 for 循環(huán),因為對象是無序的,可以通過key-in循環(huán)來遍歷(key 是變量名,可更改,json是對象名,也可以是其他對象)

  

14. 實例對象和靜態(tài)對象:

  實例對象:通過構(gòu)造函數(shù)創(chuàng)建出來,實例化的對象。

  靜態(tài)對象:不需要創(chuàng)建,直接就是一個對象,方法(靜態(tài)方法),直接通過這個對象的名字調(diào)用。

  實例方法必須通過實例對象調(diào)用;靜態(tài)方法必須通過大寫的對象調(diào)用。

15. Math對象

  Math.PI-----常數(shù)π;Math.E-----常數(shù)的底數(shù);Math.abs(值)-----絕對值;Math.ceil(值)-----向上取整;Math.floor(值)-----向下取整;Math.pow(值1,值2)-----值1的值2次冪;Math.sqrt(值)-----值的平方根(開平方的結(jié)果);Math.random()------產(chǎn)生偽隨機數(shù)(0-1之間的);Math.max(10, 2, 3, 4, 17, 19);從一組數(shù)據(jù)中找 最大值;Math.min(10, 2, 3, 4, 17, 19);從一組數(shù)據(jù)中找 最小值;parseInt(Math.random()*5) 1; 產(chǎn)生1-5之間的隨機整數(shù)。

16. Date 對象

  不是靜態(tài)的,需要先實例化。var dt = new Date();

  

  

17. 字符串對象----String 對象

  string----->字符串類型-----基本類型

  String----->字符串類型-----引用類型

  字符串特性:不可變性??梢詫⒆址闯墒且粋€字符數(shù)組,可以通過for循環(huán)進行遍歷。

  字符串常用的屬性和方法:

  .length //字符串的長度

  .charAt(index) //返回值是指定索引位置的字符,超出.length-1的索引,會返回空字符

  .fromCharCode(num1,...,numN) //把數(shù)字轉(zhuǎn)換成ASCLL碼

  .concat()  //該方法將一個或多個字符串與原字符串連接合并,形成一個新的字符串并返回 

  .indexOf(searchValue[, fromIndex]) //返回調(diào)用String對象中第一次出現(xiàn)的指定值的索引,開始在f.romindex進行搜索,如果未找到該值,則返回-1
  .lastIndexOf() //從后往前找
  .replace("原來的字符串","新的字符串") //用新的字符串替換原來的字符串
  .slice(start, end) //返回提取后的字符串
  .split("字符串",切割后留下的個數(shù)) //切割字符串
  .substr() //返回一個字符串從指定位置開始到指定字符數(shù)的字符
  .substring(開始的索引,結(jié)束的索引),返回截取后的字符串,不包含結(jié)束索引的字符
  .toLocaleLowerCase(); //轉(zhuǎn)換成小寫
  .toLowerCase(); //轉(zhuǎn)換成小寫
  .toLocaleUpperCase(); //轉(zhuǎn)換成大寫
  .toUpperCase(); //轉(zhuǎn)換成大寫
  .trim() //切掉字符串兩端的空格

18. Array對象

  判斷變量是不是數(shù)組:instanceof 、isArray()

  

 ?。?)拼接一個或多個數(shù)組;concat()

 ?。?)測試數(shù)組的所有元素是否都通過了指定函數(shù)的測試;fevery()

  

 ?。?).將符合條件的數(shù)組值組合成一個新的數(shù)組輸出返回;filter()

  

 ?。?)追加元素;

    push()  追加一個元素到數(shù)組的末尾,返回值為插入后數(shù)組的長度。

    unshift()   追加一個元素到數(shù)組的開始,返回值為插入后數(shù)組的長度。

 ?。?)刪除元素:

    pop()  刪除數(shù)組的最后一個元素,返回值為刪除的這個元素

    shift()  刪除數(shù)組的第一個元素,返回值為刪除的這個元素

  (6)遍歷數(shù)組:for循環(huán) 或者 forEach()

    

 ?。?)找元素的索引:indexOf(),有則返回索引,沒有則返回1。

  (8)將數(shù)組中所有元素放到一個字符串中。join(分隔符) 

   

 ?。?)map():數(shù)組中的每一個元素都要執(zhí)行這個函數(shù),把執(zhí)行后的結(jié)果放在一個新的數(shù)組中。

  

 ?。?0)排序。sort() 但是不穩(wěn)定,應(yīng)該加上固定寫法,使其穩(wěn)定。

  

 ?。?1)截?。簊lice(開始索引,結(jié)束索引)  注意:截取后的新數(shù)組不包含結(jié)束索引。

 ?。?2)刪除、插入、替換元素; splice(開始的索引,要刪除的個數(shù),替換的元素)。

  

19. 基本包裝類型:

  普通變量不能直接調(diào)用屬性或者方法;對象可以直接調(diào)用屬性和方法。

  基本包裝類型:本身是基本類型,但是在執(zhí)行代碼的過程中,如果這種類型的變量調(diào)用了屬性或者方法,那么這種類型就不再是基本類型了,而是基本包裝類型,這個變量也不是普通的變量了,而是基本包裝類型對象

  string boolean number  既是基本類型,也可能是基本包裝類型

  

20. 冒泡排序:

  

來源:https://www./content-1-324901.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多