1. 程式人生 > 實用技巧 >12前端javascript基礎

12前端javascript基礎

重複性焦慮

javascript 基礎

1. 資料型別

  • 1.1 基本資料型別

    • 資料型別:undefined,null,boolean,number,string

      • number型別:整數和浮點數

        • NaN是一個特殊的數值:代表非數值,和自己都不相等,即NaN ===NaN 返回false

        • isNaN(n)用來判斷n是不是非數值

        • 非數值轉數值: number(n),如果轉換不成功返回NaN parseInt(n),數值前面不能有非空格字元否則返回NaN parseFloat(n),數值前面不能有非空格字元否則返回NaN,會忽略前導零

      • string型別

        • 用單引號和雙引號都可以,如果需要兩層,需要使用外單內雙

          外雙內單

        • 轉義字元: \n 換行 \t 縮排 \b空格 \ 反斜槓 ' 單引號 "雙引號

        • 將其他型別轉換為string的函式: str.toString() String(str)

      • boolean型別

        • 除0之外都是true

        • 除undefined和null都是false

        • 不只可以返回布林型別,還可以通過隱式轉換返回其他的值

          • && 如果第一個運算元隱式轉換為true,則返回第二個/最後一個值

          • && 如果第一個運算元隱式轉換為false,則返回第一個運算元

          • ||如果第一個運算元隱式轉換為true,則返回第一個運算元

          • || 如果第一個運算元隱式轉換為false,則向後查詢,直至找到最後一個隱式轉換為true的元素並返回,最後沒有返回最後一個

    • typeof關鍵字可以檢測到變數的型別typeof(變數名)

    • 變數本身沒有型別,要看值的型別

    • 如果定義的變數將來用於儲存物件,那麼初始化就是null

    • defined == null 值相等返回true

    • 基本資料型別是值型別,儲存到棧

  • 1.2 複雜資料型別

    • 資料型別:object

    • 是引用型別

    • 儲存到堆上

2. 預解析

js引擎會將所有的宣告(var function)提升到當前作用域最前面

3. 內建物件

3.1 Array陣列
  • 陣列內部元素型別可以不一致,大小可以動態調整

  • 空陣列內部值為undefined

  • 3.1.1建立陣列的方式 建構函式arry1 = new Array(n):當引數只有1個代表陣列大小;當引數個數大於1個,則為元素

  • 3.1.2 向陣列中新增元素的方法 在陣列中修改arry1.length屬性

  • 3.1.3 判斷是否為陣列 arry1.instanceofArray判斷arry1是否為陣列 Array.isArray(arry1)判斷arry1是否為陣列

  • 3.1.4 棧方法新增刪除元素 arry1.push(values)向arry1 陣列的最後新增1個或多個values值,返回新陣列的長度 arry1.pop(values)向arry1 陣列的最後刪除1個或多個values值,返回刪除的元素 arry1.unshift(values)向arry1 陣列的最前面新增1個或多個values值,返回新陣列的長度 arry1.shift(values)向arry1 陣列的最前面刪除1個或多個values值,返回刪除的元素

  • 3.1.5 將陣列轉換為字串 arry1.join(separator)將arry1內部元素用“separator”分隔符連線在一起

  • 3.1.6 連線多個數組 arry1.concat(arry2)將arry1和arry2連線起來

  • 3.1.7 陣列反轉 arry1.reverse()將arry1反轉

  • 3.1.8 陣列排序 arry1.sort(sortby)將arry1排序,sortby=function(a,b){return a-b}之類

  • 3.1.9 陣列切片 arry1.slice(start,end)將arry1切片,如果start為負數,從尾部開始切片

  • 3.1.10陣列索引 indexOf(searchvalue,searchindex)從searchindex位置開始查詢searchvalue,成功返回下標,失敗返回-1,從陣列開始端開始查詢 lastIndexOf(searchvalue,searchindex)從searchindex位置開始查詢searchvalue,成功返回下標,失敗返回-1,從陣列末端開始查詢

  • 3.1.11splice實現陣列的刪除、插入、替換 arry1.splice(index,count)從陣列index位置開始,刪除count個元素,返回刪除的元素 arry1.splice(index,0,item1...itemx)從陣列index位置開始,刪除0個元素,插入item1...itemx arry1.splice(index,count,item1...itemx)從陣列index位置開始,刪除count個元素,插入item1...itemx

3.2 String字串
  • 把string的簡單型別包裝成複雜的資料型別,就有了複雜資料型別的屬性和方法 var temp = new String("hhhh"); str = temp; temp=null;//清除臨時變數

  • 字串是不可變的,所以每一次修改字串的內容都會在記憶體重新開闢一個空間儲存新陣列,造成資源浪費,所以應該儘量少修改字串

  • 3.2.1字串索引 indexOf、lastIndexOf同陣列

  • 3.2.2 查詢元素 charAt(index)返回下標為index的元素 charCodeAt(index)返回下標為index元素的ascii Str[index] html5新增特性

  • 3.2.3 字串切片 slice(start,end)將字串切片

  • 3.2.4分割字串 split(separator)將字串分割成一個數組,返回陣列

  • 3.2.5替換字串 replace(mode,content)將字串替換

  • 3.2.6遍歷字串 for in

3.3 Math
  • max 最大值

  • min最小值

  • ceil向上取整

  • floor向下取整

  • round四捨五入

  • abs絕對值

  • random產生0-1的隨機浮點數。 隨機產生一個(min,max)之間的數:Math.floor(random()*(max-min)+1)+min

3.4 Date
  • 建構函式,使用前必須new Date()

  • get/setFullYear()獲取設定年份

  • get/setMonth()獲取設定月份,月份 = 實際月份-1

  • get/setday()獲取設定天

  • get/setTime()獲取設定時間

  • new +Date獲取當前時間