分享

JavaScript_summary2012年8月25日17:48:46

 昵称2735774 2012-08-25

<html>  <!-- -->
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
<!--<script language="javascript" type="text/javascript" src="yzj.js"></script>-->
<script type="text/javascript">
//基本数据类型共五种:即数值型、字符串型、布尔型、undefined、null
//age=26;//变量未声明直接赋值,为数值类型,为全局变量,整个HTML文档的所有脚本都能访问该变量
//var username="yzj";//变量声明并赋值,为字符串类型,局部变量是在函数内声明的变量
//var marriaged;//声明未赋值,默认值为undefined
//marriaged=true;//布尔型
//数据类型的转换
//var a="100", b=50;
//var c=a+b//【10050】b被隐式转换为字符串型
//var d=parseInt(a)+b;//【150】a被显示转换成数值型,parseInt将字符串转换为整数


//运算符,JavaScript中的运算符基本和java差不多,多了恒等于、非恒等于,但typeof相对于java中的instanceof
//算术运算符+ - * / % ++ --,+还可以连接字符串,-可以为负号;关系运算符== != > < >= <= === !==
//逻辑运算符 && || !  赋值运算符=  复合运算符  ?:运算符 ,逗号运算符
//void运算符 未看
//document.writeln("字符串类型:" + typeof a);//【string】number string boolean undefined 对象返回object 函数返回function
//document.writeln("数值类型:" + typeof b);//【number】
//document.writeln("等于==会发生自动类型转换:" + (3 == "3"));//【true】
//document.writeln("恒等于===不会发生自动类型转换" + (3 === "3"));//【false】

//流程控制,基本和java差不多,由于JavaScript是弱类型语言,所以switch语句中的表达式不限制类型,可以为数值型、字符串型、布尔型等
//if switch where do...where for break continue
/*var grade = prompt("please input your grade like: 及格 不及格", "不及格");
switch(grade){
 case "及格"://可以直接对字符串进行判断
 alert("及格");
 break;
 case "不及格":
 alert("不及格");
 break;
 }
*/


//函数: 变量声明以var开头,函数声明以function开头;由于JavaScript是弱类型语言,所以函数有返回值,但声明时无返回值类型;形参为局部变量,一般声明时省略var;弱类型,所以不进行参数类型和个数的检查,需要自己通过typeof检查类型,实参多余的参数会被省略,实参过少的参数会被赋值为undefined;
//也分为值传递和引用传递
//匿名函数,即在表达式中定义函数var square=function(x){return x*x}  调用方式:square(3);
//动态创建函数 p71 未看
//函数的嵌套 p72未看
//递归函数 p73 未看
//arguments数组,用来存放传入的实际参数值,可以直接使用该数组访问实参
/*function printArguments(){
  for(var i=0; i<arguments.length; i++){document.write("arguments[" + i + "] is: " + arguments[i] + "<br />");}
 }
 printArguments("arg1", "arg2");
 funcAsData=printArguments;//作为数据的函数:函数可以像其他数据一样赋值给变量、作为参数、作为元素保存在数组中
 alert("type of funcAsData is: " + typeof funcAsData);
 funcAsData("funcAsData para1","funcAsData para2", "funcAsData para3");//变量funcAsData变为函数
*/ 
  
//arguments对象的callee属性 p76 未看
//作为数据的函数 作为数据的函数是function类型 其typeof的值为function  p77 未实践
//内置函数:parseInt(numString)将字符串转换为整数,parseFloat(numString);isNaN(numValue)判断制定的值是否为NaN,isFinite(numValue)判断指定的值是否为有限的;eval(codeString)用于执行JavaScript代码,实现js代码的动态执行
//escape()将字符串进行Unicode编码,unescape()与escape相反;encodeURI()将字符串编码为统一资源标识符,decodeURI()与encodeURI相反;
//所有内置函数Global对象的方法、Global对象用于存储全局的属性和方法,所有内部对象的构造函数都是Global的属性,如NaN、Array


//对象,对象分为内部对象、宿主对象、自定义对象
//内部对象:Array Boolean Date Function Global Math Number Object RegExp String Error等,其中Global和Math对象在脚本初始化时就被创建,不需要实例化这两个对象
//宿主对象:JavaScript运行环境所提供的对象,如浏览器提供的对象称为浏览器对象,如Window、Document

