該文通過獲取星期幾的幾種方法,介紹JS里的數組,判斷,和字符串截取,可以當作新手教程看,小白也看的懂。
獲取星期幾,可通過Date()對象的getDay()獲取,獲取的是一個數字,對應的是0,1,2,3,4,5,6。
0代表的是星期天,后面6個自然數,代碼該星期,如1代表星期一,6代表星期六。
描述:(代碼見描述后面)
第一個方法:定義一個數組,然后取某一個數組的值。
JS中定義一個帶初始值的數組的寫法,可以這么寫 var 數組名=new Array(第一個數值,第二個數值.......);
獲取數值中的某個值的方法,就是 數組名[需要取的數值的索引],索引是從0開始的,往后0,1,2,3,4,5.......
例如:數組名[0]就是取該數組的第一個數值,數組名[1]就是取該數組的第二個數值。
getDay()獲取的是0123456這樣的,所以可以直接對應下標設置,數組的第一個就是數組名[0]星期天,數組名[1]是星期一,("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")。這樣直接用getDay()的值做下標就可以了,不需要對該值進行加減什么的處理,直接對應。
第二個方法:JS中的判斷if else if方法。
JS中的判斷方法,if(條件成立)執行某段代碼,else if(前面的條件不成立,這個條件成立)執行這段代碼.......
如下面的代碼,可以這樣用人的語言描述:
,判斷day這個變量的值是否是0,那么給wstr這個變量賦值為‘星期日’。
否則,就再判斷是否是1,如果是1,那么給wstr這個變量賦值為‘星期一。
如果不是,再判斷.......
如此,不斷判斷。當判斷某個條件成立時,才不再繼續走else支線判斷。
最少判斷一次,就是等於0的時候,直接等於星期日,不再走支線;最多會判斷7次,前面判斷都不成立,走的額else支線,直到最后等於6,賦值星期六。
第三個方法:JS中的switch case方法。
JS中的判斷方法,switch(某個值)case(值1):執行的語句;break...........
這個和第二個差不多,都是判斷后使用哪個,這個可以看做直接對應,case中和switch中的值一致,就會走該case里的執行的語句,break跳出這個判斷。
例如,該文中的方法,day的值可能為0,1,2,3,4,5,6,然后把所有可能的值分別寫出對應的case,按值對應執行哪個語句。
第四種方法:JS中的charAt()方法,截取某個字符。
格式是:需要截取的字符串.charAt(索引)。
如上所說,計算機語言中的索引都是從0開始的,例如,該文中方法,"日一二三四五六"就是一個字符串,有七個字符,索引從0開始,到6,由於day是0到6,所以可以直接用day本身的值作為下標,把需要的字符逐個按照下標排序。
這樣就能取到當前星期的數字,前面加上字符“星期”,組成星期一。
注意:在JS中 ,沒有字符型數據,只有字符串型的,逐個截取后的實際是長度為1的字符串,也就是一個字符的字符串,但是它是字符串類型的,記得在C#等中,字符型和字符串是不同的類型。
代碼
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> 輸入寄出地址 <input type="text" id="T1" size="15"><br> 輸入收貨地址 <input type="text" id="T2" size="15"><br> <a href="javascript:prn1_preview()">打印預覽</a><br> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function RetnW() {//JS的數組 var date=new Date(); var day=date.getDay(); var weeks=new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); var week=weeks[day]; return week } function RetnWF2() {//JS判斷的if elseif方法 var wstr=""; var date=new Date(); var day=date.getDay(); if (day==0){wstr="星期日";} else if(day==1){wstr="星期一";} else if(day==2){wstr="星期二";} else if(day==3){wstr="星期三";} else if(day==4){wstr="星期四";} else if(day==5){wstr="星期五";} else if(day==6){wstr="星期六";} return wstr; } function RetnWF3() {//JS判斷的switch方法 var wstr=""; var date=new Date(); var day=date.getDay(); switch (day) { case 0:wstr="星期日";break; case 1:wstr="星期一";break; case 2:wstr="星期二";break; case 3:wstr="星期三";break; case 4:wstr="星期四";break; case 5:wstr="星期五";break; case 6:wstr="星期六";break; } return wstr; } function RetnWF4() {//JS判斷的字符串截取方法 var date=new Date(); var day=date.getDay(); var wstr="星期"+"日一二三四五六".charAt(day); //var wstr="星期"+"日一二三四五六".charAt(new Date().getDay()); return wstr } function prn1_preview() { LODOP=getLodop(); var W1=RetnW();var W2=RetnWF2();var W3=RetnWF3();var W4=RetnWF4(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(28,41,77,22,"寄出地址:"); LODOP.ADD_PRINT_TEXT(28,100,200,22,document.getElementById("T1").value); LODOP.ADD_PRINT_TEXT(77,41,77,22,"收貨地址:"); LODOP.ADD_PRINT_TEXT(77,100,200,22,document.getElementById("T2").value); LODOP.ADD_PRINT_TEXT(111,41,410,20,"這是根據day的數值做下標,取的數組中的某個值:打印是在"+W1); LODOP.ADD_PRINT_TEXT(139,40,410,20,"這是用if 和else if判斷,根據day等於哪個取的值:打印是在"+W2); LODOP.ADD_PRINT_TEXT(169,39,410,20,"這是用switch,根據daye的值,使用哪個值:打印是在"+W3); LODOP.ADD_PRINT_TEXT(200,38,410,20,"這是根據day的值,charAt截取一個字符串的某個字:打印是在"+W4); //LODOP.PRINT_DESIGN(); LODOP.PREVIEW(); }; </script> </body>
圖示