JavaScript進階篇QA總結

来源:http://www.cnblogs.com/HapLe0/archive/2016/12/23/6214788.html
-Advertisement-
Play Games

Q1:常用的運算符有哪些?他們的優先順序是怎樣的?A1:1.算術運算符:加(+)、減(-)、乘(×)、除(÷),自加一(++),自減一(--);2.比較運算符:大於(>)、小於(<)、大於等於(>=)、小於等於(<=);3.邏輯運算符:與(&&)、或(||)、非(!);優先順序為:算術操作符 > 比較操 ...


Q1:常用的運算符有哪些?他們的優先順序是怎樣的?
A1:
1.算術運算符:加(+)、減(-)、乘(×)、除(÷),自加一(++),自減一(--);
2.比較運算符:大於(>)、小於(<)、大於等於(>=)、小於等於(<=);
3.邏輯運算符:與(&&)、或(||)、非(!);
優先順序為:算術操作符 > 比較操作符 > 邏輯操作符 > "="賦值符號;

Q2:關於數組有哪些基本知識?
A2:
1.創建數組的方法:

1 var arr1 = new Array(10); //通過調用Array()方法創建一個大小為10的數組,再給數組元素賦值;
2 arr1[0] = 0;
3 arr1[1] = 1;
4 
5 var arr2 = [0,1,2,3,4,5]; //通過直接賦值的方法創建一個數組;

2.數組的常用屬性和方法:

1 var arr = new Array(10);
2 document.write(arr.length); //輸出數組長度

3.二維數組:將一維數組作為數組元素;


Q3:分支判斷語句的語法格式?
A3:
1.兩個分支選一個

if(exp)
    {...}
else
    {...}

2.多個分支選一個

if(exp1)
    {...}
else if(exp2)
    {...}
else if(exp3)
    {...}
else{...}

3.多個分支選一個或多個

switch(x)
{
case a:exp1;break; //如果x=a,則執行exp1,有break,後面分支不執行
case b:exp2;       //如果x=b,則執行exp2,沒有break,後面分支繼續執行
case c:exp3;break;
default:exp4;      //如果前面的都沒有符合,則執行預設項exp4;
}


Q4:幾種迴圈方式?
A4:
1.for迴圈

for(i = 0;i<10;i++)
{
    ...
}

2.while迴圈

while(exp){ //當條件滿足exp時執行
...
}

3.do...while迴圈

do
{
...
}while(exp); //先執行一次,再判斷是否滿足exp,滿足則繼續迴圈,不滿足則退出迴圈

附送:迴圈中常用的兩個語句:
    continue:跳過本次迴圈,進行下一次迴圈;
    break:跳出當前迴圈;
    


Q5:函數(function())的基本知識?
A5:
1.函數:執行特定功能的代碼塊;
2.函數的要素:關鍵字、函數名、入參、代碼塊、出參;
舉個慄子:

1 function lizi(x,y)
2 {
3     return x+y;  
4 }

【註釋】這是一個函數,功能是將兩個數相加,並返回這個和。
        其中:function 是定義函數的關鍵字,為了告訴你這是一臺機器;
              lizi 是函數名,即這個功能塊的標簽,告訴你這台機器的名字;
              x、y是函數的入參,是加工的原料;
              return 後面的東西是函數的出參,是加工的成品;

3.幾種調用函數的方法:
    1)在JS中直接調用。因為瀏覽器載入頁面時會從上到下執行JS代碼,所以讀到調用的那一行時即執行了這個函數;
    【慄子】

1     function writting()  //定義一個函數
2     {
3         document.write("I love writting!");
4     }
5     writting(); //JS中直接調用上面的函數,當讀到這一行時即執行了這個函數;

    2)通過事件調用函數。通過點擊事件、滑鼠懸浮事件等來觸發函數的執行:
    【慄子】
 

   <input type="button" onclick="writting()" />    

    3)通過在其他函數中被調用。一個函數可以條用其他函數作為自己的方法體的一部分,當這個函數執行時,被調用的方法就會執行。
    【慄子】
  

