本人是看李炎诙老师的js/jQuery教程,每次看完之后忘得特别快,用的时候无从下手;这里重新整理下笔记。
引入其他js文件:
<script type="text/javascript" src="demo1.js"></script>
不支持 JavaScript 处理:
<noscript>您没有启用 JavaScript</noscript>
javascript是一种松散型语言,变量可以先不用声明为何种类型,而直接赋值;(见java16章)
多个变量赋值格式(用逗号隔开 最后一分号结束;与java不一样,格式尽量对齐)
var box= '李炎恢',
age = 28,
height;
查看数据类型:
<head><script type="text/javascript">alert(typeof "ok")</script></head>
一个变量没有进行赋值的 类型 是 undifined类型
空对象引用的返回值是object,比如var x=y; y=null;
虽然定义了不同的含义但是 undifeind==null;
在javascript中,一个变量有不为空的值,布尔表示为true,如var x=2;if(x){}
利用isNaN()判断一个数据是否为非数字,如alert(isNaN("ok")); //true
将非数值转换为数字的3个函数:
Namber()
alert(Number(''));
alert(Number('123df')); //NaN无法解析
parseInt也能解析8进制和16进制;
parseInt(''); //Nan
alert(parseInt('123df')); //123
alert(parseInt('df123')); //NaN无法解析
alert(parseInt('0xA')); //10
alert(parseInt('A',16)); //10
parseFloat()与parseInt用法相似,用于浮点精度上,不能解析16/8进制
利用toString()进行进制转换;
var x =16;
alert(x.toString(8)); //20
函数声明方式(与java也不相同,没有要求是否有返回值或返回类型,并且在参数传递上有很大不同);
function fun1(){};
带参数与返回值的函数,不需要声明参数类型:
function fun2(x,y){
if((typeof x)=='number'&&(typeof y)=='string')
return "我是:"+y+",年纪:"+x;
}
alert(fun2(21,'skx'));
声明一个无参函数,却能通过arguments[x]读取:
function fun3(){
alert(arguments[0]);
}
fun3(21); //在Java中是不可能调用的;
javascript中的函数没有像java中所说的方法重装的概念;arguments是个数组。
对象创建的几种方式:
1、var obj = new Object();
obj.name = 'skx';
obj.age = 27; //赋值语句,用分号结束,可以省略new关键字,不推荐
2、var obj ={
name : 'skx', //或者'name'
age:21 //'age'
};
//注意!非最后一句用逗号隔开,最后一句不用符号结束,在大括弧}外用分号结束。
3、var obj = {}; //等同new Object();
调用对象属性:
alert(obj.age);
alert(obj['age']); //没有点
删除对象属性
delete obj.name;
给对象创建方法:
var obj = {
fun1 : function(x){alert(x);} //参看3的格式
};
obj.fun1("hello");
像方法中传递一个(匿名)对象参数,比如fun(x){...}
fun({name:'ok';}); {//里面的内容参看3}
创建数组
var array1 = new Array('skx','ok','hello');
var array2 = ['skx','ok','hello'];
alert(array1[2]);
alert(array2[1]);
创建对象数组:
var arrayobjs = [{},{},{}];
在数组中使用 array1.join("#"); 逗号变为#号;
对数组操作:
数组尾添加元素:array1.push('ok');
去除数组尾元素:array1.pop();
数组头添加元素:array1.unshift('one','two');
移除数组首元素:array1.shift();
数组截取元素:var array2 = array1.splice(1,3); //相当于删除
上面这5条语句都会改变原数组,利用splice还可以进行插入、替换:
array4.splice(3,0,888888) //在第4个位置,长度为0,替换为888888
array4.splice(3,2,888888) //在第4个位置,长度为2,替换为888888
数组尾添加与元素不改变原数组:var array2 = array1.concat("world");
数组截取元素不改变原数组:var array2 = array1.slice(1,3);
逆序:var array4 = new Array(1,9,3,4,5,6); document.write(array4.reverse()); //6,5,4,3,9,1
排序:document.write(array4.sort()); //1,3,4,5,6,9
要从大往小排,可以先排序在逆序
时间
Date.parse(string)和Date.UTC(string)是将传进来的字符串转换为毫秒数;
var Millisecond = Date.parse("10/15/2014 14:00:36"); //月/日/年 1413352836000 后000表示整秒
document.write(Millisecond);
var date = new Date(Millisecond); //将毫秒转换为时间
document.write("\n"+date); //Wed Oct 15 2014 14:00:36 GMT+0800 (中国标准时间)
document.write(new Date("10/16/2014")); //直接打印Thu Oct 16 2014 00:00:00 GMT+0800 (中国标准时间)
百度输入 “60天 毫秒”可以显示60天为多少毫秒,比如我现在要显示60天前的这个时间
var nowMs = Date.parse(new Date("1/10/2014 14:20:36")); //60天= 5184000000ms var oldMS = nowMs - 5184000000; document.write(new Date(oldMS).toLocaleString()); //2013年11月11日 下午2:20:36 如果不会其他的日期方法,使用这个绝对不会出错;
当然在写代码的时候添加以下语句,将节省时间:
获取时间的毫秒数
var date = new Date(); document.write(date.getTime()+"\n"); //1413440880723 精确到毫秒数 document.write(Date.parse(date)); //1413440880000 精确到秒
获取年、月、日:
document.write(date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate());
更改年、月、日:
date.setFullYear(2012); //更改年份
date.setMonth(13); //没有13月,转换到第二年,13是第二年的2月,11是12月
date.setDate(32); //一月没有32天,转到第二月
document.write(date.toLocaleString()); //2013年3月4日 下午2:54:53
获得时、分、秒、毫秒;
document.write(date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+":"+date.getMilliseconds());
设置时、分、秒、毫秒
var date = new Date();
date.setHours(2); //更改小时
date.setMinutes(0); //更改分钟,不能为空
date.setSeconds(32); //更改秒
date.setMilliseconds(132); //更改秒
document.write(date.getTime()); //用toString()不能打印毫秒 1413396032132
获取星期:
document.write(date.getDay());
好像不能设置星期;