javascript基礎課堂二

流程控制

  1. 單分支 if

    當條件爲 true 時才執行 if 裏面的代碼es6

    例:
    • let age = 19;
    if(age > 18){
    console.log("你成年了");
    • }面試

  2. 雙分支 if else

    例:
    • let age = 17;
    if(age > 18){ //若是age大於18
    console.log("你成年了");
    • }else{ //不然
    console.log("你仍是個小孩");
    }數組

  3. 多分支

    if (條件1) { //若是爲true執行 爲false執行條件2

    •   } else if (條件2) { //若是爲true執行 爲false執行條件n

    } else if (條件 n) { //若是爲true執行 爲false執行條件else

    }else { //全部條件都不知足執行

    •   }數據結構

  4. 做用域

    全局做用域:聲明變量爲全局且不包含在任何語句裏函數

    局部做用域:聲明變量在語句裏就是局部做用域 語句嵌套子級可使用父級的局部聲明變量測試

    注:code

    有局部變量就用局部變量,若沒有就向父級和全局尋找、直到找到爲止,不然報錯。對象

    變量名能夠在不一樣的做用域使用排序

  5. switch

    等價於多分支。代碼清晰、執行效率高於 if else if...索引

    switch () {

    case A:

    break;

    case B:

    break;

    ...

    default: //默認

    break; //跳出

    }

    case 匹配進行的全等匹配

循環

同一個代碼塊,須要執行屢次,考慮用循環

  1. for:

    測試前語句

    for( 初始化; 測試;遞增遞減 ) {

    循環體

    }

    for( 表達式1;表達式2;表達式3 ) {

    表達式4

    }

    執行步驟:1-2-4-3 2-4-3 2-4-3 2-4-3......

    例:
    for(i=0;i<=10;i++){
    console log("i") 1 2 3 4 5 6 7 8 9 10
    }

  2. while

    while(條件){ 代碼塊 }

    功能:條件爲真則執行括號裏面的代碼,直到條件爲假結束

    注:條件能夠變化的、防止死循環

    let   i = 0
    • while ( i < 3 ){
    • 循環體;
    • i + +;
    • }

    • 例:let number = 1;
    • while(number<5){
    • number++;
    • }
    • console.log(number) //5

  3. do while:

    後測試語句

    do{代碼}whlie(條件)

    注:至少執行一次代碼塊,條件爲真執行第二次、直到爲假結束循環

    do {
    循環體;
    } while (測試語句);

    例:let number = 1;
    do {
    number++;
    } while (false);
    console.log(number) //2

數組

基本:number null undefined string boolean symbol

複雜:object

數據結構:計算機存儲、組織數據的一種方式。

數組:把數據有序的集合在一塊兒。數組中每個值叫作 item 元素,每一個元素在數組中都有惟一的位置,位置用數字表示叫作下標 || 索引 index

建立數組

  1. 字面量:let arr = []
  2. 構造函數: let arr = new Array()

typeof arr // object

數組賦值:

1.arr[index] = value arr[0] = "zhangsan";

  1. arr[item1, item2, ...]

數組的長度: arr.length

查看(訪問)數組元素:

arr[index]

數組中的每一個值、都會有對應的一個下標(索引)、能夠經過它獲取對應數組 的值、下標起始值爲0。

構造函數聲明:let F70 = new Array();

字面量與構造函數的區別:

字面量的解析比構造函數快

緣由:

字面量屬於JSON格式、能夠直接被JS解析

構造函數須要先調用構造函數、在進行JS解析

解構 es6:

將複雜數據類型的值拆解成簡單數據類型。保持 = 左右兩邊數據結構相同。

例:

let arr = [1,2,3]
let [a,b,c] = arr
console.log(a,b,c) //1,2,3

let arr = [1,2,3]
let [a, ,c] = arr
console.log(a,b,c) //1,3
不須要的值,直接跳過

遍歷數組:

  1. for
例:  
 let arr = [1, 2, 3, 4, 5]  
 for (let i = 0; i < arr.length; i++) {  
 console.log(arr[i]);//1,2,3,4,5  
 }
  1. es6 for of
例:  
 let arr=[1,2,3,4,5]  
 for(let item of arr){  
 console.log(item);//1,2,3,4,5  
 }
  1. for in 用在遍歷對象 能夠遍歷下標
例:let arr=[1,2,3,4,5]  
 for(let index in arr){  
 console.log(index);//0,1,2,3,4,  
 }
  1. forEach(callback 函數回調) 不能打斷
例如:let arr=[1,2,3,4,5]  
 arr.forEach(function(item,index)){  
 console.log(`第${imdex}位的${item}`)  
 }

常量擴展:

若是賦值給常量的是基本數據類型、則常量存儲該基本數據類型變量具體的值。

若是賦值給常量的是引用數據類型、則常量存儲該引用數據類型變量的地址。

注:引用數據類型存儲的值發生變化、常量存儲該引用數據類型變量的地址裏面的值不會變化。

多維數組:

let arr = [ [] ]