1  function habit(){
2         alert("我的愛好是:");
3         writting();   //當habit函數被調用的時候,就會執行writting,至於habit如何被調用,可以參照上述兩種方法。
4     }

    Q6:有哪些事件?
    A6:
    onclick:點擊事件
    onfocus:聚焦事件
    onblur:失焦事件
    onload:載入事件
    onchange:文本框內容改變事件
    onmouseover:滑鼠經過事件
    onmouseout:滑鼠移開事件
    onselect:內容選中事件
    onunload:卸載事件
    
    Q7:JS常用內置對象及其方法有哪些?
    A7:
    1.Date 日期對象

 1 var date = new Date(); //創建一個日期對象,值為當前系統日期
 2     var date = new Date("2012","10","1"); // 創建一個日期對象,初始化值為2012年10月1日
 3     date.setFullYear(2016); //設值年
 4     date.getFullYear();     //獲取年
 5     date.setMonth(0);       //設值月份(0~11代表1月~11月)
 6     date.getMonth();        //獲取月份
 7     date.setDate();         //設值日
 8     date.getDate();         //獲取日
 9     date.setHours();        //設值時
10     date.getHours();        //獲取時
11     date.setMinutes();      //設值分
12     date.getMinutes();      //獲取分
13     date.setSeconds();      //設值秒
14     date.getSeconds();      //獲取秒
15     date.setTime();         //給date賦值(以毫秒為單位)
16     date.getTime();         //獲取date值的毫秒數(1970年1月1日 0時0分0秒算起)
17     date.getDay();          //獲取星期(0~6分別表示周日~周六)

    2.Sting 字元串對象
   

 1 var str = "I love JavaScript!"; //創建一個字元串對象str,並給他賦初值為"I love JavaScript";
 2     str.length 屬性,獲取字元串長度
 3     str.toUpperCase(); //將str變成全大寫
 4     str.toLowerCase(); //將str變成全小寫
 5     str.indexOf("a");  //獲取str中第一個a字母的下標
 6     str.charAt(0);     //獲取str中下標為0的字元
 7     str.split(",");    //將str通過逗號分隔成數組
 8     str.split(",",2);  //將str通過逗號分隔成數組,且只保留前兩個數組元素
 9     str.substring(2);  //截取字元串(從下標為2的字元開始,包含下標為2的字母,下標從0開始)
10     str.substring(2,5); //截取字元串(截取下標為[2,5)的字元串,下標從0開始)
11     str.substr(2);        //提取字元串(從下標為2開始截取,知道最後)
12     str.substr(2,6);    //提取字元串(提取下標從2開始,長度為6的字元串)

    3.Math 數學對象

1 Math.PI;         //獲取圓周率
2     Math.abs(-6);    //獲取絕對值
3     Math.ceil(6.5);  //向上取整(ceil:天花板)
4     Math.floor(6.5); //向下取整(floor:地板)
5     Math.round(6.5); //四捨五入
6     Math.random();    //獲取(0,1)區間內的隨機數

    4.Array 數組對象

 1 var arr1 = new Array(); //定義了一個空數組
 2     var arr2 = new Array(10); //定義了一個大小為10的數組
 3     var arr3 = [0,1,2,3,4,5,6]; //定義了一個數組,並直接初始化(賦初值)
 4     arr1.concat(3,4,5,6);          //連接:向arr1中添加數組元素
 5     var arr4 = arr1.concat(arr2);             //連接:將arr2的元素連接到arr1後面,作為新的數組arr4返回
 6     var str = arr3.join();                //jion方法是一個工具方法,用逗號將arr3中數組元素都連接起來成一個字元串並返回
 7     var str = arr3.join("&");   //用&符號連接每個數組元素
 8     var arr5 = arr3.reverse();  //數組倒序
 9     var arr6 = arr3.slice(3);   //截取數組:截取下標從3開始(包含3)的數組作為新數組
10     var arr7 = arr3.slice(3,7); //截取數組:截取下標範圍為[3,7) 的數組作為新數組
11     var arr8 = arr3.sort();     //對數組arr3進行排序,將排序後的數組作為新數組返回

    Q8:window對象有哪些常用方法?
    A8:
    1.定時器

1     setTimeout(function,delay);  //定時執行function,僅一次
2     setInterval(function,delay);  //定時執行function,沒每隔delay時長執行一次
3     clearTimeout(id);                //清除定時器,id為對應setTimeout()的返回值
4     clearInterval(id);                //清除定時器,id為對應setInterval()的返回值
5     location.href;                     //獲取當前URL
6     location.href="http://www.baidu.com/";   //設值當前地址為指定地址
7     location.reload();              //重新載入當前頁(刷新)
8     location.replace("http://www.baidu.com/"); //將當前頁替換成指定地址

    Q9:JS如何操作HTML的DOM節點?
    A9:
    1.獲取節點的常用方法有:

1     var obj = document.getElementById("abc"); //獲取HTML標簽中id屬性值為"abc"的DOM節點,返回一個DOM對象
2     var objs = document.getElementsByName("abc"); //獲取HTML標簽中所有name屬性值為"abc"的DOM節點,返回數組
3     var objs = document.getElementsByTagName("div"); //獲取HTML中所有div標簽的DOM節點,返回數組

    2.DOM對象的一些屬性和方法:

 1     obj.getAttribute("name"); //獲取DOM對象的name屬性的值
 2     obj.setAttribute("name","Hello"); //設值DOM對象的name屬性的值為"Hello"
 3     var nodes = obj.childNodes;  //獲取obj節點的所有子節點對象,返回數組
 4     var node = obj.firstChild;   //獲取obj節點的第一個子節點對象
 5     var node = obj.lastChild;    //獲取obj節點的最後一個節點對象
 6     var node = obj.parentNode;   //獲取obj節點的父節點
 7     var node = document.createElement("div");  //創建一個div標簽對象
 8     var textnode = document.createTextNode(data); //創建文本節點
 9     appendChild(newnode);        //給指定DOM對象添加一個子元素
10     insertBefore(newnode,node);  //在node節點前面插入一個新的節點newnode
11     nodeObject.removeChild(node);//將某個子節點移除
12     nodeObject.replaceChild(newnode,oldnode); //用newnode替換oldnode節點

 


    
    
    
    
    
    
    
    
    
    
    

              



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 伴隨網路時代日新月異的發展,用戶不僅僅滿足於軟體系統的功能需求,對軟體系統的頁面顯示效果以及交互模式的要求也逐漸提高。尤其是展示性質的平臺頁面對於界面美化效果要求更高,有一句話說的好:Html是結構,CSS是裝飾,JS是膠水(動態設定CSS)。今天我們來介紹一些網站美化常見的CSS樣式以及處理手法。 ...
  • h5的js游戲框架JY的2.0版介紹,本文作重介紹了通過jy1.x做的h5游戲和通過jy2.x做的h5有啥區別,然後用大頭吃小頭這個app游戲來作實踐。 ...
  • 浮動與清除浮動 一、float:主要目的是為了實現文本繞排圖片的效果。 也成了創建多欄佈局最簡單的方式。 <img src= “ ” /> <p>文本內容段落內容文本內容段落內容文本內容段落內容文本內容段落內容文本內容段落內容</p> 【1】文本繞排圖片 P {margin: 0; border: ...
  • 正文 本文所涉及到的jQuery版本是3.1.1,可以在壓縮包中找到event模塊。該篇算是閱讀筆記,jQuery代碼太長。。。。 Dean Edward的addEvent.js 相對於zepto的event模塊來說,jQuery的event那真是難讀了很多,先從大神Dean Edward的addE ...
  • Jasmine的開發團隊來自PivotalLabs,他們一開始開發的JavaScript測試框架是JsUnit,來源於著名的JAVA測試框架JUnit。JsUnit是xUnit的JavaScript實現。但是JsUnit在2009年後就已經停止維護了,他們推出了一個新的BDD框架Jasmine。Ja ...
  • input[text] input一般和ngModel結合使用來實現雙向綁定,同時angular提供了很多表單校驗的指令 required 必填 ngRequired 必填(ngRequired可以控制是否是必填校驗) ngMinlength 最小長度 ngMaxlength 最大長度 patter ...
  • JQuery學習之操作類數組的工具方法 在很多時候,JQuery的$()函數都返回一個類似數據的JQuery對象,例如$(‘div’)將返回div裡面的所有div元素包裝的JQuery對象。在這中情況下,JQuery提供了幾個常用的屬性和方法來操作JQuery對象。 length:該屬性返回JQue ...
  • 在前端開發中,我們會頻繁的修改html、css、js,然後刷新頁面,開效果,再調整,再刷新,不知不覺會浪費掉我們很多時間。有沒有什麼方法,我在編輯器裡面改了代碼以後,只要保存,瀏覽器就能實時刷新。經過不懈的努力,發現了這麼一個工具 livereload。這是一款能根據你本地文件(html、css、j ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...