第二周学习

50 阅读4分钟

创建数组:

var arr=[值,...];
var arr=new Array(值,...);

hash数组:

创建:
        1、创建空数组:var arr=[];
        2、为数组添加自定义下标并且赋值:arr["自定义"]=值;
访问:
        arr["自定义"];

遍历hash数组:

不能再使用for循环,必须使用for in循环
        for(var i in 数组名){
		i;//下标
		数组名[i];//当前次元素
        }

API:

1、arr 转 str:
        var str=arr.join("自定义连接符");
2、拼接:
	var newArr=arr.concat(值1,...);
3、截取:
	var subArr=arr.slice(starti,endi+1);
4、删插替:
	删除:var dels=arr.splice(starti,n);
	插入:arr.splice(starti,0,新值,...);
	替换:var dels=arr.splice(starti,n,新值,...);
5、翻转:arr.reverse();

6、排序: arr.sort();
7、开头进:arr.unshift(新值,...);
8、开头出:var first=arr.shift();
9、结尾进:arr.push(新值,...);
10、结尾出:var last=arr.pop();

二维数组:

创建:var arr=[ [0,18,900],[1,19,1000], [4,20,700]];
访问:arr[行下标][列下标];

遍历:

forEach - 修改原数组
	arr.forEach(function(val,i,arr){
		操作;
	})
map - 不修改原数组
	var newArr=arr.map(function(val,i,arr){
		return 操作;
	})

过滤:

过滤:原数组不变
	var subArr=arr.filter(function(val,i,arr){
		return 判断条件;
	})

StringAPI:

1、转义字符:\
	作用:
		1、将字符串中和程序冲突的字符转为原文
			"\""         '\''
		2、包含特殊功能的符号:
			换行:\n
			制表符:\t
		3、输出unicode编码:
			\u4e00    -   ascii码:19968
			\u9fa5     -   ascii码:40869
2、大小写转换:
	大写:var upper=str.toUpperCase();
	小写:var upper=str.toLowerCase();

3、获取字符串中指定位置的字符:
            str.charAt(i)===str[i];

4、获取字符串中指定位置的字符的ASCII码:
	var ascii=str.charCodeAt(i);
5、通过ASCII码转回原文:
	var 原文=String.fromCharCode(ascii);

6、检索字符串:检查索引,检查下标:获取关键字的下标
	var i=str/arr.indexOf("关键字",starti);
	从starti位置开始,查找右侧第一个关键字的第一个字符的位置
	starti可以省略,默认从0位置开始查找
7、拼接字符串:
            var newStr=str.concat("字符串",...)

8、截取字符串:
	var subStr=str/arr.slice(starti,endi+1);
		   str.substring(starti,endi+1);//不支持负数参数
		   str.substr(starti,n);//n代表的是截取的个数
9、替换字符串:
	var newStr=str.replace("关键字"/正则表达式,"内容");

10、切割/分割/分隔字符串:
            var arr=str.split("自定义切割符");
11、去空白字符:
            str.trim/trimStart/trimEnd()

MathAPI:

取整:
	1、上取整:
		var num=Math.ceil(num);
	2、下取整:
		var num=Math.floor(num);
	3、四舍五入取整:
		var num=Math.round(num);//只看小数位数的第一位
	num.toFixed(d); 四舍五入,并且保留指定小数位数、解决浏览器2-1.6=0.3999999999999
乘方和开方:
	乘方:Math.pow(底数,幂);  -> 底数**幂
	开方:Math.sqrt(num);
最大值和最小值:
            var max/min=Math.max/min(a,b,c,d,e,f,g,...);//不支持数组参数
	Math.max/min.apply(Math,arr);//数组
绝对值:
	Math.abs(-1);
随机数:Math.random();
	公式:parseInt(Math.random()*(max-min+1)+min)

Date对象:

创建一个当前日期:
	var now=new Date();

创建一个自定义时间:
	var birth=new Date("yyyy/MM/dd hh:mm:ss");

创建一个自定义时间:
	var birth=new Date(yyyy,MM,dd,hh,mm,ss);

复制一个日期:
	var end=new Date(start);

使用:API:
	年月日星期:FullYear Month Date Day
	时分秒毫秒:Hours Minutes Seconds Milliseconds
		getXXX
		setXXX
	特殊:
		取值范围:
			FullYear - 当前年份的数字
			Month - 0~11
			Date - 1~31
			Day - 0~60代表是星期天
			Hours - 0~23
			Minutes、Seconds:0~59
		加减操作:
			date.setXXX(date.getXXX()+/-n)
		格式化日期为本地字符串:
			date.toLocaleString();

定时器:

周期性定时器:
	开启:timer=setInterval(callback,毫秒数);
	停止:clearInterval(timer);

一次性定时器:
	开启:timer=setTimeout(callback,毫秒数);
	停止:clearTimeout(timer);

window属性:

浏览器大小:outerWidth/outerHeight
浏览器的文档显示区域大小:innerWidth/innerHeight
屏幕的完整大小:screen.width/height;

方法:
	打开链接:
		1、当前窗口打开,可以后退:
			HTML:<a href="url">内容</a>
			JS:open("url","_self");
		2、当前窗口打开,禁止后退:
			location.replace("新url");
		3、新窗口打开,可以打开多个
			HTML:<a href="url" target="_blank">内容</a>
			JS:open("url","_blank");
		4、新窗口打开,只能打开一个:
			HTML:<a href="url" target="name">内容</a>

a标签的其他用途:

跳转
锚点
下载按钮:<a href=".exe/rar/zip/7z"></a>
打开图片和txt文档:<a href=".png/jpg/jpeg/gif/txt"></a>
打开新窗口/新链接:
            newW=open("url","target","width=?,height=?,left=?,top=?");
关闭窗口:window/newW.close();
改变新窗口的大小:newW.resizeTo(新宽,新高);
改变新窗口的位置:newW.moveTo(新X,新Y);

window事件:

window.onload事件 - 加载
window.onresize事件 - 窗口大小发生变化触发
window.onscroll事件 - 滚动触发
	1、获取滚动条当前的位置:window.scrollY
	2、获取元素距离页面顶部:elem.offsetTop/offsetLeft
            

本地/客户端存储技术:

cookie:淘汰
webStorage
	sessionStorage - 会话
	localStorage - 本地
操作:
	添加:xxxStorage.属性名="属性值";
	读取:xxxStorage.属性名;
	删除:xxxStorage.removeItem("属性名");
	清空:xxxStorage.clear();