发布时间:2023-04-21 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

目录

JS简介

第1关: JavaScript基础入门

第2关: JavaScript 与 HTML

第3关: JavaScript 变量

JS 数据类型

第1关: JavaScript 数据类型介绍

第2关: JavaScript 数据类型转换

JS运算符

第1关: 算术运算符

第2关: 比较和逻辑运算符

第3关: 条件和赋值运算符

第4关: 运算符的优先级和结合性

JS对象

第1关: 对象的创建

第2关: 属性的增删改查

第3关: 属性的检测和枚举

JS数组

第1关: 数组的创建、读写和长度

第2关: 数组元素的增减

第3关: 数组的遍历和多维数组

第4关: 数组的常用方法

第5关: 数组的应用——内排序

JS条件语句

第1关: if-else类型

第2关: switch类型

第3关: 综合练习

JS循环语句

第1关: while类型

第2关: do while类型

第3关: for类型

第4关: for in类型

第5关: break和continue的区别——break

第6关: break和continue的区别——continue

JS函数

第1关: 用函数语句定义函数

第2关: 用表达式定义函数

第3关: 函数的调用

第4关: 未定义的实参

第5关: 实参对象

第6关: 对象作为参数

第7关: 函数对象

字符串

第1关: 查找字符串的位置

第2关: 求指定位置的字符

第3关: 字符串的截取

第4关: 大小写转换

第5关: 字符串的分割

JS运算符

第1关: 算术运算符

第2关: 比较和逻辑运算符

第3关: 条件和赋值运算符

第4关: 运算符的优先级和结合性

正则表达式

第1关: 字符串字面量

第2关: 字符类

第3关: 重复

第4关: 选择

第5关: 分组

第6关: 引用

第7关: 匹配位置

第8关: 修饰符

第9关: 正则表达式的使用


JS简介

第1关: JavaScript基础入门

<!DOCTYPE html>
<html>
	<head>
		<!-- 请在此处编写代码 -->
		<!---------Begin--------->
		<script>
		window.alert("Hello,JavaScript!");
		</script>
		<!---------End--------->
	</head>
	<body>
	</body>
</html>

第2关: JavaScript 与 HTML

<!DOCTYPE html>
<html>
	<!-- 请在此处编写代码 -->
	<!---------Begin--------->
	<head>
		<script>
		console.log("如何在HTML代码中嵌入JavaScript代码");
		</script>
	</head>
	<body>
	</body>
	<!---------End--------->
</html>

第3关: JavaScript 变量

var a = 1;
// 请在此处编写代码
/********** Begin **********/
var b = 100;
/********** End **********/
function variableTest(c) {
	/********** Begin **********/
	var a = 10;
	/********** End **********/
    return a*c+b;
}

JS 数据类型

第1关: JavaScript 数据类型介绍

function objectTest() {
	var a = {name:"myName",id:2};
	var b = [1,true,2];
	var c = 1;
	var d = "1";
	var e = true;
	var f;
	var aType,bType,cType,dType,eType,fType;
	//请在此处编写代码
	/********** Begin **********/
	aType = "object";
	bType = "array";
	cType = "number";
	dType = "string";
	eType = "bool";
	fType = "undefined";
	/********** End **********/
	return aType+","+bType+","+cType+","+dType+","+eType+","+fType;
}

第2关: JavaScript 数据类型转换

function mainJs(args1,args2,args3) {
	// 请在此处编写代码
	/*********Begin***********/
	var a = parseInt(args1);
	var b = parseInt(args2,16);
	var c = parseFloat(args3);
	/*********End***********/
	return a+b+c;
}

JS运算符

第1关: 算术运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	var a1 = parseInt(a);
	var b1 = parseInt(b);
	var c = a1%b1;
	a = a.toString();
	b = b.toString();
	c = c.toString();
/********** End **********/
	return a+b+c;
}

