JS基礎-語法+流程式控制制語句+函數+內置對象【數組】

来源:https://www.cnblogs.com/chenyingying0/archive/2019/12/30/12122047.html
-Advertisement-
Play Games

JS語法: Javascript基本數據類型:undefined/null/Boolean/number/string 複雜數據類型:object typeof用來檢測變數的數據類型 typeof的使用方法有兩種: (1)typeof 變數 (2) typeof(變數) undefined派生自nu ...


JS語法:

 

Javascript基本數據類型:undefined/null/Boolean/number/string

複雜數據類型:object

typeof用來檢測變數的數據類型

typeof的使用方法有兩種:

(1)typeof 變數

(2) typeof(變數)

undefined派生自null,所以undefined==null返回的結果是true

 


 

 

用於任何數據類型,Number()可以將非數值轉化為數值,但是有一些數據是不能轉化為數值的,如果這類數據通過Number()進行強制轉化的話,會返回NaN

var a=Number(name_01);

用於把字元串轉換為數值

var b=parseInt("28px")
var d=parseFloat("12.34.56px");

不知道值是不是null或者undefined,可以使用String(),可以將任何類型的值轉為字元串

var idstr=ids.toString();
console.log(String(m));

在運算中,除了加法,其餘的運算都會將字元串先轉換為數字之後再進行計算,但是兩個數據相加,如果有一方是字元串的話,加號的作用就是將他們進行拼接

如: 數字5和字元串"5"進行加減乘除運算,結果分別是:55    0    25   1

 


 

&&邏輯與:

如果第一個操作數隱式轉換後為true,則返回第二個操作數;

如果前面的都為true,則返回最後一個操作數。

如果第一個操作數隱式轉換後為false,則返回第一個操作數;

如果有一個是null,則返回null;

如果有一個是undefined,則返回undefined;

如果有一個是NaN,則返回NaN

 


 

 

||邏輯或:

如果第一個操作數隱式轉換為true,則返回第一個操作數;

如果第一個操作數隱式轉換為false,則返回第二個操作數,依次往後;

如果兩個數都是null,則返回null;

如果兩個數都是undefined,則返回undefined;

如果兩個數都是NaN,則返回NaN;

 


 

 

!邏輯非

無論如何都會返回一個布爾值

!!對邏輯非的結果再求反;

 


 

JS流程式控制制語句:

var age=prompt("請設置您的密碼");
       if(age<18){
          alert("您還沒有成年");
       }else{
          alert("您已成年,請提供您的身份證號");
       }

if(age.length!=6){
          alert("請輸入6位數字密碼");
       }else{
          if(isNaN(age)){
            alert("密碼必須是6位數字");
          }else{
            alert("密碼設置正確");
          }
       }

NaN也是一個number類型的一種,typeof NaN==number

var week=new Date().getDay();
       var weekstr="";
       console.log(week);  // 0-6
       // 多條件的判斷 switch
       switch(week){
          case 0:
          weekstr="日";
          break;  // 退出
          case 1:
          weekstr="一";
          break;
          case 2:
          weekstr="二";
          break;
          case 3:
          weekstr="三";
          break;
          case 4:
          weekstr="四";
          break;
          case 5:
          weekstr="五";
          break;
          default:
          weekstr="六";
       }
       document.write("今天是星期"+weekstr);

for迴圈嵌套:

外層為假時內層不執行;

先執行外層,再執行內層;當內層為假時再執行外層。


JS函數:

函數執行完return之後立即停止並退出函數。

如果return後面沒有值,預設返回undefined

 

 


 

js非嚴格模式下,可以使用arguments來改變傳入的參數的值

function inner(){
          // arguments 
          console.log(arguments.length);
          console.log(arguments[1]); // 索引是從0開始的正整數
       }
       inner(10,5);
       function add(num1,num2){    
          arguments[0]=99;
          console.log(num1);
       }
       add(55,88)

JS內置對象【數組】:

創建數組的兩種方式:

new Array()

字面量方式 []

 


 

arr.length 獲取數組長度

過設置length可以從數組的末尾移除項或者添加新項

 


 

統計員工工資的代碼:

(1)   不停的接收用戶輸入的員工的工資,直到用戶輸入“退出”便不再彈出“輸入工資”的視窗

(2)   把用戶輸入的數據保存在一個數組中

var input,arr=[];
       while(input!='退出'){
            input=prompt('請輸入員工工資');
            arr[arr.length]=input;
       }
       arr.length-=1;//不存入'退出'
       document.write(arr);

數組的棧方法:

// push從數組末尾加入
       var colors=new Array("red","green");
       var len=colors.push("blue","yellow","blank");
       console.log(len);
       // unshift從數組頭部加入
       var nums=[2,7,8,6];
       var size=nums.unshift(99,66);
       // pop從數組尾部刪除,返回值是被刪除的元素
       var n=nums.pop();
       console.log(nums);
       // shift從數組頭部刪除,返回值是被刪除的元素
       var m=colors.shift();
       console.log(m);
// join 把數組元素轉為字元串
       var nums=[2,4,5];
       var str=nums.join();  //2,4,5 
       var words=["border","left","color"];
       // border-left-color
       var wordstr=words.join("-");
       console.log(wordstr);
       // reverse 數組中元素反序
       nums.reverse();
       console.log(nums);
       var strs=["a","b","c","d"];
       // 返回dcba這個字元串
       var newstr=strs.reverse().join("")
       console.log(newstr);
       // 29,5,24,17,32
       var arr=[9,23,15,-99,88,12,-2];
       //sort()對數組元素進行排序,按字元串格式進行排序