//var date = new Date();//对象实例的创建
/*function Person(){//自定义对象
 this.age=20;//加上this关键字为public对象,可以在对象外部被直接访问,否则不能被直接访问
 this.name="zhangsan";
 this.speak=function(){
  document.write(this.name + " is speaking!");
  }
 this.run=run;
 }
 function run(){
  document.write("run function");
  }
var person = new Person();
document.write("age is: " + person.age + "<br />");//如果age对象去掉this关键字,在此就不能被直接访问,其值为undefined
document.write("name is: " + person.name + "<br />");
person.run();
person.sex="male";//动态添加对象实例的属性
person.shout=function(){//动添加对象实例的方法
 document.write("<br />shout function<br />");
 }
person.shout();  
document.write("sex is: " + person.sex);
//var person1 = new Person();
//person1.shout();//出错,shout方法只属于person对象实例
with(person){
 document.write("<br />with age is: " + age);//用with语句就能够省去person前缀,简化代码输入
 shout();
 }
 document.write("for in statement <br />");
for(var variable in person){
 document.write(variable + " ");//【age name speak run sex shout 】,方法在对象中也是属性
 document.write(person[variable] + " ");//此处必须用[]访问属性值,不能用person.variable 【函数输出的结果为函数体,如function(){ document.write(this.name + " is speaking!"); }】
 }
delete person.sex;//动态删除对象实例的熟悉
delete person.shout;//动态删除对象实例的方法
person=null;//将对象实例设置为null,释放内存空间*/

/*var book={//创建无类型对象
 title:"talent yzj", //注意属性与属性值用":"隔开,属性之间用","隔开
 introduce:function(){
  document.write("this book's title is: " + this.title);//此处title前一定要加this
  }
 }
book.introduce();*/

//obj.property=newValue;重定义属性
//obj.method=function(){}重定义方法
//delete obj.property;删除属性
//delete obj.method;删除方法
//obj=null; 对象的废除


//7.6 Function对象 未看


//7.7 Object对象是所有对象的基础,即父类,其他方法都继承了Object对象的属性和方法
/*
var date = new Date();//constructor属性用来引用构造函数
document.write("Date的构造函数是: " + date.constructor); //【 function Date() { [native code] } 】
if(date.constructor == Date){document.write("<br />date is an instance of Date<br />");}//【date is an instance of Date】
document.write(new Date() + "<br />");//【Sat Aug 25 12:28:52 UTC+0800 2012】
document.write(new Date().toString() + "<br />");//和上面显示结果是一样的,但最好用上toString()方法。在alert和document.write方法内的对象会自动调用toString方法
document.write(new Date().toLocaleString() + "<br />");//【2012年8月25日 12:28:52】
//alueOf() 未实践
var obj = new Object();//利用Object对象创建自定义对象
obj.age=20;
obj.name="yzj";
obj.printObj=function(){
 document.write("obj.age is: " + obj.age + "<br />" + "obj.name is: " + obj.name  + "<br />"); 
 }
obj.printObj();//【obj.age is: 20   obj.name is: yzj】 
var num = new Number(10);
document.write("valueOf num is: " + num.valueOf() + "<br />" );//【valueOf num is: 10】
*/