第2关: 比较和逻辑运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	if(a > b) {
		return a&&b;
	}
	else {
		return !a;
	}
/********** End **********/
}

第3关: 条件和赋值运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	return (a>b)?a:b;
/********** End **********/
}

第4关: 运算符的优先级和结合性

function mainJs(a,b) {
    var a = parseInt(a);
    var b = parseInt(b);
	//请在此处编写代码
	/********** Begin **********/
    var c = (--a+b)*b==24?1:0;
    var d = 4;
    var e = (c*=d)+d;
	/********** End **********/
    return e;
}

JS对象

第1关: 对象的创建

function Car(plate,owner) {
    this.plate = plate;
    this.owner = owner;
}
function Job() {};
Job.prototype.company = "myCompany";
Job.prototype.salary = 12000;
function mainJs(a,b,c,d,e) {
    //请在此处编写代码
	/********** Begin **********/
    var student = {name:a,gender:b};
    var myCar = new Car(c,d);
    var myJob =  new Job();
    myJob.company = e;
    /********** End **********/
    return student.name+student.gender+myCar.plate+myCar.owner+myJob.company;
}

第2关: 属性的增删改查

var store = {
	name:"Luma Restaurant",
	location:"No 22,Cot Road",
	accountant:"Vivian Xie",
	day1:3200,
	day2:3200,
	day3:3200,
	day4:3200,
	day5:3200,
	day6:3200,
	day7:3200,
	day8:3200,
	day9:3200,
	day10:3200
}
function reviseAttribute(reviser,date,attValue) {
	//Convert string to integer
	attValue = parseInt(attValue);
	//请在此处编写代码
	/********** Begin **********/
	store["day"+date] = attValue;
	store.accountant = reviser;
	/********** End **********/
	var totalSales =  store["day1"]+store["day2"]+store["day3"]+store["day4"]+store["day5"]+store["day6"]+store["day7"]+store["day8"]+store["day9"]+store["day10"];
    return totalSales+store.accountant;
}

第3关: 属性的检测和枚举

var orange = {
	weight:"200g",
	color:"orange",
	taste:"sour"
};
var car = {
	brand:"Jaguar",
	price:"$80000",
	model:"XFL"
}
function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
	var result = "";
	if(a in car) {
		for(att in car) {
			result += att;
		}
	}
	else {
		for(att in orange) {
			result += att;
		}
	}
	return result;
	/********** End **********/
}

JS数组

第1关: 数组的创建、读写和长度

var array1 = [1,2,3,"js",4,true,"hello"];
var array2 = [true,true,"java",2.1];
function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
	a = parseInt(a);
	if(array1.length == a) {
		return array1[array1.length-1];
	}
	else {
		return array2[array2.length-1];
	}
	/********** End **********/
}

第2关: 数组元素的增减

var testArray = [12,"java","js","c","c++",24,36,"python","c#","css"];
function mainJs(a,b) {
	a = parseInt(a);
	b = parseInt(b);
	//请在此处编写代码
	/********** Begin **********/
	for(var i = 0;i < a;i++) {
		var rearMember = testArray.pop();
		testArray.unshift(rearMember);
	}
	return testArray[b];
	/********** End **********/
}

第3关: 数组的遍历和多维数组

var arr = [1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15,16,17,18,19,20,21,23,22];
function mainJs(a,b) {
	a = parseInt(a);
    b = parseInt(b);
    //请在此处编写代码
	/********** Begin **********/
	//新建二维数组,行长为a,列长为b
    var multiArr = new Array(a);
    for(var i = 0;i < a;i++) {
        multiArr[i] = new Array(b);
    }
	//依次将原数组的元素放置在二维数组的相应位置上
    var count = 0;
    for(var i = 0;i < a;i++) {//先行
        for(var j = 0;j < b;j++) {//后列
            multiArr[i][j] = arr[count++];
        }
    }
	//返回二维数组
    return multiArr;
	/********** End **********/
}

