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



JS語法:

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

複雜數據類型:object

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

typeof的使用方法有兩種:

(1)typeof 變量

(2) typeof(變量)

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

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

<code>var a=Number(name_01);/<code>

用於把字符串轉換為數值

<code>var b=parseInt("28px") var d=parseFloat("12.34.56px");/<code>

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

<code>var idstr=ids.toString();console.log(String(m));/<code>

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

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

&&邏輯與:

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

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

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

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

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

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

||邏輯或:

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

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

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

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

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

!邏輯非

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

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

JS****流程控制語句:

<code>var age=prompt("請設置您的密碼"); if(age<18){ alert("您還沒有成年"); }else{ alert("您已成年,請提供您的身份證號"); } if(age.length!=6){ alert("請輸入6位數字密碼"); }else{ if(isNaN(age)){ alert("密碼必須是6位數字"); }else{ alert("密碼設置正確"); } }專門建立的學習Q-q-u-n:⑦⑧④-⑦⑧③-零①② ,分享學習的方法和需要注意的小細節,不停更新最新的教程和學習技巧(從零基礎開始到前端項目實戰教程,學習工具,全棧開發學習路線以及規劃)/<code>

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

<code>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);/<code>

for循環嵌套:

外層為假時內層不執行;

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

JS****函數:

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

如果return後面沒有值,默認返回undefined

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

<code>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)/<code>

JS****內置對象【數組】:

創建數組的兩種方式:

new Array()

字面量方式 []

arr.length 獲取數組長度

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

統計員工工資的代碼:

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

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

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

數組的棧方法:

<code>// 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);/<code>

<code>// 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}); console.log(arr);/<code>

<code>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);專門建立的學習Q-q-u-n:⑦⑧④-⑦⑧③-零①② ,分享學習的方法和需要注意的小細節,不停更新最新的教程和學習技巧(從零基礎開始到前端項目實戰教程,學習工具,全棧開發學習路線以及規劃)/<code>

<code>// 拷貝數組的方法 var a=[1,"yes",3], b; // 1、數組遍歷,push b=new Array(); for(var i=0;i<a.length>/<code>

<code>//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);/<code>

<code>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);/<code>

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

<code>// 封裝一個方法實現indexOf的功能 function ArrayIndexOf(arr,value){ // 檢測value在arr中出現的位置 for(var i=0;i<arr.length>/<code>