數組的操做方法:

  1. push( )在數組末尾添加 1到多個值,返回添加後的數組長度

    例:let arr = [1,2,3]
    arr.push(1)//1,2,3,

  2. pop( )刪除末尾數組 返回刪除的值
  3. shift( )刪除首位 返回刪除的值
  4. unshift( )在首位添加
  5. Math.max()最大值
  6. Math.min()最小值
  7. slice( startindex, endindex )截取startindex到endindex-1之間的數組不包含自身、若參數爲負則用數組長度與其相加、在若沒有知足範圍的值則返回空

    slice( startindex )從startindex開始所有截取

  8. splice( startindex,deletecount,item 1,item2....)

    從第幾個下標開始 刪除幾個 修改(替換 刪除後才能替換和修改不然在第一個參數下標前新增)

    例如:
    let arr = [1, 2, 3, 4, 5];
    let arr1 = arr.splice(2, 2, 9, 1)  //從下標2開始 刪除兩個包括自身 並替換刪除的第一個爲9 第二個爲1
    console.log(arr1);  // 返回被刪除的數 3 4
    console.log(arr);  //1 2 9 1 5


    let arr = [1, 2, 3, 4, 5];
    let arr1 = arr.splice(2, 0, 9, 1)  //從下標2開始 沒有刪除 在下標2以前插入(新增) 9 1
    console.log(arr1);  // 返回被刪除的數 [ ]
    console.log(arr);  //1 2 9 1 3 4 5

  9. arr.reverse( )翻轉數組先後順序
  10. arr.sort( )排序

    例: arr.sort( (a,b)=>a-b)升序
    arr.sort( (a,b)=>b-a)降序

  11. arr.concat( )

    例:
    let arr2 = [1,2,3]
    let arr1 = [4,5,6]
    let arr3= arr.concat(arr2,arr1)  //[1,2,3,4,5,6]

  12. arr.indexof( )查找下標 arr.lastindexof( )從後往前

    例:let arr = [1,2,3,4,5,6]
    console.log(arr.indexof('1')) //[0]
    若是下標不存在打印-1


    let arr = [1,2,NaN,4,5,6]
    console.log(arr.indexof(NaN)) // -1
    console.log(arr.lastindexof(NaN)) // -1
    console.log(arr.includes(NaN)) //true

  13. str.split("分隔符")而且不包含 字符串轉數組該分隔符

    例:let str = "t a n g k e c h a o"
    let strs = str.split("a")
    consloe.log(strs) // ["t" ngkech "o"]
    當str.split("-")時
    consloe.log(strs) //[ 't' ,'a', 'n', 'g', 'k' ,'e' ,'c', 'a' ,'o']
    當str.split("")時
    consloe.log(strs) //[ 't a n g k e c a o']

    例:
    let str = "123";
    let arr = [];
    arr = [...str];
    console.log(arr) //[1,2,3]

  14. arr.join( 分隔符 ) 數組轉字符串

    例:let arr = [1,2,3,1]
    let arrs = arr.join("-")
    console.log(arrs)//1-2-3-1

    let arr = [1,2,3,1]
    let arrs = arr.join(",")
    console.log(arrs)//1,2,3,1

    let arr = [1,2,3,1]
    let arrs = arr.join(" ")
    console.log(arrs)//1 2 3 1

  15. 查找arr.includes(value) 返回boolean值

    例:let arr= [1,2,3,4]
    console.log(arr.includes("1")) //true
    console.log(arr.includes("5")) //false

  16. arr.map( function( ) ){......}

    遍歷同時操做,返回新數組,老數組不變

    例:let arr = [1,2,3]
    let arrs=arr.map(function ( item ) ){
    return item*2
    }
    console.log(arr) //[1,2,3]
    console.log(arrs) //[2,4,6]

  17. 過濾 arr.filter( function ( ) ){.....}

    返回條件爲true的item

    例:let arr = [1,2,3,4]
    let arrs = arr.filter(function (item) ){
    return item%2=0; //返回值
    }
    console.log(arr) //[1,2,3,4 ]
    console.log(arrs) //[2,4 ] //調用
    不會留下undefined

  18. 面試題

    let arr = [0,1,2] //[0,1,2,undefined,undefined,5]

    arr[5] = 5 //新增下標:[undefined] [undefined] [5]

    let arrs = arr.filter(function ( item) ){

    return item = = undefined; //當item 也就是下標 = = undefined

    });

    console.log(arrs) //[ ] [ ]

  19. arr.some( ) arr.every( ) 返回boolean值

    let arr = [1,2]

    let arrs = arr.every(function( item ){

    return  item%2 ==0;

    })

    console.log(arrs) //false

    若是把every換成some //true

  20. 擴展運算符 . . .

    let arr = [ 1,2,3]

    let arr1 = [ 3,2,1]

    let arr2 = [ ...arr...arr1]

    console.log(arr2)  //[1,2,3,3,2,1]

  21. ES6 新增數據結構 Set 集合

    一,去重

    1. .size array .length set .size
    2. s.add(value) 不會包含重複的值,不作數據類型轉換
    3. 鏈式調用
    4. set 轉 array
二,Map 映射

1.  `區別 arr.map()`
    
2.  let m = new Map() 與對象類似,鍵能夠是任意數據類型
    
    let s = new Set(arr);  
    ​  
    s.add(4);  
    ​  
    s.add(4);  
    ​  
    s.add(4);  
    ​  
    s.add("4");
    

三,鏈式調用

s.add(4).add(4).add(4).add("4");  
​  
​  
​  
arr = [...s];  
​  
console.log(arr);  
​  
​  
​  
console.log(s);  
​  
let tempArr = [];  
​  
for (let item of s) {  
​  
```  
tempArr.push(item);  
```  
​  
}  
​  
console.log(tempArr

若有異議請聯繫我

相關文章
相關標籤/搜索