第4关: 数组的常用方法

function mainJs(myArray) {
	myArray = myArray.split(",");
	//请在此处编写代码
	/********** Begin **********/
	//新建用来存储字符串a位置的数组
	var indexsArrayOfStringa = new Array();
	//新建用来存储字符串b位置的数组
	var indexsArrayOfStringb = new Array();
	//求出参数字符串的长度
	var myArrayLength = myArray.length;
	var index = 0;
	//遍历获得字符串a的所有位置
	while(index < myArrayLength) {
		index = myArray.indexOf("a",index);
		if(index == -1) break;
		indexsArrayOfStringa.push(index++);
	}
	index = 0;
	//遍历获得字符串b的所有位置
	//这两个函数千万不要合在一起写!!!
	while(index < myArrayLength) {
		index = myArray.indexOf("b",index);
		if(index == -1) break;
		indexsArrayOfStringb.push(index++);
	}
	//返回两个数组的和数组
	return indexsArrayOfStringa.concat(indexsArrayOfStringb);
	/********** End **********/
}

第5关: 数组的应用——内排序

function mainJs(a) {
	var arr = a.split(",");
	for(var i = 0;i < arr.length;i++) {
    	arr[i] = parseInt(arr[i]);
	}
	//请在此处编写代码
	/********** Begin **********/
	var aLength = arr.length;//待排序数组的长度
	var temp;
	var max = arr[0];
	var maxIndex = 0;
	var indexArr = new Array();//记录最大元素位置的数组
	//进行选择排序
	for(var i = 0;i < aLength-1;i++) {
		for(var j = 1;j < aLength-i;j++) {
			if(arr[j] > max) {//更新最大元素及其索引
				max = arr[j];
				maxIndex = j;
			}
		}
		//记录最大元素所在的位置
		indexArr.push(maxIndex);
		//移动最大元素到索引最大处
		temp = arr[aLength-i-1];
		arr[aLength-i-1] = arr[maxIndex];
		arr[maxIndex] = temp;
		//将最大元素及位置归零
		var max = arr[0];
    	var maxIndex = 0;
	}
	return indexArr;
	/*********end*********/
}

JS条件语句

第1关: if-else类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	if(a >= 60) {
		return "pass";
	}
	else {
		return "unpass";
	}
	/********** End **********/
}

第2关: switch类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var name;
	switch(a) {
		case 82414:name = "Superior";
		break;
		case 59600:name = "Huron";
		break;
		case 58016:name = "Michigan";
		break;
		case 25744:name = "Erie";
		break;
		case 19554:name = "Ontario";
		break;
		default:name = "error";
		break;
	}
	return name;
	/********** End **********/
}

第3关: 综合练习

//判断一个年份是否为闰年
function judgeLeapYear(year) {
	//请在此处编写代码
	/********** Begin **********/
    var tt="年是闰年";
	var ff="年不是闰年";
	if(year%100==0){
		if(year%400==0){
			return year+tt;
		}else{
			return year+ff;
		}
	}else{
           if(year%4==0){
			   return  year+tt;
		   }else{
			   return year+ff;
		   }
	}  
	/********** End **********/
}
//对输入进行规范化处理
function normalizeInput(input) {
	/********** Begin **********/
	var output;
    switch(input){
	case "中共党员":
	case "党员":
	case "共产党员":output="中共党员";
		break;
		case "中共预备党员":
		case "预备党员":output="中共预备党员";
		break;
		case "团员":
	    case "共青团员":output="共青党员";
		break;
    case "大众":
	case "市民":
	case "人民": output="群众";
		break;
	default:  output="错误数据";
		break;	
	}
	return output;
	/********** End **********/
}
//判断苹果是否为优质品
function evaluateApple(weight,water) {
	/********** Begin **********/
    if(weight>=200 )
	{return "是优质品";}
	else{
		if(water>=0.7)
		{return "是优质品";}
		else
		{return "不是优质品";}
	}
	/********** End **********/
}

