String字符串对象
String对象用于处理文本(字符串)。
toString||String()转换为字符串,不能转换null和undefined
var a=10;
console.log(a.toString());
var b=20;
console.log(String(b));
创建字符串
new String(); String类型有默认length属性,表示字符串包含多少个字符(空格也是字符)。
字符串方法
charAt():返回字符串指定位置的字符;字符串第一个字符下标为0,如果参数不在0与string.length之间,则返回一个空字符串。
search():查找字符串指定字符的位置,只能查找到第一个匹配的位置,如果找不到则返回-1。
substring(start,stop):star、stop为非负的整数,如果省略stop则返回的子串会一直到字符串结尾。
该方法返回一个新的字符串从start(包括start)到stop-1(不包括stop)的所有字符,长度为stop减start。
如果start=stop,返回一个长度为0的字符串;如果start>stop,则提取子串之前会先交换这两个参数。
slice(start,end):start、end可以为负数
该方法提取字符串的某个部分,并以新的字符串返回被提取的部分。包括字符串从start(包括start)开始到end(不包括end)结束为止的所有字符。
start、end如果为负数,则参数规定的是从字符串的尾部开始算起的位置,如-1指的是最后一个字符,以此类推。
substr(start,length):start可以为负数、length可选
该方法返回一个新的字符串,包含从star(包括start)处开始的length个字符;如果没有指定length则为从start到结尾的字符。
因ECMAscript未对此方法进行标准化,因此反对使用。
String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。
replace(ragexp/substr,replacement)用于在字符串中用一些字符替换另一些字符。
返回一个新的字符串,用replacement替换regexp第一次匹配或所有匹配之后得到的。
如果regexp具有全局标志 g,那么replace()将替换所有匹配的子串;否则默认只替换第一个匹配的子串
var str="hello world";
console.log(str.replace("l","*"));
console.log(str.replace(/l/g,"*"));
split(separator,howmany):用于把一个字符串分割字符串数组。
separator为字符串或者表达式,从该参数地方分割字符串。howmany可选规定返回的数组最大长度,如果设置返回的字符串不会超过这个参数;如果没有设置整个字符串都会分割不考虑长度。
返回的数组不包含separator自身。如果把空字符串(“ “)作为separator,则字符串每个字符之间都会被分割。
concat(stringX…)用于将一个或多个字符串拼接起来,获得一个新的字符串。
indexOf()返回某个指定的字符在字符串中首次出现的位置,在字符串中从前向后搜索,如果没有则返回-1。
lastIndexOf()返回某个指定的字符在字符串中最后出现的位置,在字符串中从后向前搜索,如果没有则返回-1。
Date日期对象
Date对象用于处理日期和时间。
创建Date对象语法:
var myDate=new Date()
Date对象属性constructor(返回对创建次对象的Date函数的引用)和prototype(使有能力向对象添加属性和方法)。
Date对象方法
getFullYear():可返回一个表示年份的4位数字
getMonth():可返回表示月份的数字,返回0(一月)~11(十二月)的一个整数
getDate():可返回月份的某一天,返回1~31之间的一个整数
getDay():可返回表示星期的某一天的数字,返回0(周日)~6(周六)之间的一个整数
getMilliseconds():可返回当前时间的毫秒数,返回0~999之间的一个整数
getTime():可返回距1970年1月1日到现在的毫秒数
JavaScript计时事件
一次性定时器setTimeout()
setTimeout(code,millisec)
setTimeout()第一个参数是含有JavaScript语句的代码串,第二个参数指在执行代码前需要等待的毫秒数。只会执行一次。
clearTimeout(id_of_settimeout)
clearTimeout()可取消由setTimeout()方法设置的timeout。其参数必须是由setTimeout()返回的ID值。
循环定时器setInterval()
setInterval(code,millisec)
setInterval()方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval()方法会不停地调用函数,直到clearInterval()被调用或窗口关闭。
clearInterval(id_of_setinterval)
clearInterval()可取消由setInterval()设置的timeout。其参数必须是由setInterval()返回的ID值。
用一次性定时器模拟循环定时:
<input type="button" value="开始/暂停" id="timebtn" />
<input type="button" value="重置" id="timeclear"/>
<input type="text" id="timetext" value="0" />
<script>
var i=0;
var j=0;
var t=null;
var btn1=document.getElementById("timebtn1");
var clear=document.getElementById("timeclear1");
var text=document.getElementById("timetext");
function time(){
text.value=i;
i+=1;
t=setTimeout("time()",30);
}
function stop(){
i=0;
j=0;
setTimeout(text.value=0,0)
clearTimeout(t);
}
btn1.onclick=function(){
if(j==0){
time();
j=1;
}else if(j==1){
clearTimeout(t);
j=0;
}
}
clear.onclick=function(){
stop();
}
</script>
再来一个倒计时吧:
<input type="date" id="inputdate" />
<input type="button" id="timebtn2" value="设置日期" />
<input type="button" id="timeclear2" value="暂停" />
<div id="timelast"></div>
<script>
var date1 = document.getElementById("inputdate");
var btn11 = document.getElementById("timebtn2");
var btn22 = document.getElementById("timeclear2");
btn11.onclick = function() {
var str = date1.value;
year2 = parseInt(str.slice(0, 4));
month2 = parseInt(str.slice(5, 7));
day2 = parseInt(str.slice(-2));
t = setInterval('daojishi(year2,month2,day2,"timelast")', 30)
}
btn22.onclick = function() {
clearInterval(t)
}
function daojishi(year, month, day, divid) {
var today = new Date();
var setday = new Date(year, month - 1, day);
var lefttime = setday.getTime() - today.getTime();
var seconds = parseInt(lefttime / 1000);
var milliseconds=lefttime%1000;
var second=seconds%60;
var minutes=(seconds-second)/60%60;
var hours=(seconds-second-minutes*60)/(60*60)%24
var days=(seconds-second-minutes*60-hours*60*60)/(60*60*24);
var div = document.getElementById(divid);
div.innerHTML = "距离" + year + "年" + month + "月" + day + "日还有" + days + "天" + hours + "小时" + minutes + "分" + second + "秒" + milliseconds + "毫秒";
}
</script>