1. 程式人生 > >每天10個前端知識點:原生篇(4)

每天10個前端知識點:原生篇(4)

以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。

1. 引數的陣列arguments

引數中的陣列,函式中可以不需要定義引數

<script>
    sum(12, 5, 6);

    function sum() {
        console.log(arguments[1]);  // 5
    }
</script>

2. 設定樣式的三種方法

  1. style.xxx
    oDiv.style.width = ‘300px’;

  2. className
    oDiv.className = ‘active’;

  3. cssText
    批量設定樣式
    oDiv.style.cssText = ‘width: 300px; height: 300px’;

3. 字串的相關方法

  • str.charAt(i); 獲取字串中的第i+1個字元 返回值:相應位置的字元

str[i]的相容問題
獲取字串中的第i+1個
- str[i] 相容:高階瀏覽器及IE8+
IE7 -> undefined
- str.charAt(i) 全相容

  • str.indexOf(‘w’); 查詢w在字串中的位置 返回值:成功 -> w在字串中的位置 失敗 -> -1
  1. 從左往右找
  2. 區分大小寫
  3. 找到第一個相同值即停止
  4. 查詢多個字元時,返回第一個字元的位置
  • str.lastIndexOf(‘w’); 查詢w在字串中的位置 返回值:成功 -> w在字串中的位置 失敗 -> -1

從右往左倒序查詢,返回的索引值與indexOf()規則相同

  • str.search(‘w’); 與indexOf()規則相同 常用於正則

  • str.substring(開始位置, 結束位置); 擷取字串,包含開始位置,不包含結束位置

str.substring(開始位置); 擷取字串 從開始位置一直擷取到最後

  • str.substr(開始位置, 擷取字串長度); 定長擷取字串

  • str.slice(開始位置, 結束位置); 擷取字串

  • str.match(‘w’); 在字串中匹配w 常用於正則 返回值:成功 -> 匹配的w 失敗 -> null

  • str.split(‘w’); 切割字串 返回值型別:陣列

  1. 字串按w割開,去掉w後組成的陣列
  2. 若沒找到w則原樣返回一個長度為1的陣列
  3. 若為”(空字串,無空格)則返回將str中每個字元逐個拆開的陣列
  • str.toUpperCase(); str轉大寫
    str.toLowerCase(); str轉小寫

  • str.replace(‘xxx’, ‘yyy’); 常用於正則 引數:被替換內容,替換內容

  1. 修改第一個被替換內容
  2. 替換不修改原字串, 需重新宣告
  3. 第二個引數可為一個方法
  4. replace可以連用
<script>
    var str = 'xxa';
    str.replace('x','y');
    str2 = str.replace('a', 'b');
    str3 = str.replace('x', 'y').replace('a', 'b');
    alert(str);     // xxa
    alert(str.replace('x', 'y'));   // yxa
    alert(str2);    //xxb
    alert(str3);    //yxb
</script>
<script>
    var str = 'xxxy';
    var str2 = str.replace('xxx', function(s){
        alert(s);   // xxx  被替換字元 資料型別:string
        var str2 = '';
        for(var i = 0; i < s.length; i++) {
            str2 += '*';
        }
        return str2;    // 替換後的內容
    });

    alert(str2);    // ***y
</script>
  • str.charCodeAt(i); // 獲取字串中的第i+1個字元對應的ASCII編碼

a-> 0x61 -> 97
b-> 0x62 -> 98
z -> 0x7A -> 122

4. 字串比較

  • 英文 按照字典序(a~z)依次比較,z為最大;從兩字串的第一個字元開始,若相當再比較下一個字元
  • 數字 按照數字大小依次;從兩字串的第一個字元開始,若相當再比較下一個字元
  • 漢字 按照unicode大小比較

5. 字串應用

判斷瀏覽器的型別

window.navigator.userAgent
eg:

<script>
    if(window.navigator.userAgent.indexOf('Chrome') != -1) {
        console.log('Chrome');
    } else if(window.navigator.userAgent.indexOf('Firefox') != -1) {
        console.log('Firefox');
    } else if(window.navigator.userAgent.indexOf('MSIE7.0') != -1) {
        consolle.log('IE7');
    } else {
        console.log('others');
    }
</script>

判斷上傳檔案格式

eg:

<script>
    var index = str.lastIndexOf('.');
    var type = str.substring(index+1);  //返回檔案型別名
</script>

6. 定義陣列

  1. var arr = [1, 2, 3];
  2. var arr = new Array(1, 2, 3);

Array()只傳一個引數時表示定義一個新陣列的長度
new Array(10); 定義一個長度為10的陣列