var _arr1=[8,95,31,1,5];
         
        console.log(_arr1.sort());//輸出1,31,5,8,95,因為會先將元素轉換為字元串,用字元串的首字元進行比較,
       //如果第一個字元相同,繼續比較第二個字元
       //針對上面的情況,使用以下方法解決
       // 降序 return 參數1<參數2
       arr.sort(function(a,b){return a<b});
       // 升序 return 參數1>參數2
       arr.sort(function(a,b){return a>b});
       console.log(arr);
var arr1=["a","b","c"],
          arr2=["d","e",1,3],
          arr3;
      // concat 連接兩個或多個數組
      arr3=arr1.concat(arr2,["m",99,8]);
      console.log(arr3);
      // slice(start,end) end下標 截取數組一部分返回
      // 包含start,不包含end
      // start負數,就是數組長度+該長度
      // 如果沒有end,就從start一直到結束
      var colors=["red","green","blue","yellow","orange"];
      var newColors=colors.slice(1,3);
      var newColors2=colors.slice(2,4);
      var newColors3=colors.slice(-4,3); // 1,3
      console.log(newColors3);
// 拷貝數組的方法
      var a=[1,"yes",3],
          b;
      // 1、數組遍歷,push
      b=new Array();
      for(var i=0;i<a.length;i++){
         b.push(a[i]);
      }
      // 2、concat()
      b=[].concat(a);
      // 3、slice();
      b=a.slice(0);
      console.log(b);
//splice返回值是被刪除的項,如果沒有刪除則返回[]
       var arr=["a","b","c","d","e","f"];
       // 刪除,從index開始刪除count個數,返回被刪除的
       // splice(index,count)
       // count為0 則不刪除;count不設置,則從Index開始刪除到最後
       var delArr=arr.splice(2,3);
       // 插入,從index開始,刪除count個,插入item1...
       // splice(index,count,item1...)
       var insertArr=arr.splice(3,0,"m","n",88);
       // 替換
       var replaceArr=arr.splice(1,2,"x","y","z");
       console.log(arr);
       console.log(replaceArr);
var nums=[1,7,5,7,8,1,6,9];
       //indexOf(seachvalue,startIndex)
       //返回查找的項在數組中的位置,沒有則返回-1
       var pos=nums.indexOf(7,2);
       //lastIndexOf()從數組末尾開始查找
       var pos=nums.lastIndexOf(1);
       var pos=nums.indexOf("7");
       console.log(pos);

indexOf()方法有相容性問題,解決方案:

// 封裝一個方法實現indexOf的功能
       function ArrayIndexOf(arr,value){
          // 檢測value在arr中出現的位置
          for(var i=0;i<arr.length;i++){
             if(arr[i]===value){
                return i;
             }
          }
          return -1;
       }

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

-Advertisement-
Play Games
更多相關文章
  • 啟動mysql服務: net start mysql 關閉mysql服務: net stop mysql cmd清屏: cls mysql -V 輸出版本信息並且退出 mysql -u 用戶名 mysql -p 密碼 mysql -P 埠號 mysql退出: exciting;quit;\q 登陸 ...
  • 查看mysqlbinlog版本 mysqlbinlog -V [--version] 查看binlog日誌開啟狀態 show variables like '%log_bin%'; mysql打開bin-log日誌後,mysql資料庫的非查詢操作會將記錄保存到bin-log文件中。一般bin-log ...
  • 在桌面選擇“電腦”的圖標(或者是我的電腦),右鍵-->屬性-->點擊“高級系統設置” 然後選擇 高級 選項點擊環境變數 然後點擊新建-> 變數名為MYSQL_HOME 變數值為mysql的安裝目錄(一定要在系統變數下新建變數) 然後編輯系統變數中的PATH變數點擊編輯,添加剛纔設置的變數名%MYS ...
  • 一、SQL Server的數據存儲結構 SQL Server是一個資料庫管理系統,需要以有效方式存儲高容量數據。要更好地理解SQL Server處理數據的方式,就需要瞭解數據的存儲結構。 1、文件類型 資料庫在磁碟上是以文件為單位存儲的,由數據文件和事務日誌文件組成。一個資料庫至少應該包含一個數據文 ...
  • 開心一刻 一頭母牛在吃草,突然一頭公牛從遠處狂奔而來說:“快跑啊!!樓主來了!” 母牛說:“樓主來了關我屁事啊?” 公牛急忙說:“樓主吹牛逼呀!” 母牛大驚,拔腿就跑,邊跑邊問:“你是公牛你怕什麼啊?” 公牛無奈道:“現在的樓主不僅吹牛逼,還扯蛋!” 然後小牛也在跟著跑,公牛和母牛問:“兒子你跑什麼 ...
  • Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。 ...
  • 參考自:解決Android Studio無法下載sdk的問題 國內網站無法登進google,android sdk無法下載。 嘗試使用FQ,重裝軟體都沒有成功。 最後找到瞭解決辦法:http://ping.chinaz.com/dl.google.com 這個地址會列出一個ip列表,挨個ping,找 ...
  • iOS事件鏈有兩條:事件的響應鏈;Hit-Testing事件的傳遞鏈 響應鏈:由離用戶最近的view向系統傳遞。initial view –> super view –> ….. –> view controller –> window –> Application –> AppDelegate 傳 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...