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

JS語法:數組

 

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

複雜數據類型:objectspa

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

typeof的使用方法有兩種:對象

(1)typeof 變量blog

(2) typeof(變量)排序

undefined派生自null,因此undefined==null返回的結果是true索引

 


 

 

用於任何數據類型,Number()能夠將非數值轉化爲數值,可是有一些數據是不能轉化爲數值的,若是這類數據經過Number()進行強制轉化的話,會返回NaNip

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;
      // 一、數組遍歷,push
      b=new Array();
      for(var i=0;i<a.length;i++){
         b.push(a[i]);
      }
      // 二、concat()
      b=[].concat(a);
      // 三、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;
       }
相關文章
相關標籤/搜索