日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS每日笔记

發布時間:2024/1/18 javascript 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS每日笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

js 簡介

JS是什么

  • JS是一種運行在客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能
  • 瀏覽器就是一種運行JS腳本語言的客戶端,JS的解釋器被稱為JS引擎,為瀏覽器的一部分

JS 的組成

  • JavaScript 是由 ECMAScript,DOM 和 BOM 三者組成的。
  • ECMAScript: 定義了JavaScript 的語法規范,描述了語言的基本語法和數據類型
  • DOM (Document Object Model): 文檔對象模型
  • BOM (Browser Object Model): 瀏覽器對象模型

js 的三種書寫方式

  • 行內式(強烈不推薦)

? ? =>a 標簽
? ? =>書寫在 href 屬性上,一定要書寫一個 javascript;一段js 代碼;

=>非a標簽
? ?-> 書寫一個行為屬性,例如:onclick(當點擊在標簽身上的時候)
? ?->直接在屬性值的位置書寫 js 代碼即可?

  • <input type="button" value="按鈕" onclick="alert('hello world')" />
    • 內嵌式(不太推薦)
  • =>在html 頁面內書寫一個 script 標簽,把js 代碼書寫在 script標簽內
  • =>注意
  • 1.script 標簽內的代碼會直接執行,不需要依賴行為 2.script標簽推薦書寫在 head body的末尾
  • 3.一個頁面可以書寫多個script標簽,會按照從上到下依次執行 <body><script>alert('hello world')</script> </body>
    • 外鏈式(推薦)

    ? ? ? =>把 js 代碼書寫在一個 .js后綴的文件內,在當前 html 文件內以 script 標簽的script 標簽的 src 屬性引入頁面
    ? ? ? =>注意: 1.script 標簽引入的 js 文件會直接執行,不需要依賴行為
    ?2.script 標簽書寫在 body 的末尾或者 head 的末尾
    ?3.一個標簽被當作外鏈式引入js文件后 ,就不能被當作 內嵌式使用了

    js 定義變量

    ?什么是變量?

    ?變量是計算機內存中存儲數據的標識符,根據變量名稱可以獲取到內存中存儲的數據;
    ?變量其實就相當于一個容器,內部可以存儲任意類型的數據,使用變量時,用的是內部存儲的數據。

    <script src="main.js"></script>

    為什么要定義變量?

    使用變量可以方便的獲取或者修改內存中的數據

    如何定義變量

    使用一個 var 的關鍵字進行定義,后面必須加一個空格,空格后面自定義變量名

    var a; var b; var c;

    變量賦值

    • 變量定義之后,初始時沒有進行賦值,內部有一個默認存儲的值叫 undefined(未定義) 表示內部未賦值,但可以存儲數據了
    • 變量賦值的方式:通過等號 = 賦值,等號右邊的值賦值給左邊的變量 ==(等號在 JS 中叫做 賦值號;書寫時,等號 = 兩側習慣書寫一個空格)==
    // 變量定義 var a; // 變量賦值 a = 1; // 變量定義并賦值 var b = 2;

    使用變量

    直接寫變量名即可使用變量;變量在使用前,必須先有定義,如果沒有定義,會出現引用錯誤

    變量命名規則(必須遵守,不遵守會報錯)

    • 由字母、數字、下劃線、$符號組成,不能以數字開頭
    • 字母區分大小寫
    • 不能是關鍵字和保留字
    • 關鍵字指的是js中有特殊功能的小詞語,比如var、for等
    • 保留字指的是現在沒有特殊功能,但是將來新語法中有可能作為關鍵字使用

    變量命名規范(建議遵守的,不遵守不會報錯)

    • 變量名必須有意義
    • 遵守駝峰命名法

    js 數據類型

    JS中的值,無論是字面量還是變量,都有明確的類型

    • 數據類型分類(以基本數據類型為主)
      • Number 數字類型
        • 不區分整數、浮點數、特殊值,都是 Number 類型
      • String 字符串類型
        • 所有的字符串都是 String 類型
      • undefined undefined類型
        • ndefined本身就是一個數據,表示未定義,變量只聲明不賦值的時候,值默認是 undefined
      • Boolean 布爾類型
        • Boolean 字面量:只有 true 和 false 兩個字面量的值,必須是小寫字母
        • 計算機內部存儲:true 為 1,false 為 0
      • null null類型
        • null 本身就是一個數據
        • 從邏輯角度,null 值表示一個空對象指針
        • 如果定義的變量準備在將來用于保存對象,最好該變量初始化為 null
      • Object 對象類型(后續課程詳細講解)

    數據類型檢測

    • 為什么要有數據類型檢測?
      • JS語言是一門動態類型的語言,變量并沒有一個單獨的數據類型,而是會隨著內部存儲數據的變化,數據類型也會發生變化
      • 變量的數據類型,與內部存儲數據有關
      • 將來使用變量時,需要知道內部存儲的數據是什么類型,避免程序出錯
    • 使用 typeof 的方法進行數據檢測
      • 檢測方式:在 typeof 后面加小括號執行,將要檢測的數據放在小括號內部

    數據類型轉換(轉數值 / 轉字符串 / 轉布爾)

    轉數值

  • Number(數據)方法
    • 轉型函數Number()可以用于任何數據類型,將其他數據類型轉為數字
    • 字符串:純數字字符串轉為對應數字,空字符串和空白字符串轉為0,非空非純數字字符串轉為NaN
    • 布爾值:true轉為1,false轉為0
    • undefined:轉為NaN
    • null:轉為0
  • parseInt()方法:字符串轉整數方法
    • 對浮點數進行取整操作
      • 對數字取整直接舍棄小數部分,只保留整數
    • 將字符串轉為整數數字
      • 將字符串轉為整數數字,也包含取整功能
    • 字符串中,必須是純數字字符串或者數字字符開頭的字符串,才能轉換為正常數字,且只取整數部分
    • 如果不是數字打頭的字符串,會轉換為NaN
  • parseFloat()方法:字符串轉浮點數方法
    • 將字符串轉為浮點數數字
    • 滿足浮點數數字字符必須在字符串開始,如果不在開始返回值都是NaN
  • 轉字符串

  • 變量.toString()方法
  • String(變量)方法,有些值沒有toString(),這個時候可以使用String()。比如undefined和null
  • + 號拼接字符串方式
    • num + “” ,當 + 兩邊一個操作符是字符串類型,一個操作符是其他類型的時候,會先把其他類型轉換成字符串在進行字符串拼接,返回字符串
  • 轉布爾

  • Boolean(變量)方法
    • 轉型函數Boolean()可以用于任何數據類型,將其他數據類型轉為布爾類型的值
    • 轉為false:NaN、0、“”空字符串、null、undefined
    • 轉為true:非0 非NaN數字、非空字符串
  • js 運算符

    • 什么是運算符?
      • 也叫操作符,是 JS 中發起運算最簡單的方式,例如: 5 + 6
      • 表達式的組成包含操作數和操作符,表達式會得到一個結果,然后用結果參與程序

    JS 運算符分類

    • 算數運算符(?+?/?-?/?*?/?/?/?%?)
      • 運算順序與數學中的運算順序一致,先乘除取余,后加減,有小括號先算小括號
    • 賦值運算符(?=?/?+=?/?-=?/?*=?/?/=?/?%=?)
    • 比較運算符(?>?/?<?/?>=?/?<=?/?==?/?===?/?!=?/?!==?)
      • 比較結果只會返回一個布爾類型值,true 或者 false
    • 邏輯運算符(?&&?/?||?/?!?)
    • 自增自減運算符(?++?/?--?)

    運算符優先級從高到低

    • 自增自減運算符++ -- !
    • 算術運算符 先* / % 后+ -
    • 比較運算符中的 > >= < <=
    • 比較運算符中的 == != === !==
    • 邏輯運算符 先&& 后||
    • 賦值運算符

    JS分支語句

    • JS 代碼是從上往下按照順序依次執行的, 從第一行代碼一直執行到最后一行
    • 如果有一種情況是我有兩段代碼, 我只需要執行其中一個即可, 那么就可以用到分支語句
    • 簡單來說: 分支語句就是根據我們設定好的條件來決定要不要執行某些代碼

    if 分支語句

    • if 分支語句的基本書寫
      • 語法:?if (條件) { 想要執行的代碼 }
      if (true) {console.log('因為條件是 true 所以 我可以打印出來') } /*語法分析:if: 關鍵字,表明后續是一段if分支語句(): 小括號內部填寫條件, 用于決定是否執行后續內容{}: 花括號內部填寫要執行的分支代碼, 如果條件為真, 則會執行 */
    • if ... else 語句的基本書寫
      • 語法:?if (條件) { 條件為真時 執行的代碼 } else { 條件為假時 執行的代碼 }
      if (true) {console.log('因為條件是 true 所以 我可以打印出來') } else {console.log('因為條件是 true 所以 我不會被打印') } if (false) {console.log('因為條件是 false 所以 我不會被打印') } else {console.log('因為條件是 false 所以 我可以打印出來') } /*** 語法分析:if: 關鍵字,表明后續是一段if分支語句(): 小括號內部填寫條件, 用于決定是否執行后續內容{}: 花括號內部填寫要執行的分支代碼, 如果條件為真, 則會執行else: 表明前邊條件都為false時,執行后續的花括號內的代碼*/ 復制代碼
    • if 嵌套語句的基本書寫
      • 可以通過?if?和?else if?來設置多個條件進行判斷
      • 語法:?if(條件1){條件1為true時執行} else if (條件2){條件2為true時執行}
      • 會從頭開始依次判斷條件
      • 如果第一個條件為 true 了, 那么就會執行后面的 {} 的內容
      • 如果第一個條件為 false, 那么就會判斷第二個條件
      • 如果第二個條件也為 false, 那么會依次往后執行
      • 注意
      • 多個 {} 只會有一個被執行, 一旦有一個條件為 true 了, 后面的就不再判斷了
      • 如果所有的 條件都為 false, 那么會執行最后的 else {} 分支
      • 如果所有的條件都為 false, 且沒有最后的 else {} 分支, 那么當前 if 分支不會有任何代碼段會被執行

    switch 分支語句

    • switch 也是 條件判斷語句的一種, 是對于某一個變量的判斷(三個等于號全等的判斷,數據類型不一致時會導致判斷失敗)
      • switch 分支語句的基本書寫
      switch (要判斷的變量) {case 情況1:情況1執行的代碼break;case 情況2:情況2執行的代碼break;case 情況3:情況3執行的代碼break;default:上述情況都不滿足時執行的代碼 } 復制代碼
      • switch 通常是判斷某一個變量等于某一個值的時候使用, 比如用戶輸入一個數字顯示今天周幾, 輸入一個數字顯示今天是幾月
    • switch 穿透語句的基本書寫
      • 從第一個滿足條件的 case 開始

      • 如果沒有 break, 一直執行代碼直到遇到一個 break 或者 switch 結束

    三元表達式

    • 三元表達式(三元運算/三目運算/三目/問號冒號表達式)
    • 語法: 條件 ? 條件正確時執行的代碼 :條件不正確時執行的代碼

    // 給變量賦值 var num = 1 // 我們暫且規定 num == 1 時代表為男性,
    num == 2 時代表為女性
    var gender = num == 1 ? '男' : '女' console.log(gender)

    # 循環語句

    • 什么是循環語句
      • 根據某些給出的條件,重復執行同一段代碼
    • 循環必須要有某些固定的內容組成
      • 初始化
      • 條件判斷
      • 要執行的代碼
      • 自身改變

    while 循環語句

    • while,中文叫 當…時,其實就是當條件滿足時就執行代碼,一旦不滿足了就不執行了
    • 語法?while (條件) { 滿足條件就會執行 }
    • 因為滿足條件就執行, 所以我們寫的時候一定要注意, 就是設定一個邊界值, 不然就一直循環下去了, 簡稱: 死循環, 電腦卡死的時間根據電腦性能有所不同, 建議不要嘗試
    // 1. 初始化條件 var num = 0 // 條件判斷 while (num < 10) {// 3. 要執行的代碼console.log('當前 num 的值是: ', num)// 4. 自身改變num += 1 // 如果沒有這行代碼, 那么自身就沒有改變, 條件將會一直滿足, 代碼也就會一直執行 } 復制代碼

    do...while 循環語句

    • 是一個和 while 循環類似的循環
    • while 會先進行條件判斷, 滿足就執行, 不滿足就直接不執行了
    • do...while 的循環是 先不管條件, 先執行一次, 然后再開始進行條件判斷
    • 語法:?do { 要執行的代碼 } while (條件)
    // 1. 初始化 var num = 10; do {// 3. 要執行的代碼console.log('我執行了一次')// 4. 自身改變num += 1 // 2. 條件判斷 } while (num < 10) 復制代碼

    for 循環語句

    • 和 while do while 循環都不太一樣的一種循環結構
    • 但道理是和其他兩種一樣的, 都是循環執行代碼的
    • 語法:?for (var i = 0; i < 10; i++) { 要執行的代碼 }
    // 把初始化, 條件判斷, 自身改變, 都統一寫在了一起 for (var i = 1; i <= 10; i++) {console.log(i) // 會打印 1~10 } // 初次使用時會覺得有一點繁瑣與不習慣, 但是用起來比較好用 復制代碼

    流程控制語句

    • break 關鍵字的應用
      • 在循環沒有進行完畢的時候, 因為我設置的條件滿足了, 就直接提前終止循環
      • 舉個例子: 我要吃五個包子, 我吃了三個了, 這時候吃飽了吃不下去了, 我就停止了繼續吃包子這件事
      • 那么此時要停止循環, 就可以直接使用 break 關鍵字
    for (var i = 1; i <= 5; i++) {// 每循環一次,就吃一個包子console.log('我吃了一個包子')// 當 i == 3 的時候, 條件為 true, 執行了 {} 里面的代碼終止循環, 循環就不會繼續向下執行了, 也就沒有 4 和 5 了if (i == 3) {break} } 復制代碼
    • continue 關鍵字的應用
      • 在循環中, 把循環的本次跳過去, 繼續執行后續的循環
      • 舉個例子: 還是吃五個包子, 要吃第三個的時候, 第三個掉地上了, 所以就不吃第三個了, 繼續吃第四個和第五個
      • 跳過本次循環, 就可以使用 continue 關鍵字
    for (var i = 1; i <= 5; i++) {// 當 i == 3 的時候, 執行 {} 里面的代碼// {} 里面有 continue, 那么本次循環后面的代碼就都不執行了// 自動算作 i 為 3 的這一次結束了, 去繼續執行 i == 4 的那次循環if (i == 3) {console.log('這是第三個包子, 掉地下了, 我不吃了')continue}console.log('我吃了一個包子') } 復制代碼

    循環嵌套的書寫

    • 循環嵌套其實就是一個循環內部又寫了一個循環
    for (var i = 0; i < 3; i++) { // 這個循環稱為 外層循環for (var k = 1; k < 4; k++) { // 這個循環稱為 內層循環/*** 重點!!!* 兩個循環的循環變量不能相同, 會有沖突*/} }

    函數

    • 什么是函數?
      • 在 JS 中,函數可以理解為將一段在程序中多次出現的代碼封裝起來的盒子,以便在多個地方調用執行
      • 換句話說:函數就是一個內部封裝了部分代碼的盒子,可以在多個位置被調用
    • 函數的使用
      • 創建函數(定義函數)
      • 調用函數

    函數的定義

    • 聲明式定義
    function fn() {} /*** 分析:* function:聲明函數的關鍵字,代表接下來這段代碼是一個函數* fn:函數名,調用函數時需要使用,函數名自定義,符合命名規范和見名知意即可(!** 匿名函數時可以不寫)* ():小括號內存放函數的參數(后續講解)* {}:存放函數代碼,調用函數時,想執行的代碼都寫在內部 */ 復制代碼
    • 賦值式定義
    var fn = function () {} 復制代碼

    函數的調用

    function fn1() {} var fn2 = function () {}fn1() fn2() 復制代碼

    聲明式與賦值式的區別

    • 書寫區別
    • 調用區別(賦值式只可以在定義后調用,聲明式定義前后都可以)
    // 聲明式 fn1() // 可以執行 function fn1(){// 函數代碼。。。。。。 } fn1() // 可以執行fn2() // 不可以執行(!** 聲明時編程,其實就是相當于將一個函數賦值給一個變量,會有變量的聲明提升,所以在變量聲明前調用時,根據變量聲明提升的規則,此時變量為 undefined ,所以不能被調用) var fn2 = function () {// 函數代碼。。。。。。。。。 } fn2() // 可以執行 復制代碼

    函數的參數

    • 函數的參數有形參和實參(他們是從左到右的順序一一對應的)
      • 形參:在函數聲明時 function 后邊的()內書寫,每寫一個參數,就相當于在函數內部創建一個變量,其值為函數調用時傳遞的值,只能在函數內部使用,不能在外部使用
      • 實參:顧名思義,實際的參數,也就是函數在調用時傳遞的參數
    function num () {console.log(1 + 1) } num() // 打印值為 1+1function num (a, b) { // 此處 a b 為形參console.log(a + b) } num(1, 1) // 此處為 實參,分別傳遞給 a 和 b num(1, 2) // 此處打印值為 1 + 2 復制代碼
    • 傳參的多與少
    // 少傳參數 function num1(a, b, c, d) {console.log(a,b,c,d) } num1(1, 2, 3, 4) // 打印1,2,3,4 num1(1, 2, 4) // 打印1,2,4,undefined 一一對應的少傳實參會打印underfined// 多傳參數 function num2 (a) {console.log(a) } num2(1, 2) // 打印 1 一一對應多出來的實參不接收,不執行 復制代碼

    函數的返回值

    • 返回值是什么?有什么作用
      • 函數內部默認有一個 return 他的值就是函數的返回值,如果函數內部不寫 return 那么函數默認在函數體內部最底部返回一個 undefined
      • 如果不想返回 undefined 需要手動在函數內部寫上 return 并且跟上需要返回的值
      • 可以中斷函數(返回1 2 3return后面的代碼會終止)
      function fun() {console.log(1)console.log(2)console.log(3)return '下面就沒了'console.log(4)console.log(5)} fun() 復制代碼

    函數的預解析

    • 什么是預解析
      • 在代碼運行前,先全部分析一遍代碼,這個行為叫做預解析(預解釋)
    • 預解析的內容
      • 聲明式函數定義
      • var 聲明變量
    //預解析就是將函數提升 fn()function fn() {console.log('我是函數我被調用了')}提升后變成 function fn(){console.log('我是函數我被調用了')}fn()

    ??作用域(就是變量可以起作用的范圍)
    - ? ? ? ? ?作用域分為兩個
    - ? ? ? ? 1.全局作用域(直接在script 標簽內部書寫的代碼)
    ? ? ? ? 在此作用域創建的變量,我們叫做全局變量,在當前 script 標簽內的哪里都能使用
    ? ? ? ? ?在 JS中,全局作用域中有一個 ?提前給我們準備好的 對象(一種數據格式,)
    ? ? ? ? ?這個對象叫做window
    ? ? ? ? ?我們創建的全局變量,只能在當前作用域中使用,超出這個作用域(也就是在函數外邊)去使用, 就會找不到變量
    ? ? ? ? ?
    ?作用域鏈
    - ? ? ? ? ?作用域鏈就是在訪問一個變量的時候, 如果當前作用域內沒有
    - ? ? ? ? ?會去自己的父級作用域, 也就是上一層作用域內查找, 如果找到就直接使用, 如果沒有找到繼續向上層查找
    - ? ? ? ? ?直到查找到 最頂層的全局作用域, 如果找到了直接使用, 如果沒找到 報錯提示變量不存在(未定義)
    - ? ? ? ? ?我們將這個一層一層向上查找的規律, 叫做作用域鏈

    遞歸函數(還是一個函數,在函數內部調用和使用自身)
    ? ? 和循環差不多
    ?

    function fn(n) {return n * fn(n - 1)}fn(4)//4的階乘

    ?對象
    對象是JS中的一種數據格式,對象在 JS 中的數據類型數據為: 引用數據類型(復雜數據類型)<br>
    ? ? ? ? 鍵值對 -> key: value
    ? ? ? 如果對象內部有多個 鍵值對, 那么需要使用 逗號 間隔 <br> ?
    ? ? ??
    ? ? ? ? 語法1: var obj = {鍵值對}
    ? ? ? ? ?
    創建對象
    ? ? ?創建對象 ? 分為兩種方式:
    ? ? ? ? ? 1.字面量的形式(使用頻率比較高)
    ? ? ? ? ? 語法;var obj={鍵值對}
    ? ? ? ? ? 2.內部構造函數的創建
    ? ? ? ? ? ? ? ? 語法1: var obj1=new Object()//創建空對象
    ? ? ? ? ? ? ? ? 語法2: ?var obj2=new ?Object({a : 1, b : 2}) //創建一個具有屬性或者說具有鍵值對的 對象
    ? ? ? ? ? ? ?
    ? ? ? ?

    ?例:var obj1 = new Object({a: 10,r: '34',g: 45,d: undefined})console.log(obj1)注意:new ?Object ?的O是大寫 ?,不是小寫


    ??
    對象的操作 (增刪改查)
    ?

    ?var obj = {a: 12,b: true,v: '123'//}console.log('原始對象: ', obj)//{a: 12, b: true, v: '123'}//點語法增刪改查1.增obj.q = 'afaf'obj.d = 'false'console.log('修改后的值: ', obj)//{a: 12, b: true, v: '123', q: 'afaf', d: 'false'}?2.刪?delete obj.adelete obj.bconsole.log('修改后的值: ', obj)//{v: '123', q: 'afaf', d: 'false'}3.改?obj.a = '34'obj.b = 'false'console.log('修改后的值: ', obj)//{v: '123', q: 'afaf', d: 'false', a: '34', b: 'false'}4.查?console.log(obj.a)//34console.log(obj.v)//123//中括號語法增刪改查obj['f'] = 100obj['g'] = '300'console.log('修改后的值: ', obj)delete obj['a']delete obj['b']console.log('修改后的值: ', obj)obj['a'] = falseobj['b'] = 'qwer'console.log('修改后的值: ', obj)console.log(obj['a'])console.log(obj['b'])console.log('修改后的值: ', obj)


    ?一般大部分情況下,點語法與中括號語法,作用相同,怎么選擇都可以
    ? ? ? ? 特殊情況下我們需要中括號語法
    ? ? ? ? ?1.對象的屬性名,有純數字或者特殊符號(100,'!','@'),這個時候,就只能使用中括號語法
    ? ? ? ? ?2.如果涉及變量相關的時候,也需要中括號語法
    ? ?
    ? ? ?

    // 特殊情況var obj = {100: '我的屬性名是 純數字 100'// ' ! ': '我的屬性名是 特殊符號 !'// '@': '我的屬性名是 特殊符號 @'}//此時不能使用點語法,可以使用中括號語法//console.log(obj.100)//console.log(obj.!)//console.log(obj.@)console.log(obj[100])console.log(obj['100'])//console.log(obj[!]) //有問題需要用引號將!包裹console.log(obj['!'])console.log(obj['@'])#?

    ?for...in 循環遍歷對象
    ? ? ? ? ? 語法: for (var i in 要遍歷的對象) { 循環要執行的代碼 }
    ? ? ? ? ? '遍歷對象' 想辦法拿到對象內部所有的 屬性名與屬性值? ? ? ?

    ?var obj = {a: 2,e: 3,c: 4}for (var i in obj) {// console.log(1)// console.log(i) ?// a e c ?這是對象 ?是 對象 obj 的 所有 ? ? ? 屬性名 / 鍵名 / key// 需求: 打印對象所有的屬性值// console.log(obj) ? ?// 此時打印的是完整的對象, 所以不合適// console.log(obj.i) ?// undefined ?點語法會將后邊的字符當成字符串來使用, 而不是當成變量, 如果相當變量來使用, 那么應該使用中括號語法console.log(obj[i]) // 該對象的所有屬性值}?


    ?
    ? ??
    ?創建數組的方法
    ? ?分兩種方式
    ? ? ? ? ? 1.字面量方式
    ? ? ? ? ? ?語法:var arr =[1, 2, 3, 'qwe', true]
    ? ? ? ? ? 2.構造函數的方式
    ? ? ? ? ? ?語法1:var arr = new Array() ?創建一個空對象
    ? ? ? ? ? ?語法2:var arr = new Array(5)創建一個有長度的數組
    ? ? ? ? ? ?語法3; ? var arr = new Array(1,2,3)創建一個有內容的數組?
    ? ? ?
    ? ? ? ?

    //1.字面量的方式var arr = [1, 2, 3, 'qwe', true]console.log(arr)//2. 內置構造函數的方式//2.1創建一個空數組var arr1 = new Array()console.log(arr1)//2.2創建一個有長度的數組var arr2 = new Array(5)console.log(arr2)//2.3創建一個有內容的數組var arr3 = new Array(1, 2, 3, 'qwe', true)console.log(arr3) ?


    ? ? ? ??
    ? ? ? ??
    ? 數組的length 屬性
    ? ? ? ? ? length翻譯過來就是長度的意思
    ? ? ? ? ? ? ? ?代表這個數組內,有多少個成員
    ? ? ? ? ? ? ? 語法: ? 數組名.length
    ? ?

    ? 例子:?var arr = [5, 2, 1, 'qwer']var arr1 = [1, 3, 1, 4, 5]console.log(arr.length)//4 長度為4console.log(arr1.length)//5 ? 長度為5??


    ? ? ? ??
    ??
    ?數組的索引(下標)
    ? ? ? ? 就是指一個數據,在這個數組內排列在第幾個 ?位置上
    ? ? ? ? 注意: ?在JS 中,索引(下標)是從0開始計如果想要獲取到數組指定位置的值,可以通過下標來獲取

    ? ? ? ? 語法:數組名[下標] --> 能夠獲取到這個數組中對應下標的成員具體的值
    ? ?

    例子:var arr = ['q', 'w', 'd', 3, 2, 1]// 0 ? ?1 ? 2 ? 3 ?4 ?5console.log(arr[1])//wconsole.log(arr[2])//dconsole.log(arr) ?//?['q', 'w', 'd', 3, 2, 1]


    ? ??遍歷數組
    ? ? ? ? ? 想辦法 ?拿到 ?數組每一個成員
    ? ? ? ? ? 想拿到數組的所有成員,需要先想辦法拿到數組所有的下標
    ? ? ? ? ? 規律: ?所有數組的下標都是從0開始的, ?然后 到 ?數組 .length - 1 結束
    ? ? ? ??
    ? ? ?

    ? var arr = ['a', 'b', 'c', 1, 2, 3]// ? ? ? ? ?0 ? ?1 ? ?2 ? 3 ?4 ?5var arr1 = ['a', 'b', 'c', 1, 2]// ? ? ? ? ? 0 ? ?1 ? ?2 ? 3 ?4console.log(arr)console.log(arr1)for (var i = 0; i < arr.length; i++) {//拿到arr這個數組所有下標//console.log(i) //0 1 2 3 4 5//拿到數組所有的值 ?輸出在控制臺console.log(arr[i]) //a b c 1 2 3}?


    ? ? ? ??
    ?冒泡排序:
    ? ? ?屬于數組排序的算法之一(通過一種算法將一個亂序的數組,調整為指定的排序的數組,從大到小或者從小到大)

    選擇排序
    ? ? 原理 首先從原始數組中找到最小的元素,并把該元素放在數組的最前面,然后再從剩下的元素中尋找最小的元素,放在之前最小元素的后面,直到排序完畢。

    數據類型之間的區別(分為兩種)
    ?1.基本數據類型(簡單數據類型)
    ?2. 引用數據類型(復雜數據類型)
    ##### 1. 存儲
    ? ? ? ? ? ?變量的數據存儲的地方是 內存中, 內存分為兩個 棧內存, 堆內存
    ? ? ? ? ? ? 基本數據類型:存儲在 棧內存中, 比如: string number undefined null ?boolean
    ? ? ? ? ? ? 復雜數據類型: 將數據本體存放在堆內存中, 比如對象或者數組或者函數
    ? ? ? ? ? ? 然后將指向該內存的地址, 存放在數組名或者對象名或者函數名中
    ? ? ? ? ? ? 數組/對象/函數 ?名 ?存放在 棧內存中
    ? 面試題: 數據類型之間有什么區別?
    ? ? ? ? ? 基本數據類型有哪些, 然后他們存儲的地方是 棧內存中
    ? ? ? ? ? 引用數據類型有哪些, 然后他們數據本體存放的地方是 堆內存中, 然后變量名存儲的位置是 棧內存中
    ? ? ? ? ? 基本數據類型內部存儲的是值; 引用數據類型內部存儲的是地址
    ? ? ? ? ?
    ##### 2. 賦值
    ? ? ? ? ? ? ? ? ? ? 基本數據類型: 賦值以后, 兩個變量之間沒有任何關系, 相當于將我自己的某一個東西, 復制一份給你, 然后你的就是你的, 我的就是我的(你的和我的之間沒有任何關系) ? ? ? ? ?
    ? ? ? ? ? ? ? ? ??
    ? ? ? ? ? ? ? ? ? ? 復雜數據類型: 因為變量內部存儲的是指向堆內存的地址, 所以在賦值的時候, 其實是將 這個地址給到了另外一個變量(兩個地址一樣是你的也是我的)
    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 那么相當于這兩個變量存儲的是 ?同一個 鑰匙, 所以操作其中一個變量的時候, 會影響另外一個變量

    ##### 3. 比較
    ? ? ? ? ? ? ? ? ? ? 基本數據類型: 就是 值 的比較
    ? ? ? ? ? ? ? ? ? ? 引用數據類型: 比較的時候 比較的是 存儲地址

    ##### 4. 傳參
    ? ? ? ? ? ? ? ? ? ? 基本數據類型: 將值拷貝一份傳遞給形參, 在函數內修改不會影響外界
    ? ? ? ? ? ? ? ? ? ? 引用數據類型: 將存儲地址賦值給形參, 在函數內修改會影響外界
    ? ? ? ? ? ? ? ? ?
    數組的常用方法

    ? 1、push?
    ? ? ? ?語法:數組.push(數據)
    ? ? ? ?作用:向數組末尾添加數據
    ? ? ? ?返回值:追加數據后,數組最新長度(length)
    ? 2.pop
    ? ? ? ?語法:數組.pop()
    ? ? ? ?作用:刪除數組最后一條數據
    ? ? ? ?返回值:被刪除的數據
    ? 3.unshift
    ? ? ? ?語法:數組.unshift(數據)
    ? ? ? ?作用:像數組開頭添加數據
    ? ? ? ?返回值:添加數組后,數組最新長度(length)
    ? 4.shift ?
    ? ? ? ?語法:數組.shift()
    ? ? ? ?作用:刪除數組開頭數據
    ? ? ? ?返回值:被刪除的數據
    ?5.reverse
    ? ? ? ?語法:數組.reverse()
    ? ? ? ?作用:反轉數組
    ? ? ? ?返回值:反轉后的數組
    ?6.sort
    ? ? ? ? 語法1:數組.sort()
    ? ? ? ? 作用:會將數組轉換為字符串后 ,一位一位的對比
    ? ? ? ? 語法2:.sort(function(a,b){return a - b})
    ? ? ? ? 作用:會按照數組大小升序排列
    ? ? ? ? ?語法3: ?.sort(function(a,b){return b - a})?
    ? ? ? ? 作用:會按照數組大小降序排列(不能轉的按照原始數組排列)
    ? ? ? ? 返回值:排序后的數組
    ?7.splice
    ? ? ? ? ?語法1:數組.splice(開始索引,多少個)
    ? ? ? ? ?作用:截取數組部分內容 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?語法2:數組.splice(開始索引,多少個,插入的數據1,插入的數據2,插入的數據3.......)
    ? ? ? ? ?作用:截取數組部分內容,并插入新的數據
    ? ? ? ? ?返回值:截取出來的部分內容 ?組成的 數組
    ?8.slice
    ? ? ? ? 語法:數組.slice(開始索引,結束索引) ??
    ? ? ? ? 參數:
    ? ? ? ? ? ?+包前不包后:包含開始索引位置的數據不包含結束索引的位置的數據 ??
    ? ? ? ? ? ?+不寫開始索引:默認從0開始;不寫結束索引默認 是 數組的length
    ? ? ? ? ? ?+ 參數支持寫負數,表示倒數幾個 ,其實就是 ?length + 負數
    ? ? ? ? ?作用:截取數組部分索引
    ? ? ? ? ?返回值:截取出來的部分 內容組成的新數組
    ? ??
    ? ? ? ? ?* 面試題:數組中有兩個方法,splice ?和slice,你能描述一下他們兩個的區別嗎?
    ? ? ? ? ?1.參數含義不同 ? ?介紹一下 參數哪里不同
    ? ? ? ? ?2.splice 會改變原數組,而slice不會
    ?
    ?9.concat
    ? ? ? ? ?語法:原始數組.concat(數組1,數組2,數組3,......,數據1,數據2,.......)
    ? ? ? ? ?作用:進行數組拼接,把數組...數據之類的小括號內的內容,拼接在原始數組中
    ? ? ? ? 返回值:拼接好的數組
    ?10.join
    ? ? ? ? ?語法:數組.join('連接符')
    ? ? ? ? ?作用:使用"連接符",把數組內的每一個數據連接成一個字符串(不寫連接符默認使用,連接)
    ? ? ? ? ?返回值:連接好的字符串
    11.indexOf
    ? ? ? ? ?語法1:數組.indexOf(要檢查的數據)
    ? ? ? ? ?作用:從前到后(從左到右)檢查該數據第一次在該數組內出現 索引
    ? ? ? ? ?語法2:數組.indexOf(要檢查的數據,開始索引)
    ? ? ? ? ?作用:在開始索引的位置,按照從左到右的順序,檢查該數據第一次在該數組內出現的索引
    ? ? ? ? ?返回值:找到數據的情況下,會將數據第一次出現下標[索引]返回
    ? ? ? ? ?沒找到的情況下,會直接返回一個 ?-1
    ? ? ? ? ?備注:開始索引不寫默認是 0
    12.lastIndexOf
    ? ? ? ? 語法1:數組.lastIndexOf (要檢查的數據)?
    ? ? ? ? 作用:從后向前(從右向左)檢查該數據第一次在該數組內出現 索引
    ? ? ? ? 語法2:數組.lastIndexOf(要檢查的數據,開始索引)
    ? ? ? ? 作用:在開始索引的位置,按照從右向左的順序,檢查該數據第一次在該數組內出現的索引
    ? ? ? ? 返回值:找到數據的情況下,返回第一次出現的下標[索引]
    ? ? ? ??
    ? ? ? ? 沒找到的情況下,會直接返回一個 ?-1

    遍歷數組的常用方法

    ? 1.forEach
    ? ? ? ? ? ? ? ?語法:數組.forEach(function(item,index,origin){})
    ? ? ? ? ? ? ? ?item:數組的每一項 ?的值
    ? ? ? ? ? ? ? ?index:數組的每一項 對應的下標
    ? ? ? ? ? ? ? ? origin:原始數組(了解即可,一般不會用)
    ? ? ? ? ? ? ? ? 作用:遍歷數組
    ? ? ? ? ? ? ? ? 返回值:該方法永遠沒有返回值(undefined)
    ? ? ? ? ? ? ?2.map
    ? ? ? ? ? ? ? ? 語法:數組.map(function(item,index,origin){ }) 三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ?作用:映射數組
    ? ? ? ? ? ? ? ?返回值:返回一個和原數組長度相同的數組,但是內部數據可以經過我們的映射加工
    ? ? ? ? ? ? ? ?映射加工:就是在函數內 以 return 的形式 書寫
    ? ? ? ? ??
    ? ? ? ? ? ? ?有一道面試題:數組常用的遍歷方法有一個 forEach和map ,這兩個方法有什么區別?
    ? ? ? ? ? ? ? ? ? ? ?1.forEach 的作用是來遍歷數組,而map 的作用是用來映射數組
    ? ? ? ? ? ? ? ? ? ? ?2.forEach沒有返回值,而map是可以有返回值的
    ? ? ? ? ??
    ? ? ? ? ? ? ? 3 . filter
    ? ? ? ? ? ? ? ? ? ?語法:數組.filter(function(item,index,origin){}) ? ? ? ? ? ? 三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ? ? ? ? 作用:過濾數組
    ? ? ? ? ? ? ? ? ? ? 返回值:返回一個新數組,內部存儲的值是原始數組過濾出來的部分內容
    ? ? ? ? ? ? ? ? ? ?過濾條件:過濾條件以return 的形式書寫
    ? ? ? ? ??
    ? ? ? ? ? ? ?4.find
    ? ? ? ? ? ? ? ? ? ?語法:數組.find(function(item,index,origin){}) ? ? ? ? ? ? ? ? ?三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ? ? ? ?作用:在數組內查找滿足條件的第一項
    ? ? ? ? ? ? ? ? ? ?返回值:找到的數據,如果沒有找到返回undefined
    ? ? ? ? ? ? ? ? ? ?查找條件以 return 的形式書寫
    ? ? ? ? ? ? 5.findIndex
    ? ? ? ? ? ? ? ? ? ?語法:數組.findIndex(function(item,index,origin){}) ? ? ? ? ? ? ? ? ?三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ? ? ? ?作用:在數組內查找滿足條件的第一項 的下標
    ? ? ? ? ? ? ? ? ? ?返回值:找到的數據 的下標 ,如果沒有找到返回 的是 ?-1
    ? ? ? ? ? ? ? ? ? ?查找條件以 return 的形式書寫
    ? ? ? ? ??
    ? ? ? ? ? ? ? ? 6.some
    ? ? ? ? ? ? ? ? ? 語法:數組.some(function(item,index,origin){}) ? ? ? ? ? ? ? ? ?三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ? ? ? ?作用:判斷數組內是否有一個滿足條件
    ? ? ? ? ? ? ? ? ? ?返回值:一個布爾值 ? true/false
    ? ? ? ? ? ? ? ? ? ?判斷條件以 return ?形式書寫
    ? ? ? ? ?
    ? ? ? ? ? ? ? ?7.every
    ? ? ? ? ? ? ? ? ? ? 語法:數組.every(function(item,index,origin){}) ? ? ? ? ? ? ? ? ?三個參數的意義與foreach 一樣
    ? ? ? ? ? ? ? ? ? ? 作用:判斷數組內是否全部滿足條件
    ? ? ? ? ? ? ? ? ? ? 返回值: 一個布爾值 ? true/false
    ? ? ? ? ? ? ? ? ? ? 判斷條件以 return ?形式書寫
    ? ? ? ? ? ? ??
    ? ? ? ? ? ? ? ? 8.reduce
    ? ? ? ? ? ? ? ? ? ?語法:數組.reduce(function(prev,item,index,origin){},init) ??
    ? ? ? ? ? ? ? ? ? ? prev:表示初始值或上一次運算的值
    ? ? ? ? ? ? ? ? ? ? item:表述數組每一項的值
    ? ? ? ? ? ? ? ? ? ? index:表示數組每一項 的下標 [索引] ?
    ? ? ? ? ? ? ? ? ? ? origin:原始數組
    ? ? ? ? ? ? ? ? ? ? 作用:用來實現疊加效果
    ? ? ? ? ? ? ? ? ? ? 返回值:最終疊加的結果
    ? ? ? ? ? ? ? ? ? 注意:
    ? ? ? ? ? ? ? ? ? ? ? ?+疊加條件以return 的形式書寫
    ? ? ? ? ? ? ? ? ? ? ? ?+prev 第一次的值,如果你傳遞了 init,就是init的值,如果沒有傳遞init,那么就是數組[0]的值
    ? ? ? ? ? ? ? ? ? ? ? ?+如果傳遞了init,循環執行數組.length次,如果沒有傳遞init,循環執行數組.length-1次
    ? ? ? ??
    ? ? ? ??
    ? ?數組塌陷
    ? ?數組塌陷現象:在對數組進行操作的時候,會使數組的長度產生變化,同時操作的數組那個項的下一個索引會被跳過,從而造成數組的某項會被跳過,這種叫做數組塌陷現象。
    ? ?解決辦法:就是在對數組某項進行操作之后,手動將索引值 i --,保持數組每一項都被遍歷。
    ? ?
    數學的方法
    ? ? ? ? ? ?
    ? ? ? ? ? ? ?在JS 中Math 對象給我們提供了操作數據的一些方法(數學方法)
    ? ? ? ? ? ? ?1.random
    ? ? ? ? ? ? ?語法:math.random()
    ? ? ? ? ? ? ?作用:得到一個隨機數,每次生成的數字都不一樣,但一定是0~1之間的,包含0不包含1,也就是說最大值可能是0.999999999999999
    ? ? ? ? ??
    ? ? ? ? ? ? ? 2.round
    ? ? ? ? ? ? ?語法:Math.round(數字)
    ? ? ? ? ? ? ?作用:將這個數字(小數),按照四舍五入變成整數
    ? ? ? ? ??
    ? ? ? ? ? ? ? 3.ceil
    ? ? ? ? ? ? ?語法:Math.ceil(數字)
    ? ? ? ? ? ? ? 作用:將這個數字(小數)向上取整
    ? ? ? ? ??
    ? ? ? ? ? ? ? 4.floor
    ? ? ? ? ? ? ? ?語法:Math.floor(數字)
    ? ? ? ? ? ? ? ?作用:將這個數字(小數)向下取整
    ? ? ? ? ??
    ? ? ? ? ? ? ? ? 5.abs
    ? ? ? ? ? ? ? ?語法:Math.abs(數字)
    ? ? ? ? ? ? ? ?作用:返回這個數字的絕對值
    ? ? ? ? ??
    ? ? ? ? ? ? ? ? 6.sqrt
    ? ? ? ? ? ? ? ? 語法:Math.sqrt(數字)
    ? ? ? ? ? ? ? ? 作用:求 平方根
    ? ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? ?7.pow
    ? ? ? ? ? ? ? ? 語法:Math.pow(基數,冪)
    ? ? ? ? ? ? ? ? 作用:返回基數的幾次冪(幾的幾次方乘積)
    ? ? ? ? ? ? ?
    ? ? ? ? ? ? ? ? ?8.max
    ? ? ? ? ? ? ? ? ? 語法:Math.max(數字1,數字2,數字3.......)
    ? ? ? ? ? ? ? ? ?作用:返回傳入數字中最大的那一個
    ? ? ? ? ??
    ? ? ? ? ? ? ? ? ?9.min
    ? ? ? ? ? ? ? 語法:Math.min(數字1,數字2,數字3.......)
    ? ? ? ? ? ? ? ? 作用:返回傳入數字中最小的那一個
    ? ? ? ? ??
    ? ? ? ? ? ? ? ? ?10.pI(i是大寫)
    ? ? ? ? ? ? ? ? 語法:Math.pI
    ? ? ? ? ? ? ? ? ? 作用:返回π ? //3.1415926
    ? ? ? ? ?js嚴格模式

    ? ? ? ? ? 1.聲明變量必須要 var 關鍵字

    ? ? ? ? ? 2.函數的形參不可以重復
    ? ? ? ? ? ?對自己書寫的代碼做一個要求
    ? ? ? ? ? ?寫在script代碼最開始的第一行,寫字符串形式'use strict'

    ?字符串

    創建字符串的方式

    ? ? ? ? ? ? ?1.字面量的形式創建字符串

    ? ? ? ? ? ? ? ? ? ? ?var str = '123'

    ? ? ? ? ? ? ?2.內置構造函數的形式創建字符串

    ? ? ? ? ? ? ? ? ? ? ?var str = new String() ?

    ?字符串的length與下標

    ? ? ? ? ? ? ? ?length與下標的含義與數組中的一樣

    ? ? ? ? ? ? ? ?length:長度

    ? ? ? ? ? ? ? ?索引(下標):獲取到字符串中指定位置的

    ? ? ? ? ? ? ? ?注意:字符串中通過索引能夠獲取到指定位置的值,只不過獲取到的值是 ?只讀的 (能看不能改)

    ?字符串的常用方法

    ? ? ? ? ? ? 1.charAt

    ? ? ? ? ? ? ? 語法:字符串.charAt(索引)

    ? ? ? ? ? ? ? 作用:查詢指定下標的值

    ? ? ? ? ? ? ? 返回值:查詢到的值,如果沒有查詢到就是一個 空字符串

    ? ? ? ? ? ? 2.charCodeAt

    ? ? ? ? ? ? ? ?語法:字符串.charCodeAt (索引)

    ? ? ? ? ? ? ? ?作用:查詢指定下標的值 ?對應的十進制碼

    ? ? ? ? ? ? ? ?返回值:查詢到的值對應的十進制碼,如果沒有查詢到會返回一個NaN

    ? ? ? ? ? ? 3.toLowerCase ?

    ? ? ? ? ? ? ? ?語法:字符串.toLowerCase () ?

    ? ? ? ? ? ? ? ?作用:將這個字符串轉換為小寫

    ? ? ? ? ? ? ? ?返回值:轉換后的字符串

    ? ? ? ? ? ? 4.toUpperCase

    ? ? ? ? ? ? ? ?語法:字符串.toUpperCase ()

    ? ? ? ? ? ? ? ?作用:將這個字符串轉換為大寫

    ? ? ? ? ? ? ? ?返回值:轉換后的字符串

    ? ? ? ? ? ?1.substr

    ? ? ? ? ? ? ? ? 語法:字符串.substr(開始索引,多少個)

    ? ? ? ? ? ? ? ? 作用:截取指定的字符串

    ? ? ? ? ? ? ? ? 返回值:截取到的字符串

    ? ? ? ? ? ? ? ? 注意:官方說明這個方法將來某一天可能會刪除,所以建議我們使用 ?substring

    ? ? ? ? ? ? ?2.substring

    ? ? ? ? ? ? ? ? 語法:字符串.substring(開始索引,結束索引)

    ? ? ? ? ? ? ? ? 作用:截取指定的字符串

    ? ? ? ? ? ? ? ? 返回值:截取到的字符串

    ? ? ? ? ? ? ? ? 注意:

    ? ? ? ? ? ? ? ? ? ? ? 1.參數包前不包后

    ? ? ? ? ? ? ? ? ? ? ? 2.結束索引可以不寫,相當于寫了length

    ? ? ? ? ? ? ?3.slice(建議使用)

    ? ? ? ? ? ? ? ?語法:字符串.slice(開始索引,結束索引)

    ? ? ? ? ? ? ? ?作用:截取指定的字符串

    ? ? ? ? ? ? ? ?返回值:截取到的字符串

    ? ? ? ? ? ? ? ?注意:

    ? ? ? ? ? ? ? ? ? ? ? 1.參數包前不包后

    ? ? ? ? ? ? ? ? ? ? ? 2.結束索引可以不寫 相當于寫了length

    ? ? ? ? ? ? ? ? ? ? ? 3.開始索引可以不寫 相當于寫了0

    ? ? ? ? ? ? ? ? ? ? ? 4.結束索引支持寫負數,相當于length + 負數

    ? ? ? ? ? ? 1.concat

    ? ? ? ? ? ? ? ? ?語法:字符串.concat(數據1,數據2,數據3......)

    ? ? ? ? ? ? ? ? ?作用:將字符串和 參數傳遞數據 進行拼接

    ? ? ? ? ? ? ? ? ?返回值:拼接后的字符串

    ? ? ? ? ? ? 2.indexOf

    ? ? ? ? ? ? ? ? ? 語法:字符串.indexOf(數據,開始下標)

    ? ? ? ? ? ? ? ? ? 作用:尋找數據在字符串中的位置

    ? ? ? ? ? ? ? ? ? 返回值:找到的時候返回下標,找不到返回-1

    ? ? ? ? ? ? ? ? ? 注意:第二個參數可以不傳遞,默認為0

    ? ? ? ? ? ? 3.lastIndexOf

    ? ? ? ? ? ? ? ? 語法:字符串.lastIndexOf(數據,開始索引) ?

    ? ? ? ? ? ? ? ? 作用:尋找數據在字符串中的位置(從后往前/從右向左) ? ?

    ? ? ? ? ? ? ? ? 返回值:找到的時候返回下標,找不到返回-1

    ? ? ? ? ? ? ? ? 注意: 第二個參數可以不傳遞,默認為 length-1(字符串最后一個位置) ?

    ? ? ? ? ? ? 4.split

    ? ? ? ? ? ? 語法:字符串.split('符號')

    ? ? ? ? ? ? 作用:在字符串中找到'符號' 然后將這個字符串分割,并放在一個數組內

    ? ? ? ? ? ? 返回值:一個數組

    ? ? ? ? ? ? 注意:參數如果傳遞的是 空字符串('')會將字符串全部分隔開

    1.trim(重點)

    ? ? ? ? ? ? 語法:字符串.trim()

    ? ? ? ? ? ? 作用:去掉字符串兩側的空格

    ? ? ? ? ? ? 返回值:去掉空格后的字符串

    ? ? ? ? ? ? 2.trimStart ?/trimLeft

    ? ? ? ? ? ? 語法:字符串.trimStart() ?字符串.trimLeft

    ? ? ? ? ? ? 作用:去掉字符串開始(左側)的空格

    ? ? ? ? ? ? 返回值:去掉空格后的字符串

    ? ? ? ? ? ? 3.trimEnd /trimRight

    ? ? ? ? ? ? 語法:字符串.trimEnd() ?字符串.trimRight()

    ? ? ? ? ? ? 作用:去掉字符串結束(右側)的空格

    ? ? ? ? ? ? 返回值:去掉空格后的字符串

    1.includes

    ? ? ? ? ? 語法:字符串.includes(字符串片段)

    ? ? ? ? ? 作用:判斷 當前字符串中,是否擁有指定字符串片段

    ? ? ? ? ? 返回值:一個布爾值

    ? ? ? ? ? ? ? ? ? true --- > 擁有

    ? ? ? ? ? ? ? ? ? false --- > 沒有

    ? ? ? ? ?2.startsWith

    ? ? ? ? ? ?語法:字符串.startsWith(字符串片段) ? ?

    ? ? ? ? ? ?作用:判斷字符串開頭 是不是指定的 字符串片段

    ? ? ? ? ? ?返回值:一個布爾值

    ? ? ? ? ? ? ? ? ? true --- > 是開頭

    ? ? ? ? ? ? ? ? ? false --- >不是開頭

    ? ? ? ? 3.endsWith

    ? ? ? ? ? ? ?語法:字符串.endsWith(字符串片段)

    ? ? ? ? ? ? ?作用:判斷字符串結尾 是不是指定的 字符串片段 ?

    ? ? ? ? ? ? ?返回值:一個布爾值

    ? ? ? ? ? ? ? ? ? true --- > 是結尾

    ? ? ? ? ? ? ? ? ? false --- >不是結尾

    ? ? ? ? ? ? ? ? ? 163郵箱 ? 以@163.com結尾

    ? ? ? ? ? 4.replace

    ? ? ? ? ? ? ? ?語法:字符串.replace('要被替換的字符','替換的字符') ?

    ? ? ? ? ? ? ? ?作用:找到當前字符串中的第一個參數的值,然后將其替換為第二個參數

    ? ? ? ? ? ? ? ?返回值:替換完成的參數 ? ?

    進制轉換與保留小數

    1.進制轉換(了解)

    ? ? ? ? ? ? 1.十進制轉換為其他進制

    ? ? ? ? ? ? 語法:十進制數字.toString(幾進制)

    ? ? ? ? ? ? 2.其他進制轉換為十進制

    ? ? ? ? ? ? 語法:parseInt(數字,將數字視為幾進制的數字然后轉換為10進制的數字)

    ? ? ? ? 2. 保留小數(掌握)

    ? ? ? ? ?語法:toFixed(保留幾位小數),保留小數的時候四舍五入,并且返回的是字符串 ?

    ?定時器(兩種)

    ? ? ? ? 1.setInterval ?計時器,每間隔固定的時間執行一次

    ? ? ? ? ? ? ? ?語法:setInterval(函數,數字/時間)

    ? ? ? ? ? ? ? ? ? ?函數:每間隔固定的時間要執行的代碼

    ? ? ? ? ? ? ? ? ? ?數字:間隔的時間,注意單位是毫秒,最小值為4~20

    ? ? ? ? ?2.setTimeout ?倒計時器,在指定時間到達后,執行一次

    ? ? ? ? ? ? ? ? ? 語法;setTimeout(函數,數字) ?

    ? ? ? ? ? ? ? ? ? 函數:在指定時間結束后執行要執行的代碼

    ? ? ? ? ? ? ? ? ? 數字:間隔的時間,單位也是毫秒 ? ?

    ? ? ? ? 兩個定時器的返回值與意義

    ? ? ? ? ? ? ? ?+返回值不區分定時器種類,用于表示你這個定時器是頁面中第幾個定時器

    ? ? ? ? ? ? ? ?+作用:用來關閉定時器

    異步代碼

    ?簡單的代碼異步執行(這里并不是詳細的,后面會講)

    ? ? ? ? 這是一道面試題,熟讀并背誦全文

    ? ? ? ? ? 什么是非異步代碼

    ? ? ? ? ? ? ? 按照從上往下的順序,從左到右的順序,依次執行每一行代碼

    ? ? ? ? ? ? ? 如果上一行代碼沒有執行完畢,不會執行下一行代碼

    ? ? ? ? ?什么是異步代碼

    ? ? ? ? ? ? ?當代碼遇到異步任務的時候,會把這個代碼放在'異步隊列’ 內等待

    ? ? ? ? ? ? ?所有的同步代碼執行完畢后,開始執行"異步隊列"內的代碼

    ? ? ? ? ?簡單來說:代碼在執行的時候,會把這個代碼放在‘異步隊列’內等著,讓后繼續執行直到把所有的同步代碼執行完畢后,再開始執行異步任務

    ? ? ? ? ? ? 什么是異步任務

    ? ? ? ? ? ? 兩種定時器都是異步任務

    ? ? ? ? ? ? 可以理解為:先執行定時器外面的代碼,然后執行定時器里面的

    ?

    時間對象?

    ? ? ? 時間對象?

    ? ? ? ? ? ? ? ? 在JS鐘 Date 給我們提供了操作時間的一些方法,是JS 內置的一個對象

    ?var str = new Date()console.log(str)

    ? ?時間對象的參數

    ? ?創建對象的時候,看可以選擇傳遞函數,也可以不傳遞函數

    ? ? ? ? ? ? ? ? ?如果需要傳遞參數,分為兩種形式

    ? ? ? ? ? ? ? ? ? ?1.數字

    ? ? ? ? ? ? ? ? ? ? ?最少傳遞兩個值,年 ?和 月(JS中0-11 代表了 1-12月)

    ? ? ? ? ? ? ? ? ? ? ?2.字符串

    ? ? ? ? ? ? ? ? ? ? ?最少值需要傳遞一個參數年份即可(字符串的形式傳遞時月份從 1 開始)

    ? ? ? ? ? ? ? ? ?不寫參數會返回本地時間的年月日

    ?

    ?獲取時間對象

    var time = new Date()

    ? ? ? ? console.log(time)

    ? ? ?1.得到時間對象的 年份

    ? ? ? ? var year = time.getFullYear()

    ? ? ? ? console.log(year)?

    ? ? ??2.得到時間對象的 月份

    ? ? ? ? var month = time.getMonth()

    ? ? ? ? console.log(month) //1月-->0

    ? ? ?3.得到時間對象的 日

    ? ? ? ? var day = time.getDate()

    ? ? ? ? console.log(day)?

    ? ? ? 4..得到時間對象的 小時

    ? ? ? ? var hours = time.getHours()

    ? ? ? ? console.log(hours)

    ? ? ? 5..得到時間對象的 分鐘

    ? ? ? ? var minutes = time.getMinutes()

    ? ? ? ? console.log(minutes)

    ? ? ? 6..得到時間對象的 秒數

    ? ? ? ? var seconds = time.getSeconds()

    ? ? ? ? console.log(seconds)// 0-59

    ? ? ? 7.得到時間對象中的 ?一周的第幾天(周日為0,周六為6)

    ? ? ? ? var days = timer.getDay()

    ? ? ? ? console.log(days)

    ? ? ? 8. getTime ?按照 ?格林威治時間來計算 從 1970年1月1日0時0分0秒 到現在(或指定日期)的毫秒數

    ? ? ? ? var getTimes = timer.getTime()

    ? ? ? ? console.log(getTimes)

    設置時間對象?

    ? ? var timer = new Date()

    ? ? ? ? //設置 年

    ? ? ? ? timer.setFullYear(2001)

    ? ? ? ? console.log(timer.getFullYear())

    ? ? ? ? //設置 月

    ? ? ? ? timer.setMonth(3)

    ? ? ? ? console.log(timer.getMonth())

    ? ? ? ? //設置 日當月第幾天

    ? ? ? ? timer.setDate(15)

    ? ? ? ? console.log(timer.getDay())

    ? ? ? ? // 注意,沒有設置 本周的第幾天

    ? ? ? ? //設置 時

    ? ? ? ? timer.setHours(15)

    ? ? ? ? console.log(timer.getHours())

    ? ? ? ? //設置 分

    ? ? ? ? timer.setMinutes(25)

    ? ? ? ? console.log(timer.getMinutes())

    ? ? ? ? //設置 秒

    ? ? ? ? timer.setSeconds(35)

    ? ? ? ? console.log(timer.getSeconds())

    ? ? ? ? //設置 豪秒

    ? ? ? ? timer.setMilliseconds(999)

    ? ? ? ? console.log(timer.getMilliseconds())

    ? ? ? ? //設置到 1970 的總毫秒數

    ? ? ? ? timer.setTime(12345667)

    ? ? ? ? console.log(timer.getTime())

    ?

    認識BOM

    ?用JS 操作瀏覽器 和頁面中的 HTML 元素

    ? ? ? ? ?BOM

    ? ? ? ? ?瀏覽器對象模型,其實就是操作瀏覽器的一些能力

    ? ? ? ? ? ?我們可以操作哪些內容?

    ? ? ? ? ? ? ?+獲取瀏覽器的相關信息(窗口大小) ? ?

    ? ? ? ? ? ? ?+操作瀏覽器進行頁面的跳轉

    ? ? ? ? ? ? ?+獲取瀏覽器的地址欄信息

    ? ? ? ? ? ? ?+操作瀏覽器的滾動條

    ? ? ? ? ? ? ?+獲取瀏覽器的版本

    ? ? ? ? ? ? ?+讓瀏覽器出現一個彈出框

    ? ? ? ? ? ? ?+........

    ? ? ? ? ? ? ?BOM 的核心就是 window 對象

    ? ? ? ? ? ? ? ? ?window 時 JS 內置的一個對象,里面包含著操作瀏覽器的方法

    ?體驗BOM

    ?獲取瀏覽器窗口的尺寸

    ? ? ? ? innerHeight/innerWidth

    ? ? ? ? ? +作用:獲取到瀏覽器窗口的高度和寬度(包含滾動條)

    ? ? ? ? ? +語法:window.innerHeight /window.innerWidth

    console.log('高度', window.innerHeight)console.log('寬度', window.innerWidth)

    ? ? ? ? 2.瀏覽器的彈出層(學習的時候會用,實際工作中不會使用)

    ? ? ? ? ? ? alert

    ? ? ? ? ? ? prompt

    ? ? ? ? ? ? confirm

    ? ? ? ? ? ? ? ? 有一個詢問信息和兩個按鈕

    ? ? ? ? ? ? ? ? 點擊確定按鈕返回 true

    ? ? ? ? ? ? ? ? 點擊取消按鈕返回 false ?

    var str = confirm('請問你確定進入頁面嗎')console.log(str)

    總結

    以上是生活随笔為你收集整理的JS每日笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    午夜av不卡 | 亚洲理论电影 | 久久久久久久久久福利 | 69国产盗摄一区二区三区五区 | 亚在线播放中文视频 | av电影在线观看完整版一区二区 | 国内成人精品视频 | 久久国产精品二国产精品中国洋人 | 日韩高清不卡在线 | 亚洲精品资源在线观看 | 操操操com | 欧洲一区精品 | 中文字幕丝袜美腿 | 国产一区二区三区高清播放 | 中国一级片在线 | 中文字幕在线视频一区 | 欧美日韩国产精品一区二区 | 国产精美视频 | 国产品久精国精产拍 | 全黄色一级片 | av在线免费在线 | 亚洲国产欧洲综合997久久, | 日韩成人免费在线观看 | 综合久久影院 | 国产91电影在线观看 | 亚洲精品国产精品久久99热 | 国产午夜视频在线观看 | 狠狠狠狠狠狠干 | 91九色在线视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 黄色av免费在线 | 国产一区福利在线 | 久久久久久久久影视 | 久草视频在线新免费 | 在线观看www91 | 日韩一区二区三免费高清在线观看 | 玖玖999 | 波多野结衣在线视频免费观看 | 狠狠色2019综合网 | av青草| 色婷婷电影 | 久久久久久久久久久久国产精品 | 9i看片成人免费看片 | 欧美男同视频网站 | 亚洲国产精品电影 | 免费在线观看a v | 国产一卡二卡在线 | 久久免费播放 | 精品一区二区精品 | 精品国产精品久久 | av福利超碰网站 | 不卡视频在线 | 人交video另类hd | 欧亚日韩精品一区二区在线 | 不卡av电影在线 | 日韩精品视频久久 | 国产福利在线免费观看 | 久精品视频在线 | 成人高清在线 | 日韩黄色在线 | 伊人久久av | 黄色三级在线看 | 九九视频在线 | av3级在线 | 日韩特级片 | 欧美日韩裸体免费视频 | 成人av电影免费在线观看 | 91看片淫黄大片一级在线观看 | 在线观看精品一区 | 97偷拍在线视频 | 亚洲精品9 | 美女视频黄免费的久久 | 欧美91片| 91亚洲永久精品 | 99久高清在线观看视频99精品热在线观看视频 | 欧美激情综合五月色丁香小说 | av免费观看高清 | 亚洲精品动漫成人3d无尽在线 | 欧美黄污视频 | 国产精品综合久久 | www日韩在线观看 | 日韩美女免费线视频 | 丁香六月婷婷综合 | 国产做a爱一级久久 | 久久亚洲人 | 久久人人插| 国产中文字幕在线 | 91av电影在线 | 999久久a精品合区久久久 | 亚洲成熟女人毛片在线 | 激情久久久 | 国产一级黄大片 | 久久人人爽人人爽人人片 | 国产xxxx性hd极品 | 视频国产一区二区三区 | 国产精品久久av | 久久手机精品视频 | 97电影手机 | 不卡的av中文字幕 | av中文字幕亚洲 | 最近高清中文字幕在线国语5 | 手机版av在线| 久日精品 | 欧美一区二区三区在线视频观看 | 狠狠色香婷婷久久亚洲精品 | 亚洲高清视频一区二区三区 | 欧美精品在线一区 | 天天操天天爽天天干 | 成年免费在线视频 | 一区二区三区在线免费播放 | 色吧av色av| 日韩精品视频在线观看网址 | 人人爽人人舔 | 99re6热在线精品视频 | 婷婷五情天综123 | 美女网站在线免费观看 | 国产视频一区在线 | 狠狠狠色丁香综合久久天下网 | 欧美日韩不卡在线观看 | 五月婷婷六月综合 | 欧洲激情在线 | 在线激情影院一区 | 国产精品免费在线播放 | 久久九九久久精品 | 国产二区电影 | 日韩欧美电影 | 99精品视频免费全部在线 | 国产专区视频在线观看 | 天堂成人在线 | 久久在现视频 | 操操操影院 | 成人免费观看网址 | 久久婷婷国产色一区二区三区 | 欧美日韩在线观看一区二区三区 | 综合天天色 | 亚洲精品中文在线观看 | 国产成人免费 | 日韩av免费一区二区 | 亚洲精品色 | 一本色道久久精品 | 久久无码精品一区二区三区 | 久久久久久久久影院 | 人人干免费 | 日韩在线观看不卡 | 97热视频| 中文字幕日本在线观看 | 在线免费精品视频 | 免费精品视频 | 久久亚洲私人国产精品 | 免费的黄色的网站 | 国产精品日韩久久久久 | 97成人精品视频在线播放 | www.夜色.com | 色爱区综合激月婷婷 | 日本精品久久久一区二区三区 | 欧美亚洲另类在线视频 | 国产精品久久久久久久久久不蜜月 | 天天干夜夜想 | 成人毛片100免费观看 | 天天操狠狠干 | 亚洲国产成人高清精品 | 国产精品第一页在线观看 | 久久国产剧场电影 | 中文字幕一区在线 | 99热这里只有精品在线观看 | 国产精在线 | 一区二区精品久久 | 日韩精品一区电影 | 国产精品自产拍在线观看中文 | 五月天久久婷婷 | 狠狠色丁香久久婷婷综合五月 | 97在线观看视频免费 | 国产精品自拍av | 免费电影一区二区三区 | 热99在线视频 | 久久官网 | 精品一区二区三区四区在线 | 婷婷色视频 | 国产成人免费观看 | 狠狠色丁香婷婷综合橹88 | 日韩在线视频一区 | 久久一级电影 | 在线看一级片 | 91人人爽人人爽人人精88v | 一区二区三区精品在线视频 | 亚洲永久精品国产 | 婷婷爱五月天 | 91高清一区 | 米奇四色影视 | 色综合久久88色综合天天人守婷 | 中文字幕在线专区 | 亚洲三级黄 | 中文字幕色在线视频 | 人人澡超碰碰 | 99精品免费久久久久久日本 | 国产小视频免费在线观看 | 播五月综合| 亚洲精品黄色在线观看 | 色中色资源站 | 亚洲黄色大片 | 91九色在线| 成人午夜黄色影院 | 成人av网址大全 | 波多野结衣在线中文字幕 | 成人网在线免费视频 | 国产成人精品午夜在线播放 | 九九天堂| 色网av | 欧美亚洲成人免费 | 欧美成天堂网地址 | www看片网站 | 香蕉在线观看视频 | 日日婷婷夜日日天干 | 免费观看成人网 | av片无限看| 麻豆视频在线播放 | 狠狠精品 | 色多视频在线观看 | 国产黄色片一级三级 | 黄色三级网站在线观看 | 91精品国产综合久久福利 | 免费看三级| 一个色综合网站 | 2019中文在线观看 | 久久99国产精品免费网站 | 久草在线免 | 国产最新精品视频 | adn—256中文在线观看 | 免费看成年人 | 国产精品入口66mio女同 | 久久精品一区二区三区四区 | 好看av在线 | 精品久久一区二区 | 国产 视频 高清 免费 | 国产精品手机播放 | 狠狠躁天天躁 | 日韩av视屏在线观看 | 久久综合婷婷国产二区高清 | 久久免费视频这里只有精品 | 国产成人久久精品一区二区三区 | 91视频久久久久久 | 少妇自拍av| 久久久久久久久免费 | 黄色免费在线看 | 蜜臀久久99精品久久久酒店新书 | 日本久久久久久 | 国产福利精品在线观看 | 综合激情伊人 | 国产精品久久久久999 | 欧美精品中文 | 最近av在线 | 99在线精品免费视频九九视 | 国产亚洲aⅴaaaaaa毛片 | 成人免费xyz网站 | 最新国产在线观看 | 免费情缘 | 天天艹天天操 | 最新91在线视频 | 成年人黄色在线观看 | 欧美日韩免费网站 | 人人爱爱人人 | 久久免费精品 | 午夜久久 | 午夜视频免费播放 | 日韩精品在线免费播放 | 在线免费高清一区二区三区 | 婷婷色网 | 久久成人国产精品入口 | 免费男女羞羞的视频网站中文字幕 | 亚洲精品2区 | 久草精品视频在线播放 | 人人盈棋牌 | 国产日韩精品一区二区三区在线 | 91色国产在线 | 又黄又爽免费视频 | 在线免费观看黄 | 国产免费黄视频在线观看 | 精品一区精品二区高清 | 97超碰国产精品 | 亚洲精品资源在线观看 | 成人av免费 | 啪啪av在线 | 久久人人看 | 亚洲码国产日韩欧美高潮在线播放 | 激情视频免费观看 | 欧美日韩国产二区三区 | av在线一级| 最近中文字幕久久 | 一本色道久久综合亚洲二区三区 | 日日天天狠狠 | 九九热精品视频在线观看 | 97免费视频在线 | 中文在线a√在线 | 亚洲 欧洲 国产 日本 综合 | 99视频免费播放 | 成人全视频免费观看在线看 | av网站大全免费 | 欧美大片在线看免费观看 | 婷婷丁香色 | 精品久久91 | 精品国产电影一区 | 精品在线你懂的 | 午夜精品久久久 | 久久欧洲视频 | 亚洲精品女 | 久久久久久久网 | 免费在线观看日韩欧美 | 久久久久福利视频 | 91九色网站 | 成人a免费视频 | 999久久久免费视频 午夜国产在线观看 | 久久69av| 国内精品一区二区 | 国产99久久久精品 | 女人魂免费观看 | 免费v片 | 香蕉影院在线观看 | 97视频免费在线观看 | 五月婷婷网站 | 国产精品一区二区麻豆 | 成人网中文字幕 | 久艹在线观看视频 | 久草久草久草久草 | 成人影视片 | 五月婷婷在线视频 | 国产成人精品在线播放 | 国产精品成人一区二区三区吃奶 | 综合精品久久久 | 97超碰免费 | 黄色小说免费在线观看 | 亚洲第五色综合网 | 黄色片视频在线观看 | 国产午夜麻豆影院在线观看 | 国产精品中文字幕在线观看 | 一区av在线播放 | 国产精品日韩久久久久 | 最近最新中文字幕视频 | 99视频免费播放 | 二区在线播放 | 欧美 日韩精品 | 美女黄色网在线播放 | 麻豆传媒视频在线 | 草久视频在线 | 国产手机av在线 | 中文资源在线观看 | 五月天婷婷免费视频 | 波多野结衣一区二区 | www.久久成人 | 一区二区三区 亚洲 | 久久综合影院 | 91国内产香蕉| a级片韩国 | 久久成人免费 | 精品欧美一区二区三区久久久 | 日韩久久久久久久久久 | 亚洲国产大片 | 视频成人永久免费视频 | 久久国产免 | 久久情爱| 亚洲va天堂va欧美ⅴa在线 | 在线成人短视频 | 永久免费看av| a视频在线播放 | 国产在线精品观看 | 四虎www.| 麻豆成人精品 | 国产精品久久久久久久久久 | 国产精品成人一区二区 | 国产精品午夜免费福利视频 | 国产九色在线播放九色 | 国产精品久久嫩一区二区免费 | 精品亚洲国产视频 | 久草亚洲视频 | 国产精品久久精品 | 国产精品五月天 | 最近2019好看的中文字幕免费 | 成人免费观看视频网站 | 在线午夜 | 日本中文字幕一二区观 | 色亚洲激情 | 一区二区三区精品久久久 | 国产亚洲视频在线免费观看 | 色99之美女主播在线视频 | 在线观看www91 | 丝袜美腿在线视频 | 国产精品理论片在线观看 | 久草网视频 | 中文字幕av全部资源www中文字幕在线观看 | 中文字幕在线网 | 米奇影视7777 | 国产精品麻豆91 | 99精品视频在线免费观看 | 亚洲黄色免费在线 | av在线影视 | 最新国产一区二区三区 | 精品高清美女精品国产区 | 成 人 黄 色 视频 免费观看 | 免费a v在线 | 免费在线一区二区 | 免费久久久久久 | 欧美精品免费视频 | 日本精a在线观看 | 在线播放视频一区 | 999电影免费在线观看 | 国产91精品一区二区麻豆网站 | 在线免费观看视频 | 欧美日韩不卡在线观看 | 在线免费观看一区二区三区 | 在线看v片成人 | 亚洲人xxx | 天天综合网久久综合网 | 中文字幕区 | 最近中文字幕视频完整版 | 亚洲欧洲中文日韩久久av乱码 | 日韩有码专区 | 91尤物国产尤物福利在线播放 | av天天色 | 日日日干 | 国产国产人免费人成免费视频 | 国产夫妻性生活自拍 | 中文字幕中文字幕在线中文字幕三区 | 国产99久久久久久免费看 | 欧美一级黄色视屏 | 天天操操操操操操 | 亚洲美女视频网 | 91高清一区 | 亚洲视频1区2区 | 免费福利视频网站 | 久久人人爽人人爽人人片av免费 | 亚洲涩涩网 | 男女视频91 | av字幕在线 | 国产九九精品 | 69性欧美 | 欧美日韩国产在线一区 | 四虎成人免费观看 | 日本中文字幕一二区观 | 最新真实国产在线视频 | 91高清视频免费 | 国产 一区二区三区 在线 | 草免费视频 | 久久刺激视频 | 欧美日韩免费一区二区三区 | 96国产在线| 免费国产一区二区视频 | 天天艹天天爽 | 国产视频九色蝌蚪 | 最新久久久 | 美女在线免费观看视频 | 久久a v视频 | 依人成人综合网 | 国产韩国日本高清视频 | 日本黄色免费在线观看 | 久久国产精品99久久久久久老狼 | 天天操夜操 | 天天射天天爱天天干 | 日日爽夜夜爽 | 日韩素人在线观看 | 精品国内自产拍在线观看视频 | japanesefreesex中国少妇 | 婷婷电影在线观看 | 69久久99精品久久久久婷婷 | 日韩一级成人av | 西西444www高清大胆 | 久久高清av | 国产精品美女毛片真酒店 | av大全免费在线观看 | 久操伊人 | 午夜av在线免费 | 亚洲视频一 | 在线免费观看国产精品 | 天天综合婷婷 | 国产理论影院 | 久久久免费av | 麻豆91在线 | 在线观看一 | 婷婷综合五月天 | 夜色.com| 精品国产人成亚洲区 | 日韩视频一区二区在线 | 欧美精品久久久久久久久久丰满 | 天天操天天爱天天干 | 一区二区三区在线观看中文字幕 | 区一区二区三区中文字幕 | 嫩草av影院 | 午夜精品福利一区二区 | 99人成在线观看视频 | 五月激情姐姐 | 97在线免费观看视频 | 在线国产91| 欧美精品一区二区在线观看 | 天天天天天天操 | 日韩在线观看一区二区 | 欧美日韩国产一二三区 | 国产精选在线 | 色94色欧美| www.五月婷 | 久久艹在线 | 最近最新中文字幕视频 | 国产综合激情 | 国产精品免费久久久久久久久久中文 | 国产精品一区二区无线 | av免费在线免费观看 | 极品嫩模被强到高潮呻吟91 | 超碰在线资源 | 中文字幕成人一区 | 国内小视频在线观看 | av片中文字幕 | 久久免费视频一区 | 欧美日韩视频一区二区 | 久久99深爱久久99精品 | 久久不卡国产精品一区二区 | 国产精品成人自拍 | 天天操天天爽天天干 | 日韩三级视频在线观看 | 久久久久久黄色 | 亚洲婷婷免费 | 天天干,夜夜操 | 99亚洲精品 | 91人人爽久久涩噜噜噜 | 亚洲综合精品在线 | 成人av一区二区三区 | 97综合网| 91精品爽啪蜜夜国产在线播放 | 午夜10000| www.啪啪.com | 在线成人免费av | 蜜臀久久99精品久久久酒店新书 | 成人在线免费视频 | 蜜桃视频成人在线观看 | 免费av在线网 | 综合久久综合久久 | 国产高清绿奴videos | 国产视频一区在线 | 黄色h在线观看 | 六月丁香综合 | 一区二区激情视频 | 成人h视频在线 | 免费看一级特黄a大片 | 欧美乱码精品一区二区 | 国产精品国产亚洲精品看不卡 | 亚洲天天在线日亚洲洲精 | 久久综合色8888 | 日日噜噜噜噜夜夜爽亚洲精品 | 在线免费观看黄 | 四虎国产免费 | 99国产情侣在线播放 | 久久久国产精品麻豆 | 国产精品久久久久久爽爽爽 | www五月婷婷 | 国产97视频在线 | 色橹橹欧美在线观看视频高清 | 欧美日韩精品电影 | 色婷婷狠狠五月综合天色拍 | 99精品久久精品一区二区 | 91精品国产91久久久久 | 免费污片 | 激情av一区二区 | 色在线观看网站 | 亚洲高清国产视频 | 九九在线播放 | 波多野结衣小视频 | 美女视频永久黄网站免费观看国产 | 超碰97中文 | 综合久久婷婷 | 国产在线污 | 国产精品久久久av | 久久一区二区三区超碰国产精品 | 五月婷婷,六月丁香 | 成人免费视频在线观看 | 一级欧美黄 | 午夜精品久久久久久久久久久 | 美女网站黄在线观看 | 91传媒视频在线观看 | 日韩字幕 | 91视频午夜 | 黄色的网站在线 | 成人全视频免费观看在线看 | 成人黄色小说视频 | 国产一区在线视频 | 最近最新mv字幕免费观看 | 日韩欧美一区二区三区视频 | 成人久久18免费网站图片 | 久久久久黄 | 综合色久 | 蜜臀av一区| 欧美人体xx| 超碰午夜 | 国产精品久久电影网 | 久久久久久毛片 | 亚洲精品久久久久久久不卡四虎 | 成人免费av电影 | 久草精品视频 | 波多野结衣亚洲一区二区 | 亚洲免费av电影 | 欧美一级性视频 | 久草久草久草久草 | 99这里有精品 | 在线看国产日韩 | 黄色免费av | 久草资源在线 | 在线精品观看国产 | 人人cao| 少妇搡bbbb搡bbb搡aa | 婷婷av网 | 亚洲日本va中文字幕 | 日韩av高潮 | 国产剧情一区二区在线观看 | 成人影片在线免费观看 | 九九九九九精品 | 国产黄色网 | 人人爽人人 | 成人va天堂 | 日韩午夜在线观看 | 中文字幕亚洲欧美日韩 | 麻豆影视网 | 日韩在线视频网站 | 黄色av一区 | 成人视屏免费看 | 国产精品 视频 | 日韩欧美xxxx | 天海翼一区二区三区免费 | .国产精品成人自产拍在线观看6 | 亚洲精品乱码久久久久久蜜桃欧美 | 91成人网在线播放 | 91日韩精品 | 国产999精品| 4438全国亚洲精品在线观看视频 | 日日操夜夜操狠狠操 | 91人人澡| ww亚洲ww亚在线观看 | 97成人在线免费视频 | 中文资源在线官网 | 91中文字幕视频 | 在线免费中文字幕 | 黄色a在线观看 | 中文字幕在线观看完整 | 美女中文字幕 | 国产美女视频免费观看的网站 | 日韩精品专区在线影院重磅 | 丁香综合 | 成人91在线 | 天堂网一区二区三区 | 免费看高清毛片 | 久久精彩免费视频 | 国产午夜不卡 | 欧美美女激情18p | 首页av在线| 丁香婷婷深情五月亚洲 | 国产精品久久久久一区二区三区 | 2024国产精品视频 | 日日爱网址 | 久久五月婷婷丁香社区 | 久要激情网 | 青草视频免费观看 | 在线国产日韩 | 国产精品久久99综合免费观看尤物 | 夜夜躁日日躁狠狠久久av | 人人天天夜夜 | wwwav视频| 最近av在线 | 久久人人艹 | 亚洲精品一区二区三区在线观看 | 久久99热精品这里久久精品 | 久久精品视频在线播放 | 亚洲做受高潮欧美裸体 | 久久露脸国产精品 | 99热在线看 | 久久有精品 | 狠狠色狠狠色综合日日92 | 欧美日韩一区二区在线观看 | av 一区二区三区 | 狠狠干夜夜操 | 精品专区一区二区 | 国产视频 久久久 | 国产精品毛片久久久久久 | 狠狠干成人综合网 | 色噜噜日韩精品欧美一区二区 | 黄色软件在线观看视频 | 国产电影一区二区三区四区 | 久久精品www人人爽人人 | 日韩成片 | 亚洲精品啊啊啊 | 九九视频精品免费 | 五月激情五月激情 | 国产精品永久在线 | 超碰97中文 | 视频高清 | 成人一区二区在线观看 | 黄色免费观看网址 | 91丨九色丨勾搭 | 天天色天天 | 国产精品久久久久久久久久久免费 | 久久久久久久久久久久国产精品 | 欧美91精品国产自产 | 成人国产精品久久久春色 | 久久久久久美女 | 成年人免费在线观看网站 | 五月导航 | 91看片在线免费观看 | 美女精品国产 | 五月导航 | 国产精品一区二区精品视频免费看 | 国产精品12 | 成人免费视频视频在线观看 免费 | 欧美 日韩 国产 成人 在线 | 中文字幕日本特黄aa毛片 | 香蕉视频在线网站 | 精品视频不卡 | 免费看成人 | 一区二区三区精品在线视频 | 午夜精品久久久久久久久久久 | 在线天堂中文在线资源网 | 久草在线免费资源 | 一区二区三区福利 | 啪啪小视频网站 | 一本之道乱码区 | 亚洲人成人在线 | 亚洲成av人影片在线观看 | 国产视频精品视频 | 欧美孕妇与黑人孕交 | 91欧美日韩国产 | 天天综合色 | 超碰在线人人爱 | 日p在线观看 | 日本精品视频免费观看 | 在线观看视频h | 日韩欧美一级二级 | 91亚·色 | 天天躁日日躁狠狠躁av麻豆 | 亚洲精品欧洲精品 | 久久综合久久综合九色 | 精品一二三四视频 | 国产精品女同一区二区三区久久夜 | 青青草国产精品 | 久久久久久免费毛片精品 | 少妇高潮流白浆在线观看 | 成人福利在线 | 99久久婷婷国产综合亚洲 | 亚洲一区二区精品视频 | 国产99久久99热这里精品5 | av成人免费在线观看 | 黄色tv视频| 精品在线99 | 天天做天天射 | 91xav| 日韩欧在线 | 欧美日产在线观看 | 国产一级二级三级在线观看 | 日韩国产欧美视频 | 欧美日韩调教 | 免费毛片aaaaaa | 四虎4hu永久免费 | 国产精品久久久久久久久久新婚 | 黄色毛片网站在线观看 | 欧日韩在线视频 | 久久久久亚洲精品 | 欧美成人久久 | 日韩精品视频久久 | 成人福利av| 亚洲精品乱码久久 | 亚洲国产激情 | 中国黄色一级大片 | 欧美日韩中文字幕在线视频 | 国产色在线视频 | 日韩一区视频在线 | 狠狠躁18三区二区一区ai明星 | 美女性爽视频国产免费app | 色综合久久88 | 精品美女久久 | 中文字幕在线精品 | 日韩动漫免费观看高清完整版在线观看 | 91亚洲精品久久久蜜桃借种 | 中文字幕亚洲欧美日韩 | 日韩一区二区三区免费视频 | 青青河边草免费视频 | 欧美日韩在线视频一区二区 | 人人超碰在线 | 久久99亚洲精品 | 在线精品观看 | 在线婷婷 | 人人爽夜夜爽 | 国产精品乱码久久久久 | 91成人免费在线 | 婷婷综合视频 | 日韩一级成人av | 嫩嫩影院理论片 | 亚洲欧美综合 | 狠狠操狠狠 | 中文字幕第一页在线 | 欧美日韩一区三区 | 五月天视频网 | 中文字幕高清有码 | 视色网站 | 性日韩欧美在线视频 | 国产精品美女久久久免费 | 国产黄色av| 色在线视频| 91伊人久久大香线蕉蜜芽人口 | 国产三级精品在线 | 欧美在线视频不卡 | 久久新| 国产中文字幕视频在线观看 | 亚洲专区中文字幕 | 国产精品久久艹 | 狠狠干成人综合网 | 成人全视频免费观看在线看 | 久久超级碰视频 | 国产高清在线不卡 | 久久午夜免费观看 | av免费观看高清 | 久久精品一级片 | 国产精品一区二区三区观看 | 四虎国产视频 | 久久国产热视频 | 亚洲午夜久久久久久久久电影网 | 亚洲 中文 欧美 日韩vr 在线 | 国产一区二三区好的 | 欧美日韩一区二区三区视频 | 99精品免费在线 | 香蕉在线观看视频 | 在线观看a视频 | 免费看色的网站 | 日韩中文三级 | 丁香综合激情 | 色网站中文字幕 | 色五月激情五月 | 超碰人人草 | 99人久久精品视频最新地址 | 91精品啪啪 | 国产成人精品一区二区三区在线 | 天天射综合网站 | 久久成人精品电影 | 亚洲视频一 | 国产亚洲精品久久久久动 | 精品国产一区二区三区四区vr | 欧美视频一区二 | 日本三级香港三级人妇99 | 国产在线观看你懂的 | 久久国产精品一区二区 | 精品在线一区二区三区 | 国产韩国精品一区二区三区 | 久久久国产电影 | 欧美一区二区在线免费观看 | 免费人做人爱www的视 | 最近高清中文字幕 | 人九九精品 | 亚洲天堂精品视频 | 欧亚日韩精品一区二区在线 | 亚洲精品一区中文字幕乱码 | 欧美午夜精品久久久久久孕妇 | 成人免费在线看片 | 亚洲一级二级 | 91精品国产92久久久久 | 亚洲激情视频 | av色一区 | 在线免费观看视频 | 欧美大jb| 香蕉久草| 激情丁香5月 | 最近日本中文字幕 | 九色自拍视频 | 国产精品一区二区你懂的 | 伊人婷婷| 久久人91精品久久久久久不卡 | 91精品久久久久久久久久久久久 | 亚洲妇女av | 深爱五月网 | 国产精品1区2区3区在线观看 | 日本在线观看一区 | 激情伊人 | 在线免费中文字幕 | 91在线观看视频网站 | 免费日韩av片| 国内精品视频久久 | 99精品国产一区二区 | 精品久久影院 | 精品国产一区二区三区久久久蜜月 | 成人在线网站观看 | 精品96久久久久久中文字幕无 | 91系列在线 | 亚洲精品视频在线免费播放 | 狠狠操.com| 天天鲁天天干天天射 | 久久精品亚洲 | 日韩高清一区二区 | 手机在线观看国产精品 | 日日夜夜网 | 国产精品一区二区在线观看免费 | 一本一道久久a久久综合蜜桃 | 久久欧美在线电影 | 国产高清在线不卡 | 欧美另类老妇 | 337p西西人体大胆瓣开下部 | 天天亚洲综合 | 国内精自线一二区永久 | a级片韩国 | 精品久久久久久亚洲 | 毛片.com| 91福利国产在线观看 | 99在线播放 | 激情久久五月天 | 久久超| 久久精品一二三区白丝高潮 | 啪啪午夜免费 | 又爽又黄又无遮挡网站动态图 | 精品国产电影一区 | 99国产视频 | 激情婷婷综合网 | 干 操 插 | 国产免费视频一区二区裸体 | 五月天婷婷视频 | 久久夜色网 | 亚洲九九 | 久久黄色影院 | 欧美热久久 | 亚洲国产精品传媒在线观看 | 精品在线播放视频 | 婷婷丁香狠狠爱 | 97超碰香蕉 | 成人国产精品久久久 | 国产在线观 | 亚洲精品tv | 91视频免费| 91精品国产高清 | 日日干av | 成人一级免费视频 | 婷婷草| 久草免费电影 | www.91成人 | 国产精品第一视频 | 国产亚洲精品综合一区91 | 免费高清看电视网站 | 国产综合在线视频 | 亚洲精品国产精品99久久 | 日韩精品中文字幕在线 | 日韩精品不卡在线观看 | 日韩一区二区三区免费电影 | 久久久久国产精品一区二区 | av天天干| 日韩免费播放 | 色悠悠久久综合 | 最新真实国产在线视频 | 91视视频在线直接观看在线看网页在线看 | 欧美精品久久久久久久久久丰满 | 永久av免费在线观看 | 人人插人人舔 | 在线观看视频97 | 婷婷色综合网 | 日韩精品久久久久 | 97狠狠干 | 91中文在线视频 | 99国产视频在线 | 99久久99热这里只有精品 | 久久经典国产视频 | 成人午夜性影院 | 特级毛片aaa | 国产一级在线观看视频 | 日韩精品久久一区二区 | av软件在线观看 | 伊人一级| 国产精品一区二区在线观看免费 | 最近最新中文字幕视频 | 中午字幕在线 | 91成人免费电影 | 精产嫩模国品一二三区 | 成人欧美日韩国产 | 国产精品一区二区视频 | 亚洲精欧美一区二区精品 | 国产精品久久久久久久午夜片 | 欧洲视频一区 | 福利久久久 | 久久综合色影院 | 国产一级二级av | 精品久久一 | 国产精品福利小视频 | 久久久久视 | 日韩有码网站 | 色综合久久天天 | 91精品在线观看视频 | 亚洲精品乱码久久久久久 | 人人添人人 | 亚洲一区日韩精品 | 日韩在线高清视频 | 国内丰满少妇猛烈精品播放 | 在线观看视频中文字幕 | 亚洲国产精品激情在线观看 | 免费观看高清 | av高清免费 | 天天做天天看 | 欧美激情视频一区 | 在线观看香蕉视频 | 在线观看视频中文字幕 | 国产一区二区三区在线 | www.久久久.cum | 久久精品一区二区三区国产主播 | 亚洲砖区区免费 | 高清一区二区 |