//数组:由于JavaScript是弱类型语言,所以同一个数组可以具有不同类型的数组元素
/*
var array1 = new Array();//创建空数组
var array2 = new Array(10);//创建长度为10的数组
var array3 = new Array("str",123,true,new Object);//创建拥有不同类型数据的长度为4的数组
var array4 = [2012, false, "人生的意义有自己定义"];//使用[]创建数组
with(document){
 write("array1: " + array1 + "<br />");//【js中遍历数组还真简单】
 write("array2: " + array2 + "<br />");//【,,,,,,,,,】
 write("array3: " + array3 + "<br />");//【str,123,true,[object Object]】
 write("array4: " + array4 + "<br />");//【2012,false,人生的意义有自己定义】
 }
for(var i in array4){//用for in语句遍历数组
 document.write("array4[" + i + "]" + array4[i] + "<br />");
 }
array4[5]="array45"; //动态地修改数组大小,添加元素
array4.length=10;//动态修改数组长度为10,array4[6]-array4[9]值为undefined
document.write("array4[8] is : " + array4[8] + "<br />"); //【undefined】
array4.length=3;//动态缩小数组长度为3,array4[5]将丢失
document.write("array4[5] is : " + array4[5] + "<br />");//【undefined】
document.write("array4.length is : " + array4.length + "<br />");//【3】
var arrayConcat = array3.concat(array4);//concat合并数组
document.write("arrayConcat.length is : " + arrayConcat.length + "<br />");//【7】
var lenPush = array3.push(123,"456");//在数组末尾加入多个元素,返回加入后数组的长度
document.write("array3.length is:" + array3.length + "<br />");//【6】
var arrayPop = array3.pop();//删除数组最后一个元素并返回该元素
document.write("array3.length is:" + array3.length + "<br />");//【5】
var arrayShift = array3.shift();//删除第一个元素并返回该元素
document.write("array3.length is:" + array3.length + "<br />");//【4】
var lenUnshift = array3.unshift("unshift", 123);//在数组开头插入多个元素,并返回插入后数组的长度
document.write("array3.length is:" + array3.length + "<br />");//【6】
*/
/*
var spliceArray = new Array();//splice删除并替换元素,用于插入、删除或替换数组的元素。
spliceArray.splice(0,0,1,2,3,4,5);//插入
document.write(spliceArray + "<br />");//【1,2,3,4,5】
spliceArray.splice(2,4,"a","b","c");//替换
document.write(spliceArray + "<br />");//【1,2,a,b,c】
spliceArray.splice(3,4);//删除
document.write(spliceArray + "<br />");//【1,2,a】
document.write(spliceArray.join("-") + "<br />");//join以特定分隔把数组连接成字符串【1-2-a】
spliceArray.reverse();//反转数组
document.write(spliceArray + "<br />");//【a,2,1】
*/
//其他array方法:slice截取部分数组元素、sort数组排序
//多维数组 p130 未看


//字符串对象
//String.length 长度属性、concat连接字符串、toUpperCase转换成大写、toLowerCase转换成小写、charAt指定位置的字符
//index指定字符串中字符的索引、split分隔字符串、slice提取子字符串、substr从起始索引号提取字符串中指定数目的字符。
//localeCompare 用本地特定的顺序来比较两个字符串  fromCharCode根据字符的Unicode编码来生产字符串、向字符串中插入HTML标记,如big、bold等


//第十章 数学运算和日期时间 未看
//第十一章 数值与异常处理 未看
//第十二章 正则表达式 未看


//第十二章 浏览器对象Browser Object
//window对象的方法:alert、prompt、confirm等
//13.3.1窗口及子窗口的打开与关闭 未实践
//window.open("subWindow.html","subWindow","status, menubar");
//13.3.2 改变窗口位置和大小 13.3.3滚动窗口 13.3.5状态栏 13.3.6定时设定  未看
//13.3.4系统对话框 三种系统对话框:alert警告对话框、prompt输入对话框和confirm确认对话框(点确定返回true,点取消返回false)
//if(confirm("are you an adult?")){alert("welcom to adult world!");}else{alert("you are not allowed to join in!");}

//常用函数函数
//document.write("" + "<br />"); 
//var age1=prompt("please input your age: ", 0);//弹出对话框,接受用户输入的信息,第一个参数是提示文字、第二个参数为默认值
//alert("your age is: " + age1);


//13.4 Navigator导航  保存当前浏览器和操作系统资源的信息,如浏览器名字、操作系统版本、是否支持及开启java等
//13.5 History对象 保存浏览器的网页历史记录信息 length历史记录中URL个数  back后退到上一页面 forward前进到下一页面 go(num)跳到指定页面
//document.write("<a href=\"subWindow.html\">subWindow</a>");
//document.write("<form><input name=\"\" type=\"button\" value=\"back\" onclick=\"window.history.back()\"></form>");//在subWindow文件中加入该句,点击back按钮就会回到当前窗口
//点击forward按钮就会回跳到subWindow窗口,也可以直接用history.forword(),因为history实例是Window对象的属性
//document.write("<form><input name=\"\" type=\"button\" value=\"forward\" onclick=\"window.history.forward()\"></form>");
//13.6 Location 对象包含有关当前 URL 的信息,如完整URL、端口号port、主机名hostname。Location 对象是 Window 对象的一个部分
//,可通过 window.location 属性来访问。可实现页面的跳转。
/*
<form> //错误,千万别把HTML代码放在JavaScript代码段中运行,一定要注意这种小错误
<input type="text" value=""  id="urlText" />
<input type="button" value="转到" onclick="window.location=document.forms[0].urlText.value"  />
</form>
*/
//235-238未看

</script>
<form>
  <input id="url" type="text" value="" />
  <input type="button" value="转到" onclick="window.location=document.forms[0].url.value"/>//跳转到输入地址页面
</form>

</body>


</html>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多