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; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/158915.html
標籤:JavaScript
上一篇:[Vue原始碼]一起來學Vue模板編譯原理(二)-AST生成Render字串
下一篇:HTTP狀態碼詳解(下)
