一、 String字符串对象
1. 定义字符串的方法就是直接赋值。
var mystr = "I love JavaScript!"
2. 属性
stringObject.length; //返回该字符串的长度
举例:
var mystr="Hello World!";
var myl=mystr.length;
以上代码执行后,myl 的值将是:12
3.方法
方法名称 | 功能描述 |
---|---|
toLowerCase() | 转换为小写 |
toUpperCase() | 转化为大写 |
charAt() | 返回指定位置的字符 |
indexOf() | 返回指定的字符串首次出现的位置 |
split() | 将字符串分割为字符串数组,并返回此数组 |
substring() | 提取字符串 |
substr() | 提取指定数目的字符 |
3.1 charAt()
charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。
语法:
stringObject.charAt(index)
参数说明:
- index:必需。字符在字符串中的下标
- 字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)
- 如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串
举例:返回最后一个字符
var mystr="I love JavaScript!"
document.write(mystr.charAt(mystr.length-1) );
结果:!
3.2 indexOf()
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
语法:
stringObject.indexOf(substring, startpos)
参数说明:
- substring:必需。规定需检索的字符串值
- startpos:可选的整数参数。规定在字符串中开始检索的位置。它的合法值是0到stringObject.length-1。如果省略该参数,则将从字符串的首字符开始检索。
- .如果找到一个 substring,则返回 substring 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
- 如果要检索的字符串值没有出现,则该方法返回 -1。
举例:
对 “I love JavaScript!” 字符串内进行不同的检索:
<script type="text/javascript">
var str="I love JavaScript!"
document.write(str.indexOf("I") + "<br />");
document.write(str.indexOf("v") + "<br />");
document.write(str.indexOf("v",8));
</script>
以上代码的输出:
0
4
9
3.3 split()
split() 方法将字符串分割为字符串数组,并返回此数组。
语法:
stringObject.split(separator,limit)
参数说明:
- separator:必需。从该参数指定的地方分割stringObject
- limit:可选参数,分割的次数。如设置该参数,返回的字串不会多于这个参数指定的数组,如无此参数为不限制次数
- 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
举例:
var mystr="86-010-85468578";
document.write(mystr.split("-")+ "<br />");
document.write(mystr.split("") + "<br />");
document.write(mystr.split("",3) );
以上代码的输出:
86,010,85468578
8,6,-,0,1,0,-,8,5,4,6,8,5,7,8
8,6,-
3.4 substring()
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:
stringObject.substring(startPos,stopPos)
参数说明:
- startPos:必需。非负整数,开始位置
- stopPos:可选参数,非负整数,结束位置。若省略该参数,那么返回的字串会一直到字符串对象的结尾。
- 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。
- 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
- 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
举例:
var mystr="Hello World!"
document.write( mystr.substring(6)+ "<br />");
document.write( mystr.substring(0,4));
以上代码的输出:
World!
Hell
3.5 substr()
substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。
语法:
stringObject.substr(startPos,length)
参数说明:
- startPos:必需。非负整数,要提取字串的起始位置
- length:可选参数,提取字符串的长度。若省略该参数,那么返回的字串会一直到字符串对象的结尾。
- 如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
- 如果startPos为负数且绝对值大于字符串长度,startPos为0。
举例:
var mystr="Hello World!";
document.write(mystr.substr(6)+ "<br />");
document.write(mystr.substr(0,5));
以上代码的输出:
World!
Hello
二、 Date 日期对象
1. 定义一个日期对象:
var Udate=new Date();
注意:
- 使用关键字new,Date()的首字母必须大写。
- 使 Udate 成为日期对象,并且已有初始值:当前时间(当前电脑系统时间)。
如果要自定义初始值:
var d = new Date(2012, 10, 1); //2012年10月1日
var d = new Date('Oct 1, 2012'); //2012年10月1日
2. 方法:
方法名称 | 功能描述 |
---|---|
get/setDate() | 返回/设置 |
get/setFullYear() | 返回/设置年份,用四位数表示 |
get/setYear() | 返回/设置年份 |
get/setMonth() | 返回/设置月份 0:一月… 11:十二月 |
get/setHours() | 返回/设置小时,24小时制 |
get/setMinutes() | 返回/设置分钟数 |
get/setSeconds() | 返回/设置秒钟数 |
get/setTime() | 返回/设置时间,单位毫秒数 |
getDay() | 返回星期,返回的是0-6的数字,0表示星期天 |
toUTCString() | 将当日的日期(根据 UTC)转换为字符串 |
get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。
举例:如果将目前日期对象的时间推迟1小时,代码如下:
<script type="text/javascript">
var mydate=new Date();
document.write("当前时间:"+mydate+"<br>");
mydate.setTime(mydate.getTime() + 60 * 60 * 1000);
document.write("推迟一小时时间:" + mydate);
</script>
结果:
当前时间:Thu Mar 6 11:46:27 UTC+0800 2014
推迟一小时时间:Thu Mar 6 12:46:27 UTC+0800 2014
注意:
- 一小时 60 分,一分 60 秒,一秒 1000 毫秒
- 时间推迟 1 小时,就是: “x.setTime(x.getTime() + 60 * 60 * 1000);”
三、Math对象
Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。
random()
random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。
语法:
Math.random();
举例:
document.write((Math.random())*10);
运行结果:
8.641546281942333
四、Array对象
数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的
1. 定义数组
- 定义了一个空数组
var 数组名= new Array();
- 定义时指定有n个空元素的数组:
var 数组名 =new Array(n);
- 定义数组的时候,直接初始化数据:
var 数组名 = [<元素1>, <元素2>, <元素3>...];
2. 属性
- length:返回数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。
3. 方法
方法 | 描述 |
---|---|
concat() | 合并两个或更多的数组,并返回结果 |
join(分隔符) | 将数组的所有元素组成一个字符串。元素通过指定的分隔符进行分割 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度 |
pop() | 删除并返回数组的最后一个元素 |
reverse() | 颠倒数组中元素的顺序 |
shift() | 删除并返回数组的第一个元素 |
splice() | 删除元素,并向数组中添加新元素 |
slice(start,end) | 从某个已有的数组返回选定的元素 |
sort() | 方法从字面上/数值上对数组进行排序 |
toString() | 把数组转换为字符串,并返回结果 |
toSource() | 返回该对象的源代码 |
toLocaleString() | 把数组转化为本地数组,并返回结果 |
valueOf() | 返回数组对象的原始值 |
3.1 concat()
concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。
举例:
var mya = new Array(3);
mya[0] = "1";
mya[1] = "2";
mya[2] = "3";
document.write(mya.concat(4,5)+"<br>");
document.write(mya);
运行结果:
1,2,3,4,5
1,2,3
3.2 join()
join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
语法:
arrayObject.join(分隔符)
参数说明:
分隔符:可选,若省略则使用逗号作为分隔符
举例:
var myarr1= new Array("86","010")
var myarr2= new Array("84697581");
var myarr3= myarr1.concat(myarr2);
document.write(myarr3.join("-"));
运行结果:
86-010-84697581
3.3 slice()
slice() 方法可从已有的数组中返回选定的元素。
语法:
arrayObject.slice(start,end)
参数说明:
- start必选。如果是负数,从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推
- end可选。如果是负数,从数组尾部开始算起的位置。
- 返回一个新的数组,包含从 start 到 end (不包括该元素)的数组中的元素。
- 可使用负值从数组的尾部选取元素。
- 如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
举例:
var myarr = new Array(1,2,3,4,5,6);
document.write(myarr + "<br>");
document.write(myarr.slice(2,4) + "<br>");
document.write(myarr);
运行结果:
1,2,3,4,5,6
3,4
1,2,3,4,5,6
3.4 sort()
语法:
arrayObject.sort(方法函数)
参数说明:
- 方法函数:可选。规定排序顺序,必须是函数
- 如果不指定<方法函数>,则按unicode码顺序排列
- 如果指定<方法函数>,则按<方法函数>所指定的排序方法排序
myArray.sort(sortMethod);
注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若返回值<0,则表示 A 在排序后的序列中出现在 B 之前。
若返回值=0,则表示 A 和 B 具有相同的排序顺序。
若返回值>0,则表示 A 在排序后的序列中出现在 B 之后。
举例:实现降序排序
function sortNum(a,b) {
return b-a;
}
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum));
运行结果:
100,80,50,16,6,1
举例:
某班的成绩出来了,现在老师要把班级的成绩打印出来。
效果图:
XXXX年XX月X日 星期X–班级总分为:81
格式要求:
1、显示打印的日期。 格式为类似“XXXX年XX月XX日 星期X” 的当前的时间。
2、计算出该班级的平均分(保留整数)。
<script type="text/javascript">
var mydate = new Date();
var i = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
document.write("今天是阳历:"+mydate.getFullYear() + "年" + mydate.getMonth() + "月" + mydate.getDay() + "日" + i[mydate.getDay()]+"<br />");
//通过javascript的日期对象来得到当前的日期,并输出。
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var myarr = scoreStr.split(";");
for(var i=0;i<myarr.length;i++)
{
document.write(myarr[i]+"<br />");
}
var sum =0;
for(var i=0;i<myarr.length;i++)
{
sum = sum + parseInt(myarr[i].slice(3));
}
document.write("该班级总分是:"+sum+"该班级平均分是:"+parseInt(sum/myarr.length));
</script>
运行结果:
今天是阳历:2018年9月1日星期一
小明:87
小花:81
小红:97
小天:76
小张:74
小小:94
小西:90
小伍:76
小迪:64
小曼:76
该班级总分是:815该班级平均分是:81
五、window对象
window对象是BOM的核心,window对象指当前的浏览器窗口.
1. 方法
2. open()-打开新窗口
open() 方法可以查找一个已经存在或者新建的浏览器窗口。
- 语法
window.open([URL], [窗口名称], [参数字符串])
- 参数说明
URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。
窗口名称:可选参数,被打开窗口的名称。
1.该名称由字母、数字和下划线字符组成。
2."_top"、"_blank"、"_self"具有特殊意义的名称。
_blank:在新窗口显示目标网页
_self:在当前窗口显示目标网页
_top:框架网页中在上部窗口中显示目标网页
3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。
4.name 不能包含有空格。
参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。 - 参数表
参数 | 值 | 说明 |
---|---|---|
top | Number | 窗口顶部离开屏幕顶部的像素数 |
left | Number | 窗口左端离开屏幕左端的像素数 |
width | Number | 窗口的宽度 |
height | Number | 窗口的高度 |
menubar | yes/no | 窗口有无菜单 |
toolbar | yea/no | 窗口有无工具条 |
scrollbars | yea/no | 窗口有无滚动条 |
status | yea/no | 窗口有无状态栏 |
- 举例:
window.open("http://www.imooc.com","_blank","width=600,height=400,top=10,left=0")
2. confirm()-确认
confirm 消息对话框通常用于允许用户做选择的动作,如:“你对吗?”等。弹出对话框(包括一个确定按钮和一个取消按钮)。
- 语法
confirm(str);
-
参数说明
str:在消息对话框中要显示的文本
返回值: Boolean值 -
返回值:
当用户点击"确定"按钮时,返回true
当用户点击"取消"按钮时,返回false -
举例
<script type="text/javascript">
var mymessage=confirm("你喜欢JavaScript吗?");
if(mymessage==true)
{ document.write("很好,加油!"); }
else
{ document.write("JS功能强大,要学习噢!"); }
</script>
3. prompt()-提问
- 语法
prompt(str1, str2);
- 参数说明:
str1: 要显示在消息对话框中的文本,不可修改
str2:文本框中的内容,可以修改 - 返回值:
点击确定按钮,文本框中的内容将作为函数返回值
点击取消按钮,将返回null - 举例:
<script type="text/javascript">
function rec(){
var score; //score变量,用来存储用户输入的成绩值。
score =prompt('请输入你的成绩:') ;
if(score>=90)
{
document.write("你很棒!");
}
else if(score>=75)
{
document.write("不错吆!");
}
else if(score>=60)
{
document.write("要加油!");
}
else
{
document.write("要努力了!");
}
}
</script>
<input name="button" type="button" onClick="rec()" value="点击我,对成绩做评价!" />
运行结果:
4. setInterval() -计时器
在执行时,从载入页面后每隔指定的时间执行代码。
语法:
setInterval(代码,交互时间);
参数说明:
-
代码:要调用的函数或要执行的代码串。
-
交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。
返回值:
一个可以传递给 clearInterval() 从而取消对"代码"的周期性执行的值。
举例:
<script type="text/javascript">
function clock(){
var time=new Date();
document.getElementById("clock").value = time;
}
var i=setInterval("clock()",100);
</script>
<body>
<form>
<input type="text" id="clock" size="50" />
<input type="button" value="Stop" onclick="clearInterval(i)" />
</form>
</body>
运行结果:
注意: setInterval()函数不需要调用
5. setTimeout()-计时器
setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。
语法:
setTimeout(代码,延迟时间);
参数说明:
- 要调用的函数或要执行的代码串。
- 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。
举例1:创建一个运行于无穷循环中的计数器,我们需要编写一个函数来调用其自身。在下面的代码,当按钮被点击后,输入域便从0开始计数。
<head>
<script type="text/javascript">
var num=0;
function numCount(){
document.getElementById('txt').value=num;
num=num+1;
setTimeout("numCount()",1000);
}
</script>
</head>
<body>
<form>
<input type="text" id="txt" />
<input type="button" value="Start" onClick="numCount()" />
</form>
</body>
运行结果:
举例2:取消计时器clearTimeout()
<script type="text/javascript">
var num=0,i;
function timedCount(){
document.getElementById('txt').value=num;
num=num+1;
i=setTimeout(timedCount,1000);
}
setTimeout(timedCount,1000);
function stopCount(){
clearTimeout(i);
}
</script>
<body>
<form>
<input type="text" id="txt">
<input type="button" value="Stop" onClick="stopCount()">
</form>
</body>
6. history对象
- 语法:
window.history.[属性|方法]
- 参数说明:
window可以省略。 - 属性:
length:返回浏览历史列表中的URL数量 - 方法:
方法 | 描述 |
---|---|
back() | 加载历史列表中的前一个 URL。相当于window.history.go(-1); |
forward() | 加载历史列表中的下一个 URL。相当于window.history.go(1); |
go() | 加载历史列表中的某个具体页面。 |
7. location对象
location用于获取或设置窗体的URL,并且可以用于解析URL。
- 语法
location.[属性|方法]
- location对象属性图示:
- 属性:
- 方法:
8. Navigator对象
Navigator对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。
- 属性:
属性名 | 描述 |
---|---|
appCodeName | 浏览器代码名的字符串表示 |
appName | 返回浏览器的名称 |
appVersion | 返回浏览器的平台和版本信息 |
platform | 返回运行浏览器的操作系统平台 |
userAgent | 返回用户代理头的字符串表示(就是包括浏览器版本信息等的字符串) |
9. screen对象
screen对象用于获取用户的屏幕信息。
- 语法:
window.screen.属性
- 对象属性: