JavaScript-ECMAScript
0.概述
ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他语言可以实现 ECMAScript 来作为功能的基准,JavaScript 就是这样:
每个浏览器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展,包含了 DOM 和 BOM(在以下几节中再探讨)。当然还有其他实现并扩展了 ECMAScript 的语言,例如 Windows 脚本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。
1.基本语法
1.1如何使用JavaScript
通过<script></script>中直接编写
通过<script src='目标文档的URL'></script>链接外部的Js文件
作为某个元素的事件属性值或者是超链接的href属性值
1.2代码屏蔽
<script type='text/javascript'>
<!--
Js代码;
//-->
</script>
如果浏览器不支持Js,可以使用<noscript></noscript>标签,显示noscript中的内容
1.3JavaScript的执行顺序
按照在HTML文件中出现的顺序依次执行
大小写敏感
JavaScript严格区分大小写
忽略空白符和换行符
语句分隔符使用;结束语句
可以把多个语句写在一行
最后一个语句的分号可以省略,但尽量不要省略
可以使用{}括成一个语句组,形成一个块block
通过\对代码进行折行操作
document.write(' hello\
world');
1.4注释
单行注释//
多行注释/*注释内容*/
1.5JavaScript的保留字
1.6控制格式
通过document.write()向文档书写内容
通过console.log()向控制台写入内容
JavaScript中的错误
1.7语法错误
通过控制台进行调试
逻辑错误
通过alert()进行调试
1.数据类型和变量
1.原始数据类型(数值型,字符串型,布尔类型)
2.复合数据类型(对象(object),数组(array),函数(function))
3.特殊数据类型(无定义数据类型undefined,空值null)
4.变量
- 通过var关键字声明变量;
var name; var birthday;
- 可以声明变量的同时给变量赋值
var name="Davve";
- 可以一次声明一个变量也可以一次声明多个看变量
var name="Davve",age=12;
- 如果只声明变量未对其赋值,默认值为undefined
- 如果变量重名产生覆盖
var age = 11; var age = 12;//以下面为准
注意:
变量严格区分大小写 var Name; var name; //与上面不一样 变量名称不要包含特殊字符 变量名称最好遵循驼峰标记法或者下划线法 大驼峰 var SmartPhone; 小驼峰 var smartPhone; 变量名称最好含义明确 var classname; var birthday;
5.类型转换
隐式转换 转换成布尔类型假 undefined->false null->false 数值型0或0.0或NaN->false 字符串长度为0->false 其它对象->true 转换为数值型数据 undefined->NaN null->0 true->1|false->0 内容为数字->数字,否则转换成NaN 其它对象->NaN 转换为字符串型数据 undefined->"undefined" null->"NaN" true->"true" false->"false" 数值型->NaN、0或者与数值对应的字符串 其它对象->如果存在这个对象则转换为toString()方法的值,否则转换为Undefined
显示转换 转换成数值 Number函数强制转换成数值 数值->转换成原来的值 字符串->如果可以解析为数值,则转换成数值;否则转换成NaN或者0 true->1,false->0 undefined->NaN null->0 转换成整型 praseInt() 转换成浮点型 praseFloat() 注意 Number函数将字符串转换为数值比praseInt函数严格很多。基本上只要有一个字符无法转换成数值,整个字符串就会被转换成NaN 转换成字符串 通过String函数转换成字符串 数值->数值本身 字符串->字符串本身 true->"true",false->"false" undefined->"undefined" null->"null" 转换成字符串型 toString() 转换成布尔类型 通过Boolean函数强制转换成布尔值 0、-0->false NaN->false 空字符串->false undefined->false null->false
2.运算符与表达式
2.1表达式
表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量、变量、运算符
2.2运算符
算术运算符 +、-、*、/、%、++、-- ++、--分为前缀形式和后缀形式 前缀形式先加减1在执行 后缀形式先执行再加减1 注意 +号用来连接两个字符串 只要+连接的操作数中有一个是字符串型,Js就会自动把非字符串型数据作为字符串型数据来处理 Js代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据)仍被作为数值来处理。
为了避免这种情况,我们可以在表达式前拼一个空字符串
字符连接符 通过+连接字符串 赋值运算符 =、+=、-=、*=、/=、%=、.= 比较运算符 >、>=、<、<=、==、!=、===、!== 注意 比较运算符的结果为布尔类型 ==只比较值是否相等、===比较值和类型 逻辑运算符 &&、||、! 注意 逻辑运算符的结果为布尔类型 &&如果第一个表达式为false,造成短路 ||如果第一个表达式为true,造成短路 三元运算符 exp1?exp2:exp3 其它运算符 逗号运算符 逗号用来将多个表达式连接为一个表达式,新表达式的值为最后一个表达式的值,多用在变量声明处 void运算符 void运算符用来指明一个表达式无返回结果 typeof运算符 typeof运算符用来返回一个字符串,返回的是操作数的数据类型
2.3运算符优先级
3.流程控制(与C语言一模一样,放心大胆使用)
3.1条件语句
if(exp)执行一句代码 if(exp){执行代码段;} if(exp){exp为true执行代码段}else{exp为false执行代码段;} if...elseif... switch...case if嵌套
3.2循环语句
for循环 while循环 do...while循环
3.3特殊循环语句
break终止循环
continue跳过当次循环,进入下次循环
4.函数
4.1函数定义(三种方式)
通过function关键字定义:
function 函数名称([参数,...]){ 代码段; return 返回值; }
函数名称不要包含特殊字符
函数名称最好含义明确
函数名称最好遵循驼峰标记法或者下划线法
函数名称严格区分大小写
函数名称如果重复会产生覆盖
函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数
函数通过return加返回值,如果没有return 默认返回undefined
函数不调用不执行
//方式一: function calc(x,y){ x=arguments[0]?arguments[0]:0; y=arguments[1]?arguments[1]:0; return x+y; } //方式二 function calc(x,y){ x=x||0; y=y||0; return x+y; } //方式三 function calc(x,y){ if(x===undefined){ x=0; } y=y===undefined?0:y; return x+y; }
匿名函数:
function(){ alert('this is a test'); } )(); ( function(a,b){ alert(a+b); } )(3,5);
函数表达式可以存储在变量中,变量也可以作为一个函数使用
可以将匿名函数作为参数传递给其它函数,接收方函数就可以通过所传递进来的函数完成某些功能
可以通过匿名函数来执行某些一次性的任务
通过Function()构造函数
//通过内置JavaScript函数构造器(Function())定义 var myFunction=new Function('a','b','return a+b'); var myFunction=function(a,b){return a+b;}; 注意 以上两种方式是等价的 尽量避免使用new关键字
function test1(){ var paramsNum=arguments.length; var max=0; for(var i=0;i<=paramsNum-1;i++){ if(arguments[i]>max){ max=arguments[i]; } } return max; } alert(test1(123,3432,23456,445643));
4.2调用函数
作为一个函数调用
通过函数名称()进行调用,如果有参数传递相应参数即可
在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象).所以函数会自动变为window对象的函数。
也可以通过window.函数名称()进行调用
全局对象
当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对。
函数作为全局对象调用,会使this的值称为全局对象。使用window对象作为一个变量容易造成程序崩溃
函数作为方法调用
可以将函数定义为对象的方法进行调用
使用构造函数调用函数
如果在函数调用前使用了new关键字,则调用了构造函数
作为回调函数调用函数
call()
apply()
4.3参数
函数可以有参数也可以没有参数,如果定义了参数,在调用函数的时候没有传值,默认设置为undefined
在调用函数时如果传递参数超过了定义时参数,js会忽略掉多余参数
js中不能直接写默认值,可以通过arguments对象来实现默认值效果(参考上面实例)
可以通过arguments对象实现可变参数的函数(参考上面实例)
通过值传递参数在函数体内对变量做修改不会影响变量本身
通过对象传递参数在函数体内对变量做更改会影响变量本身
4.4变量的作用域
局部变量:在函数体内声明的变量,仅在函数体内可以使用(通过var声明的都是局部变量)
全局变量:函数体外声明的变量,在变量声明开始到脚本结束都可以是使用
注意:
尽量控制全局变量的数量,容易引发bug
最好总是使用var语句来声明变量
//变量作用域 var x=1; function test(){ document.write('函数体内x的值为:'+x+'<br/>'); x=19; document.write('函数体内对x重新赋值,此时x的值为:'+x+'<br/>'); } document.write('函数体外x的值为:'+x+'<br/>'); test(); document.write('x的值为:'+x+'<br/>'); document.write('<hr color="red"/>');
var x=1,y=2; function calc(x,y){ document.write('a的值为'+a+'<br/>');//undefined document.write('函数体内x的值为:'+x+'<br/>'); document.write('函数体内y的值为:'+y+'<br/>'); var x=0,y=6; z=x+y; x=x+y; var a=198; document.write('a的值为:'+a+'<br/>'); document.write('x的值为:'+x+'<br/>'); return z; }
4.5JavaScript全局函数
parseInt(string,radix):返回转换成整数的值 当参数radix的值为0,或者没有设置这个参数,parseInt()会根据string来判断数字的基数 当忽略radix,JavaScript默认数字的基数规则为 如果string以0x开头,parseInt()会把string的其余部分解析为十六进制的整数 如果string以0开头,那么ECMAScript v3允许parseInt()的一个实现把其后的字符解析为八进制或十六进制的数字 如果string以1~9的数字开头,parseInt()将把它解析为十进制的整数 字符串如果以合法字符开始,截取合法字符 开头和结尾的空格是允许的 如果字符串的第一个字符不能被转换为数字,parseInt()会返回NaN 在字符串以"0"为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。 parseFloat(string):返回转换成浮点型的值 该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。 isFinite(value):检测某个是是否是无穷值 如果number是NaN或者+Infinity或者-Infinity的数,isFinite()返回false isNaN(value):检测某个值是否是NaN isNaN()检测是否是非数字值,如果值为NaN返回true,否则返回false encodeURI(uri):将字符串编码为URI 注意 使用 decodeURI() 方法可以编码URI(通用资源标识符:UniformResourceIdentifier,简称"URI")。 对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的: , / ? : @ & = + $ # (可以使用 encodeURIComponent() 方法分别对特殊含义的 ASCII 标点符号进行编码。). decodeURI(uri):解码某个个编码的URI encodeURIComponent(uri):将字符串编码为URI组件 注意 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的 decodeURIComponent():解码一个编码的URI组件 escape():对字符串进行编码 注意 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。 escape()函数不能用于编码 URIs(通用资源标识符(UniformResourceIdentifier,简称"URI")) unescape():解码由escape()编码的字符串 eval():将JavaScript字符串当作脚本来执行 注意 如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。 eval()函数是一种由函数执行的动态代码,比直接执行脚本慢很多 慎重使用eval()函数,尽量不用,保证程序的安全性 Number(object):把对象的值转换为数字 注意 如果对象的值无法转换为数字,Number()函数返回NaN 如果参数的Date对象,Number()返回从1970年1月1日到现在所经历的毫秒数 String():把对象的值转换为字符串 String() 函数返回与字符串对象的toString()方法值一样
//全局函数的例子 document.write('默认情况的结果<br/>'); document.write(parseInt('32')+'<br/>'); document.write(parseInt('032')+'<br/>'); document.write(parseInt('0x32')+'<br/>'); document.write(parseInt('true')+'<br/>'); document.write(parseInt('3king')+'<br/>'); document.write(parseInt(' 5abc ')+'<br/>'); document.write(parseInt(' 88 99 00')+'<br/>'); document.write('<hr color="red"/>'); document.write('转换成二进制的结果<br/>'); document.write(parseInt('32',2)+'<br/>'); document.write(parseInt('032',2)+'<br/>'); document.write(parseInt('0x32',2)+'<br/>'); document.write('<hr/>'); document.write('转换成八进制的结果<br/>'); document.write(parseInt('32',8)+'<br/>'); document.write(parseInt('032',8)+'<br/>'); document.write(parseInt('0x32',8)+'<br/>'); document.write('<hr/>'); document.write('转换成八进制的结果<br/>'); document.write(parseInt('32',16)+'<br/>'); document.write(parseInt('032',16)+'<br/>'); document.write(parseInt('0x32',16)+'<br/>'); //二进制转换成其他进制 document.write('<hr/>'); document.write('二进制转换成其他进制的结果<br/>'); document.write(parseInt('11001010',2)+'<br/>'); document.write(parseInt('11001010',8)+'<br/>'); document.write(parseInt('11001010',10)+'<br/>'); document.write(parseInt('11001010',16)+'<br/>'); document.write(parseInt('202',2)+'<br/>'); //转换成浮点型 document.write('<hr/>'); document.write(parseFloat('2.6')+'<br/>'); document.write(parseFloat('323')+'<br/>'); document.write(parseFloat('2e2')+'<br/>'); document.write(parseFloat('123abc')+'<br/>'); document.write(parseFloat(' 2.6 ')+'<br/>'); document.write(parseFloat('a2.6')+'<br/>'); //通过isFinite()检测是否是无穷值 var x=123; x=Infinity; x=-Infinity; x=0/0; x=0; x=false; // alert(isFinite(x)); x=NaN; x=123; x=false; x=parseInt('king3'); alert(isNaN(x)); //测试编码URI的函数 var url="http://www.phpfamily.org/test.php?search= this is a test&sum=1+2"; var res=encodeURI(url); document.write(res); var res1=decodeURI(res); document.write('<br/>'+res1+'<br/>'); url="http://www.phpfamily.org/test.php?search= this is a test&sum=1+2&test1=!.()*~"; res=encodeURIComponent(url); document.write(res+'<br/>'); res1=decodeURIComponent(res); document.write('<br/>'+res1+'<br/>'); document.write('<hr color="red"/>'); var str1='你好hello maizi http://maiziedu.com?search=javascript&test=this is a test&test1=-_*?'; var result=escape(str1); document.write(result); document.write('<br/>'); var result1=unescape(result); document.write(result1); document.write('<hr/>'); eval('var i=12;'); // alert(i); document.write('<hr color="red"/>'); var var1=new Boolean(123); // alert(var1); var1=false; var1='3king'; var1=34; var1=345.67; var1='3'; var1=undefined; var1=null; var1=NaN; var1=new Date(); // alert(Number(var1)); var var2=true; var2=false; var2=23; var2=12.3; var2=null; var2=undefined; var2=NaN; var2='king'; alert(String(var2));
4.6回调函数
function addOne(a){ return a+1; } function test(a,b,c,callback){ var i,arr=[]; for(i=0;i<3;i++){ arr[i]=callback(arguments[i]*2); } return arr; }
5.对象
5.1字符串对象
字符串创建(两种方式)
① 变量 = “字符串”
② 字串对象名称 = new String (字符串)
var str1="hello world"; var str1= new String("hello word");
方法和属性
x.length ----获取字符串的长度 x.toLowerCase() ----转为小写 x.toUpperCase() ----转为大写 x.trim() ----去除字符串两边空格 ----字符串查询方法 x.charAt(index) ----str1.charAt(index);----获取指定位置字符,其中index为要获取的字符索引 x.indexOf(findstr,index)----查询字符串位置 x.lastIndexOf(findstr) x.match(regexp) ----match返回匹配字符串的数组,如果没有匹配则返回null x.search(regexp) ----search返回匹配字符串的首字符位置索引 示例: var str1="welcome to the world of JS!"; var str2=str1.match("world"); var str3=str1.search("world"); alert(str2[0]); // 结果为"world" alert(str3); // 结果为15 ----子字符串处理方法 x.substr(start, length) ----start表示开始位置,length表示截取长度 x.substring(start, end) ----end是结束位置 x.slice(start, end) ----切片操作字符串 示例: var str1="abcdefgh"; var str2=str1.slice(2,4); var str3=str1.slice(4); var str4=str1.slice(2,-1); var str5=str1.slice(-3,-1); alert(str2); //结果为"cd" alert(str3); //结果为"efgh" alert(str4); //结果为"cdefg" alert(str5); //结果为"fg" x.replace(findstr,tostr) ---- 字符串替换 x.split(); ----分割字符串 var str1="一,二,三,四,五,六,日"; var strArray=str1.split(","); alert(strArray[1]);//结果为"二" x.concat(addstr) ---- 拼接字符串
5.2数组对象
创建数组的三种方式
创建方式1: var arrname = [元素0,元素1,….]; // var arr=[1,2,3]; 创建方式2: var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true); 创建方式3: var arrname = new Array(长度); // 初始化数组对象: var cnweek=new Array(7); cnweek[0]="星期日"; cnweek[1]="星期一"; ... cnweek[6]="星期六";
方法和属性
x.join(bystr) ----将数组元素拼接成字符串 var arr1=[1, 2, 3, 4, 5, 6, 7]; var str1=arr1.join("-"); alert(str1); //结果为"1-2-3-4-5-6-7" x.concat(value,...) ---- var a = [1,2,3]; var b=a.concat(4,5) ; alert(a.toString()); //返回结果为1,2,3 alert(b.toString()); //返回结果为1,2,3,4,5 //x.reverse() //x.sort() var arr1=[32, 12, 111, 444]; //var arr1=["a","d","f","c"]; arr1.reverse(); //颠倒数组元素 alert(arr1.toString()); //结果为444,111,12,32 arr1.sort(); //排序数组元素 alert(arr1.toString()); //结果为111,12,32,444 //------------------------------ arr=[1,5,2,100]; //arr.sort(); //alert(arr); //如果就想按着数字比较呢? function intSort(a,b){ if (a>b){ return 1;//-1 } else if(a<b){ return -1;//1 } else { return 0 } } arr.sort(intSort); alert(arr); function IntSort(a,b){ return a-b; } //x.slice(start, end) // //使用注解 // //x代表数组对象 //start表示开始位置索引 //end是结束位置下一数组元素索引编号 //第一个数组元素索引为0 //start、end可为负数,-1代表最后一个数组元素 //end省略则相当于从start位置截取以后所有数组元素 var arr1=['a','b','c','d','e','f','g','h']; var arr2=arr1.slice(2,4); var arr3=arr1.slice(4); var arr4=arr1.slice(2,-1); alert(arr2.toString()); //结果为"c,d" alert(arr3.toString()); //结果为"e,f,g,h" alert(arr4.toString()); //结果为"c,d,e,f,g" //x. splice(start, deleteCount, value, ...) //使用注解 //x代表数组对象 //splice的主要用途是对数组指定位置进行删除和插入 //start表示开始位置索引 //deleteCount删除数组元素的个数 //value表示在删除位置插入的数组元素 //value参数可以省略 var a = [1,2,3,4,5,6,7,8]; a.splice(1,2); alert(a.toString());//a变为 [1,4,5,6,7,8] a.splice(1,1); alert(a.toString());//a变为[1,5,6,7,8] a.splice(1,0,2,3); alert(a.toString());//a变为[1,2,3,5,6,7,8] //push pop这两个方法模拟的是一个栈操作 //x.push(value, ...) 压栈 //x.pop() 弹栈 //使用注解 // //x代表数组对象 //value可以为字符串、数字、数组等任何值 //push是将value值添加到数组x的结尾 //pop是将数组x的最后一个元素删除 var arr1=[1,2,3]; arr1.push(4,5); alert(arr1); //结果为"1,2,3,4,5" arr1.push([6,7]); alert(arr1) //结果为"1,2,3,4,5,6,7" arr1.pop(); alert(arr1); //结果为"1,2,3,4,5" //x.unshift(value,...) //x.shift() //使用注解 //x代表数组对象 //value可以为字符串、数字、数组等任何值 //unshift是将value值插入到数组x的开始 //shift是将数组x的第一个元素删除 var arr1=[1,2,3]; arr1.unshift(4,5); alert(arr1); //结果为"4,5,1,2,3" arr1. unshift([6,7]); alert(arr1); //结果为"6,7,4,5,1,2,3" arr1.shift(); alert(arr1); //结果为"4,5,1,2,3"
5.3Date对象
对象的创建
//方法1:不指定参数 var nowd1=new Date(); alert(nowd1.toLocaleString( )); //方法2:参数为日期字符串 var nowd2=new Date("2004/3/20 11:12"); alert(nowd2.toLocaleString( )); var nowd3=new Date("04/03/20 11:12"); alert(nowd3.toLocaleString( )); //方法3:参数为毫秒数 var nowd3=new Date(5000); alert(nowd3.toLocaleString( )); alert(nowd3.toUTCString()); //方法4:参数为年月日小时分钟秒毫秒 var nowd4=new Date(2004,2,20,11,12,0,300); alert(nowd4.toLocaleString( ));//毫秒并不直接显示
方法和属性
获取日期和时间 getDate() 获取日 getDay () 获取星期 getMonth () 获取月(0-11) getFullYear () 获取完整年份 getYear () 获取年 getHours () 获取小时 getMinutes () 获取分钟 getSeconds () 获取秒 getMilliseconds () 获取毫秒 getTime () 返回累计毫秒数(从1970/1/1午夜)
基本操作
function getCurrentDate(){ //1. 创建Date对象 var date = new Date(); //没有填入任何参数那么就是当前时间 //2. 获得当前年份 var year = date.getFullYear(); //3. 获得当前月份 js中月份是从0到11. var month = date.getMonth()+1; //4. 获得当前日 var day = date.getDate(); //5. 获得当前小时 var hour = date.getHours(); //6. 获得当前分钟 var min = date.getMinutes(); //7. 获得当前秒 var sec = date.getSeconds(); //8. 获得当前星期 var week = date.getDay(); //没有getWeek // 2014年06月18日 15:40:30 星期三 return year+"年"+changeNum(month)+"月"+day+"日 "+hour+":"+min+":"+sec+" "+parseWeek(week); } alert(getCurrentDate()); //解决 自动补齐成两位数字的方法 function changeNum(num){ if(num < 10){ return "0"+num; }else{ return num; } } //将数字 0~6 转换成 星期日到星期六 function parseWeek(week){ var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; // 0 1 2 3 ............. return arr[week]; } //设置日期和时间 //setDate(day_of_month) 设置日 //setMonth (month) 设置月 //setFullYear (year) 设置年 //setHours (hour) 设置小时 //setMinutes (minute) 设置分钟 //setSeconds (second) 设置秒 //setMillliseconds (ms) 设置毫秒(0-999) //setTime (allms) 设置累计毫秒(从1970/1/1午夜) var x=new Date(); x.setFullYear (1997); //设置年1997 x.setMonth(7); //设置月7 x.setDate(1); //设置日1 x.setHours(5); //设置小时5 x.setMinutes(12); //设置分钟12 x.setSeconds(54); //设置秒54 x.setMilliseconds(230); //设置毫秒230 document.write(x.toLocaleString( )+"<br>"); //返回1997年8月1日5点12分54秒 x.setTime(870409430000); //设置累计毫秒数 document.write(x.toLocaleString( )+"<br>"); //返回1997年8月1日12点23分50秒 日期和时间的转换: getTimezoneOffset():8个时区×15度×4分/度=480; 返回本地时间与GMT的时间差,以分钟为单位 toUTCString() 返回国际标准时间字符串 toLocalString() 返回本地格式时间字符串 Date.parse(x) 返回累计毫秒数(从1970/1/1午夜到本地时间) Date.UTC(x) 返回累计毫秒数(从1970/1/1午夜到国际时间)
5.4Match对象
//该对象中的属性方法 和数学有关. abs(x) 返回数的绝对值。 exp(x) 返回 e 的指数。 floor(x)对数进行下舍入。 log(x) 返回数的自然对数(底为e)。 max(x,y) 返回 x 和 y 中的最高值。 min(x,y) 返回 x 和 y 中的最低值。 pow(x,y) 返回 x 的 y 次幂。 random() 返回 0 ~ 1 之间的随机数。 round(x) 把数四舍五入为最接近的整数。 sin(x) 返回数的正弦。 sqrt(x) 返回数的平方根。 tan(x) 返回角的正切。 //方法练习: //alert(Math.random()); // 获得随机数 0~1 不包括1. //alert(Math.round(1.5)); // 四舍五入 //练习:获取1-100的随机整数,包括1和100 //var num=Math.random(); //num=num*10; //num=Math.round(num); //alert(num) //============max min========================= /* alert(Math.max(1,2));// 2 alert(Math.min(1,2));// 1 */ //-------------pow-------------------------------- alert(Math.pow(2,4));// pow 计算参数1 的参数2 次方.