JS循环语句

第1关: while类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var sum = 0;
	var i = 2;
	while(i <= a) {
    	var j = 2;
    	while(j < i) {
        	if(i%j == 0) {//能被整除,不是质数
        		break;//不需要再判断
         	}
    		j ++;//除数加1,继续测试是不是质数
    	}
    	if(j == i) {//还是没有因数,证明这是一个质数
    		sum = sum+i;//加在结果里面
    	}
		i = i+1;//测试下一个数是不是质数
	}
	return sum;
	/********** End **********/
}

第2关: do while类型

function mainJs(a,b) {
    a = parseInt(a);
    b = parseInt(b);
	//请在此处编写代码
    /********** Begin **********/
    var sum = 0;//结果
    var i = a+1;//从a后面的第一个数开始累加
    while(i < b) {//直到b前面的第一个数
        sum += i;
        i++;//下一个数
    }
    return sum;//返回结果和
   /********** End **********/
}

第3关: for类型

function mainJs(a) {
	a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
	var numLen = a.toString().length;//求出是个几位数
	var num = 1;
	var result = 0;
	for(var i = 0;i < numLen;i++) {
		var curNum = a.toString().substring(i,i+1);//取出其中的第i位数
		result = result+curNum*num;
		num = num*10;
	}
	return result;
	/********** End **********/
}

第4关: for in类型

var apple = {
    weight:"200克",
    level:"特级",
    locationProvince:"陕西省",
    locationCity:"榆林市"
}
function mainJs(a,b){
    apple[a]= b;
    //请在此处编写代码
	/********** Begin **********/
    var result = "";//结果字符串
    for(var x in apple) {//遍历所有的属性
        if(x.indexOf("location") == 0) {//以location开头的属性
            result += apple[x];//属性的值拼接
        }
    }
    return result;//返回结果
    /********** End **********/
}

第5关: break和continue的区别——break

function mainJs(a) {
	var arr = a.split(",");
	for(var k = 0,length = arr.length;k < length;k++) {
		arr[k] = parseInt(arr[k]);
	}
	//请在此处编写代码
	/********** Begin **********/
	for(var i = 0,length = arr.length;i < length;i++) {
		var cur = arr[i];//数组的第i个数
		for(var j = 2;j < cur;j++) {
			if(cur%j == 0) break;//不是质数,不需要再测试
		}
		if(j == cur) break;//已经找到了质数cur
	}
	return arr[i];
	/********** End **********/
}

第6关: break和continue的区别——continue

function mainJs(a,b) {
    a = a.split(",");
    for(var i = 0,length = a.length;i < length;i++) {
        a[i] = parseInt(a[i]);
    }
    var sum = 0;
    for(var i = 0,length = a.length;i < length;i++) {
		//请在此处编写代码
        /********** Begin **********/
        if(b > 0 && a[i] < 0) continue;//求正数的和,遇到负数跳过
        if(b < 0 && a[i] > 0) continue;//求负数的和,遇到正数跳过
        /********** End **********/
        sum += a[i];
    }
    return sum;
}

JS函数

第1关: 用函数语句定义函数

//请在此处编写代码
/********** Begin **********/
function mainJs(a,b){
    return a+b;
}
/********** End **********/

第2关: 用表达式定义函数

function mainJs(a) {
    a = parseInt(a);
	//请在此处编写代码
	/********** Begin **********/
    var myFunc = function(b) {
        var first = (b-b%100)/100;//求出百位数
        var second = (b%100-b%100%10)/10;//求出十位上的数
        var third = b-first*100-second*10;//求出各位数
        return first+second+third;
    }
    /********** End **********/
    return myFunc(a);
}

第3关: 函数的调用

