此次的编码均在<script></script>脚本中编写。
一、String对象
1.关于String对象的常用方法
//关于String对象的常用的方法
//charAt(int index):返回指定索引处的字符
//indexOf(String str):查找某个子字符串在当前字符串中第一次出现的索引
//lastIndexOf(String str):str最后一次出现的索引。
//fontcolor("颜色值")设置字符串的颜色标记
//replace(oldstr,newstr):替换功能,并不改变原来的字符串。
//substring(var start,var end):从指定索引位置开始,到指定位置结束。但不包含end处的字符。
//substr(var start,var length):从指定索引开始截取到指定长度结束。
//String对象的:split(根据指定字符串截取),返回的是字符串数组(Array对象)。
var arr1="java-php-hadoop-go-r-python";
var strArr=arr1.split("-");
//遍历数组
for(var i=0;i<strArr.length;i++){
document.write(strArr[i]+" ");
}
2.测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>String对象</title>
</head>
<script>
/* ==与valueOf的测试 */
// var str1="hello";
// var str2=new String("hello");
// // document.write((str1==str2)+"<br />");//true
// var str3=new String("hello");
// document.write((str2==str3)+"<br>");//false
// document.write((str1==str3)+"<br>");//true
// document.write((str2.valueOf()==str3.valueOf())+"<br>");//true
/*charAt(下标)的测试*/
// document.write(str1.charAt(2)+"<br />");//l,说明下标从0开始
/*object1.indexOf(object2) 查找object2在object1中第一次出现的位置(返回下标)*/
var str1="hellozlo";
var str2="lo";
document.write(str1.indexOf(str2)+"<br>");//3
/*lastIndexOf(String str):str最后一次出现的索引*/
document.write(str1.lastIndexOf(str2)+"<br>");//6
/*fontcolor("#00ff00") :设置字符串的颜色标记 颜色标记是标记符号或者英文都可以*/
document.write(str1.fontcolor("red")+"<br>");
/*replace(oldstr,newStr):替换功能,但并没有改变原来的字符串*/
document.write("替换后的字符串为:");
str1=str1.replace("zlo"," world");
document.write(str1+"<br>");
/*substring(var start,var end):从指定位置开始截取,到指定位置结束: 不包含end位置*/
//str1:hello world 想得到lo wo
document.write(str1.substring(3,8)+"<br />");//lo wo
/*substr(var start,var length)*/
document.write(str1.substr(2,5)+"<br>");//llo w
/*String对象的:split(根据指定字符串截取),返回的是字符串数组(Array对象)。*/
var str="java-web-html-script";
var strs=str.split("-");
for(var i=0;i<strs.length;i++){
document.write(strs[i]+" ");
}
</script>
<body>
</body>
</html>
结果:
二、Array对象
1.数组对象的特点
* 1)在js中不用担心数组角标越界问题
* 2)在js中,数组的元素可以指定任意类型
2.如何创建Array对象
//方式1 :
/*var arr = new Array() ;
//指定元素的内容
arr[0] = "hello" ;
arr[1] = true ;
arr[2] = 'A' ;
arr[3] = 100 ;
arr[4] = 3.14;
arr[5] = new Object();
for(var i = 0 ; i < arr.length ;i ++){
document.write(arr[i]+" ") ;
}
alert(arr.length);*/
//方式2:指定固定长度
/*var arr = new Array(3) ;
arr[0] = 100 ;
arr[1] = "javascript" ;
arr[2] = true ;
arr[3] = 3.14;*/
//方式3:指定具体元素的内容
//推荐直接使用第三种方式:指定具体的元素内容
var arr = ["hello",true ,3.1415926,'A'] ;
/*alert(arr.length);
for(var i = 0 ; i < arr.length ;i ++){
document.write(arr[i]+" ") ;
}*/
3.Array中的函数
//join(str):将数组拼接成一个字符串使用str分隔符号
//reverse():将数组的元素进行反转
测试代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Array对象</title>
</head>
<script>
//方式一:
var arr=new Array();
arr[0]="hello";
arr[1]="java";
arr[2]="web";
//方式二:
var arr2=new Array(3);
arr2[0]="C";
arr2[1]="C++";
arr2[2]="Python";
for(var i=0;i<arr2.length;i++){
document.write(arr2[i]+" ");
}
document.write("<hr />");
alert(arr2.length);
//方式三:直接指定具体元素内容
var arr3=["300","301","302","303"];
for(var i=0;i<arr3.length;i++){
document.write(arr3[i]+" ");
}
alert(arr3.length);
document.write("<hr />");
//使用join(str)
var res=arr2.join("-");
document.write(res);
document.write("<hr />");
//使用reverse()
arr2.reverse();
for(var i=0;i<arr2.length;i++){
document.write(arr2[i]+" ");
}
document.write("<hr />");
</script>
<body>
</body>
</html>
结果:
三、自定义对象
1.自定义对象的方式
自定义对象
1)定义对象
2)创建对象
a)有参数的方式(类似于java中的有参构造方法)
function 函数/对象名(描述当前对象的属性){
//追加属性
this.属性名=值;
//追加方法
this.方法名 = function(){
....
}
}
var 对象名称 = new 函数名称(实际属性值);
2.测试代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自定义对象</title>
</head>
<!--<script>
//方式一:定义对象
function Person(name,age){
this.name=name;
this.age=age;
this.speak=funtion(){
alert("我会说");
}
}
//创建对象
var p=new Person("张三",23);
document.write(p.name+"-"+p.age);
p.speak();
</script>-->
<script>
//方式1:有参构造方式 (第一种用的比较多)
//定义一个Person对象
/*function Person(name,age){//this:代表Person对象的地址值
//追加属性
this.name = name ;
this.age = age ;
//追加一个方法
this.speak=function (){
alert("调用说话的功能...")
}
}
//创建对象
var p = new Person("张三",20) ;*/
//方式2:无参形式(推荐的)
//定义对象
/*function Person(){
}
//创建对象
var p = new Person();
//追加属性
p.name = "李四" ;
p.age = 22 ;
//追加方法
p.speak =function(){
alert("调用李四说话的功能") ;
}*/
//方式3:利用object对象,在js中,Object对象是任意对象的模板
//创建一个对象
/*var p = new Object () ;
//追加属性
p.name = "王五" ;
p.age = 18;
//追加方法
p.speak=function(){
alert("调用王五说英语的功能") ;
}*/
//方式4:字面量值的方式:属于json格式
/**
* "key1":valu1,
* "key2":valu2,
* "...":value3
*/
//json解析: 三种: gson fastJson json的原生方式
var p = {
"name":"赵六" ,
"age" :20,
"speak":function(){
alert("调用赵六的说话的功能") ;
}
} ;
//输出属性
document.write("姓名是:"+p.name+",年龄是:"+p.age) ;
//调用方法
p.speak() ;
</script>
<body>
</body>
</html>
四、原型属性
js的原型属性:
prototype:解决给内置对象中追加额外的方式
特点:
1)原型属性的出现就是为了解决内置对象中追加额外方法用的。
2)给原型对象中追加的方法,会自动的追加到内置对象中。
3)js中的所有内置对象都有默认的原型:prototype。