7. 陣列的相關方法

  • arr.push(‘w’); 往陣列最後面新增一項 返回值:新新增的那項
  • arr.unshift(‘w’); 往陣列最前面新增一項 返回值:新陣列長度
  • arr.pop(); 刪除陣列最後一項 返回值:刪除的那項
  • arr.shift(); 刪除陣列最前一項 返回值:刪除的那項
  • arr.join(‘w’); 陣列各項用w連線成一個字串 返回值型別:字串
  • arr.concat(arr2, arr3, …); 陣列arr與arr2、arr3…連線
  • arr.reverse(); 陣列翻轉
  • arr.sort(); 陣列排序(按字典序和數字序列)

高階排序 數值排序
- 從小到大
arr.sort(function(n1, n2){
return n1-n2;
});
- 從大到小
arr.sort(function(n1, n2){
return n2-n1;
});

  • arr.splice(開始位置, 刪除個數, 元素1, 元素2);
<script>
    var arr1=[1,2,3,4];
   arr1.splice(1, 0, 'a', 'b'); //新增:在1後新增'a','b'   返回值:返回空陣列

   var arr2=[1,2,3,4];
   arr2.splice(1, 2); //刪除:刪除2、3    返回值:返回刪除的各項

   var arr3=[1,2,3,4];
   arr3.splice(1, 1, 8, 88, 888) //修改:先刪除再新增 把2改為8,88,888   返回值:返回刪除的各項
</script>

splice模擬方法
1) arr.push(c); -> arr.splice(arr.length, 0, c);
2)arr.unshift(c); -> arr.splice(0, 0, c);
3)arr.pop(); -> arr.splice(arr.length-1, 1);
4)arr.shift(); -> arr.splice(0, 1);

8. json(object型別)

json格式:{name:value,name2:value2, …}
json標準格式:{“name”:value, “name2”:value2, …}

所有鍵名需雙引號,鍵值非數字時需加引號
鍵值對沒有json.length
json的name是唯一的

  • 獲取json值: json.name 或者 json[‘name’]
  • 新增/修改: json.aaa = ‘bbb’; 或者 json[‘aaa’] = ‘bbb’;
  • 刪除: delete json.c; 或者 delete json[‘c’];

  • 判斷json內某個屬性是否存在

<script>
    var json = {a: 1, b: 2};
    alert('c' in json); // false 屬性c不存在
</script>

json和陣列的區別

length

  • 陣列:有length
  • json:沒有length

迴圈遍歷方法

  • 陣列:for(var i=0;i

訪問元素下標型別

  • 陣列:arr[1] 數字
  • json:json[‘a’] 字串

順序

  • 陣列:有序,根據下標訪問
  • json:無序,根據鍵名訪問

9. Math方法

  1. Math.random() 0-1隨機數(不包含1)
  2. Math.abs(num) 絕對值
  3. Math.max(num1, num2, ...) 最大數
  4. Math.min(num1, num2, ...) 最小數
  5. Math.floor(num) 向下取整 12.4 -> 12 12.6 -> 12
  6. Math.ceil(num) 向上取整 12.5 -> 13 12.1 -> 13
  7. Math.pow(n, m) n的m次方 Math.pow(2, 3)=8;
  8. Math.sqrt(num) num開平方 Math.sqrt(9)=3;
  9. Math.round(num) 四捨五入 12.1 -> 12 12.6 -> 13

num.toFixed(保留小數個數); 保留幾位小數(自動四捨五入)

10. try-catch捕獲異常

<script>
    try {
        // code
    } catch(ex) {   // exception
        console.log(ex.message);    // 檢視錯誤資訊

        // 錯誤的提示資訊
        // 補救的程式碼
    }
</script>

更多內容可以訂閱本人微信公眾號,一起開啟前端小白進階的世界!
微信公眾號:無媛無故

相關推薦

每天10前端知識點原生(4)

以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 1. 引數的陣列arguments 引數中的陣列,函式中可以不需要定義引數 <script> sum(12, 5, 6); function sum()

每天10前端知識點陣列應用

以下內容若有問題煩請即時告知我予以修改,以免誤導更多人。 1. 陣列翻轉方法2 eg: 這裡說明一下,這個方法用的不是reverse,因為一次面試中被問過不用reverse實現翻轉,所以這裡標註為陣列的翻轉方法2。 <script&g

掌握這10核心知識點C語言就算入門了

1、順序、分支、迴圈等基本語句; 2、char、int、double、float等基本資料型別; 3、帶引數巨集定義和函式的區別; 4、指標和陣列的區別,尤其注意下指標陣列和陣列指標; 5、函式指標和指標函式; 6、結構體和聯合體以及自定義型別typedef的應用; 7、printf、sca

用Python做小遊戲環境

一、安裝Python和pygame 1、在Windows環境下,安裝Python 略 2、安裝pygame,網址: http://pygame.org 使用Python自帶pip工具即可快速安裝pygame: python3 -m pip install -U py

【新書推薦】【2019.10每天10分鐘學習SQLSams教你如何自學(第5版)

【2019.10】每天10分鐘學習SQL:Sams教你如何自學(第5版)SQL in 10 Minutes a Day, Sams Teach Yourself (5th Edition),共306頁。 無論您是應用程式開發人員、資料庫管理員、Web應用程式設計人員、移動應用程式開

前端面試題(每天10

說不定哪天就要重新找工作了,作為知識的儲備和鞏固學習,每天記一點東西總歸是好的。(儘可能的每天更新一點) 目錄 HTML Doctype 有什麼用? HTML 中用來區分標準模式和怪異模式的宣告,用來告知瀏覽器使用標準模式渲染頁面。

web前端知識點(JavaScript

call,apply,bind call,apply,bind這三者的區別,及內部實現原理,點這裡 promise promise函式的內部實現原理,點這裡 閉包 閉包就是能夠讀取其他函式內部變數的函式。形式上,就是一個函式返回一個內部函式到函式外,內部函式引用外部函式的區域性變數。本質上,閉包是將函式內部和

web前端知識點(webpack

webpack 是一個現代 JavaScript 應用程式的靜態模組打包器(module bundler)。當 webpack 處理應用程式時,它會遞迴地構建一個依賴關係圖(dependency graph),其中包含應用程式需要的每個模組,然後將所有這些模組打包成一個或多個 bundle

每天一個JS 小demo之原生數組splice方法書寫。主要知識點鍛煉思維邏輯能力,對於數組方法的理解和各種情況的考量

scrip charset 是否 isn 如果 情況 del 當前 cti <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <titl

我的職業是前端工程師學習前端只需要三月【框架

將 package.json 中的 Ionic 版本改為 2.0.0 的時候,我就思考一個問題。這個該死的問題是——我到底要用哪個框架繼續工作下去。 剛開始學習前端的時候,SPA(單頁面應用)還沒有現在這麼流行,可以選擇的框架也很少。而今天,我隨便開啟

每天java相關面試題(10)--java基礎詳解2

好勒好勒。一起加油 一、HashMap和Hashtable的區別。 答: HashMap是Hashtable的輕量級實現(非執行緒安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非執行緒安全,效率上

前端開發10Chrome擴充套件你不得不知

轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 原文出處:https://blog.bitsrc.io/10-top-chrome-extensions-for-front-end-developers-db23a01dce1e 1. CSSViewer &nb

每天一個JS 小demo之韓雪冬輪播圖。主要知識點html,css布局,對於數組和對象的理解和運用

身高 全局 borde ava ebo 空間 use mouseout desc 1 @charset "utf-8"; 2 /* CSS Document */ 3 4 * { padding: 0; margin: 0; } 5 li { list-st

每天一個JS 小demo之個人信息添加。主要知識點DOM操作中的表格操作,節點操作

mov src i++ blog this tex set elements img 以下是簡易效果: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

每天一個JS 小demo之通過鍵盤方向鍵操作圖片上下左右無縫切換。主要知識點事件

tco listen add head query ceo defined clas css <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><ti

每天一個JS 小demo之通過事件委托實現菜單展開及選中特效。主要知識點事件

實現 tween efi blog dem int position 16px eas <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><titl

每天一個JS 小demo之自定義滾動條。主要知識點事件應用

prevent 數據 滾動 sca listener 視頻 希望 特效 poi <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>D

每天一個JS 小demo之郵件刪除。主要知識點事件應用

inline order else ont math tee tom seo onchange <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><ti

分針網——每日分享10程序員常用的代碼簡寫技術

代碼簡寫 加入職業技能圈 q群:272292492 更多文章:www.f-z.cn 今天小編我給大家整理了一份10個程序員常用的代碼簡寫技術,看懂一種是入門,全懂就是大神,你能知道幾個呢?

每天java相關面試題(8)--spring

ioc 簡單 組件 print 提交數據 常常 spring容器 效果 用戶 首先呢,假設有從事前端開發的大神或者準備從事前端開發的小夥伴無意看到我這篇博客看到這段文字歡迎加我的QQ:【 845415745 】。即將走入社會的菜鳥大學生有關於前端開發的職