//求最大值的函数
function getMax(b,c) {
    return b>c?b:c;
}
//求最小值的函数
var getMin = function(b,c) {
    return b>c?c:b;
}
//对象中的求和函数
var myObject = {
    id:1,
    name:"function",
    myFunc:function(b,c) {
        return b+c;
    }
}
function mainJs(a,b,c) {
    a = parseInt(a);
    b = parseInt(b);
    c = parseInt(c);
    //请在此处编写代码
	/********** Begin **********/
    if(a == 1) {
        return getMax(b,c);
    } else if(a == 2) {
        return getMin(b,c);
    } else {
        return myObject.myFunc(b,c);
    }
    /********** End **********/
}

第4关: 未定义的实参

function mainJs(a,b,c,d) {
    //请在此处编写代码
	/********** Begin **********/
    if(a === undefined) {
        a = "green";
    }
    if(b === undefined) {
        b = "green";
    }
    if(c === undefined) {
        c = "red";
    }
    if(d === undefined) {
        d = "yellow";
    }
    return a+"-"+b+"-"+c+"-"+d;
   /********** End **********/
}

第5关: 实参对象

//请在此处编写代码
/********** Begin **********/
function getMax() {
	var aLength = arguments.length;
	var amax = 0;
	for(var i = 0;i < aLength;i++) {
		if(arguments[i] > amax) 
			amax = arguments[i];
	}
	return amax;
}
/********** End **********/
function mainJs(a) {
	a = parseInt(a);
	switch(a) {
		case 1:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123);
		case 2:return getMax(23,21,56,34,89,34,32);
		case 3:return getMax(23,21,56,34);
		case 4:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123,8888);
		case 5:return getMax();
		default:break;
	}
}

第6关: 对象作为参数

var park = {
    name:"Leaf Prak",
    location:"Fifth Avenue",
    todayTourists:4000
};
var computer = {
    name:"Levenon",
    price:"$800",
    memory:"8G"
};
var city = {
    name:"HangZhou",
    country:"Chine",
    population:9400000
}
function objectFunction(object) {
   //请在此处编写代码
	/********** Begin **********/
    var result = "";
    for(x in object) {
        result = result+x+":"+object[x]+",";
    }
    return result;
    /********** End **********/
}
function mainJs(a) {
    a = parseInt(a);
    switch(a) {
        case 1:return objectFunction(park);
        case 2:return objectFunction(computer);
        case 3:return objectFunction(city);
        default:break;
    }
}

第7关: 函数对象

//求数组中奇数元素的个数
function getOddNumber(a) {
    var result = 0;
    for(var i = 0;i < a.length;i++) {
        if(a[i]%2 != 0)
            result++;
    }
    return result;
}
//求数组中偶数元素的个数
function getEvenNumber(a) {
    var result = 0;
    for(var i = 0;i < a.length;i++) {
        if(a[i]%2 == 0)
            result++;
    }
    return result;
}
function getNumber(func,a) {
	//请在此处编写代码
    /*********Begin*********/
    return func(a);
    /*********End*********/
}
//测试接口
function mainJs(b,a) {
    a = a.split(",");
    var aLength = a.length;
    for(var i = 0;i < aLength;i++) {
        a[i] = parseInt(a[i]);
    }
    if(b == "getEvenNumber") {
        return getNumber(getEvenNumber,a);
    } else {
        return getNumber(getOddNumber,a);
    }
}

字符串

第1关: 查找字符串的位置

function mainJs(a,b) {
    //请在此处编写代码
	/********** Begin **********/
    var startIndex = 0;
    var aLength = a.length;//a的长度
    var index = 0;
    var result = 0;
    while(startIndex < aLength) {//还没有匹配到末尾
        index = a.indexOf(b,startIndex);//本次匹配的位置
        if(index == -1) {//后面已经没有匹配的子串
            break;//提前结束整个过程
        }
        startIndex = index+1;//下次匹配的起始位置
        result += index;
    }
    return result;
	/*********End*********/
}

第2关: 求指定位置的字符

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var result = "";
    for(var i = 0;i < 6;i++) {//遍历,依次获取前六个数字
        result += a.charAt(i);
    }
    return result;
    /********** End **********/
}

第3关: 字符串的截取

function mainJs(a,b) {
    //请在此处编写代码
	/********** Begin **********/
    if(a.indexOf(b) == -1) {//没有杂质字符串直接返回
        return a;
    } else {
        var startIndex = a.indexOf(b);//杂质字符串起始处
        var endIndex = startIndex+b.length;//杂质字符串结束处
        return a.slice(0,startIndex)+a.slice(endIndex);
    }
    /*********End*********/
}

第4关: 大小写转换

function mainJs(a,b) {
	//请在此处编写代码
	/********** Begin **********/
    var str1 = b.toUpperCase();//把b转换为大写
    var aa = a.split(b);//以b为边界分割a为字符串数组
    a = aa.join(str1);//以转换后的b为边界重新连接字符串数组得到新的a
    return a;
	/*********End*********/
}

第5关: 字符串的分割

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var spaceArray = a.split(" ");//以space分割
    var commaArray = a.split(",");//以逗号分隔
    return spaceArray.length+commaArray.length-1;
    /*********End*********/
}

JS运算符

第1关: 算术运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	var a1 = parseInt(a);
	var b1 = parseInt(b);
	var c = a1%b1;
	a = a.toString();
	b = b.toString();
	c = c.toString();
/********** End **********/
	return a+b+c;
}

第2关: 比较和逻辑运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	if(a > b) {
		return a&&b;
	}
	else {
		return !a;
	}
/********** End **********/
}

第3关: 条件和赋值运算符

function mainJs(a,b) {
//请在此处编写代码
/********** Begin **********/
	return (a>b)?a:b;
/********** End **********/
}

第4关: 运算符的优先级和结合性

function mainJs(a,b) {
    var a = parseInt(a);
    var b = parseInt(b);
	//请在此处编写代码
	/********** Begin **********/
    var c = (--a+b)*b==24?1:0;
    var d = 4;
    var e = (c*=d)+d;
	/********** End **********/
    return e;
}

正则表达式

第1关: 字符串字面量

function mainJs(a) {
    a = a.replace(",","\n");
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /js\n/;
    /********** End **********/
    return pattern.test(a).toString();
}

第2关: 字符类

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /[a-zA-Z][0-9]/;
    var pattern2 = /A[^0-9]/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第3关: 重复

function mainJs(a) {
	//请在此处编写代码
	/********** Begin **********/
    var pattern1 = /\?+/;  
    var pattern2 = /\+{3,3}/;  
    var pattern3 = /\{\}{1,2}/;  
    var pattern4 = /\\{0,1}/;  
	/********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString()+","+pattern4.test(a).toString();
}

第4关: 选择

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /[0-9]{17}([0-9]|X)/;
    var pattern2 = /2(3|4)[0-9]{4}/;
    var pattern3 = /010|02[012345789]/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString()+","+pattern3.test(a).toString();
}

第5关: 分组

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /(\?\+){2,}/;
    var pattern2 = /\d(\?|\+)\d/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第6关: 引用

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern1 = /([0-9]{3})[^0-9]\1/;
    var pattern2 = /[A-Z]([0-9])[A-Z]\1[A-Z]\1/;
    /********** End **********/
    return pattern1.test(a).toString()+","+pattern2.test(a).toString();
}

第7关: 匹配位置

function mainJs(a) {
     //请在此处编写代码
	/********** Begin **********/
     var pattern = /^js\b/;
    /********** End **********/
     return pattern.test(a).toString();
}

第8关: 修饰符

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /\bshell\b/ig;
    /********** End **********/
    return a.match(pattern);
}

第9关: 正则表达式的使用

function mainJs(a) {
    //请在此处编写代码
	/********** Begin **********/
    var pattern = /[0-9]/g;
    return a.replace(pattern,"");
    /********** End **********/
}