JavaScript第三周

本文详细介绍了JavaScript中数组API的基础用法,包括join()无缝拼接数组、字符串渲染、数组拼接、截取、删除、插入、排序、栈与队列操作,以及Math API和日期对象的使用。了解这些技巧有助于提升代码效率和理解数据处理核心概念。
摘要由CSDN通过智能技术生成

数组的API

var str=arr.join("自定义连接符")//数组转为字符串
例如:完成无缝拼接
	var arr=["h","e","l","l","o"," ","w","o","r","l","d"];
	console.log(arr.join(""));
数据渲染:
		var arr=["-请选择-","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆","北京","南京","西京","东京","重庆"];
		var str="<option>"+arr.join("</option><option>")+"</option>";
		sel.innerHTML=str;
 var newArr=arr.concat(1,arr2...);//拼接数组,添加元素到末尾
var subArr=arr.slice(start,end+1);//截取子数组,能获取数组中一部分元素,支持负数参数,-1代表倒数第一,-n代表倒数第n个
var dels=arr.splice(start,n);//删除,从start位置开始删除n个元素
var dels=arr.splice(start,0,新值1,...);//插入,原先的start位置的元素及其后面的会被后移
var dels=arr.splice(start,n,新值1,...);//替换
var dels=arr.splice(start,0,新值1,...);//替换
var arr=arr.reverse();//翻转
arr.sort();//排序,默认转为字符串,按位比较每个字符的unicode
用法:
	arr.sort(function(a,b){
						return a-b;
					})//升序
	arr.sort(function(){
						return b-a;
					})//降序
	a是后一个数,b是前一个数
	如果a>b,就会返回一个正数,说明后一个数>前一个数
	如果a<b,就会返回一个负数,说明后一个数<前一个数
	如果a==b,就会返回一个0,说明后一个数==前一个数
	而sort的底层就能通过你返回的值来判断要不要帮你交换位置
arr.unshift(新值,...);//开头入
var first=arr.shift();//开头出
arr.push(新值,...);//结尾入
var last=arr.pop();//结尾出
队列
arr.unshift(新值,...);//开头入
var first=arr.shift();//开头出
arr.push(新值,...);//结尾入
var last=arr.pop();//结尾出

冒泡排序
比较大小输出最大值

for(var j=1;j<arr.length;j++){
				for(var i=0;i<arr.length-j;i++){
					if(arr[i]>arr[i+1]){
						var m=arr[i];
						arr[i]=arr[i+1];
						arr[i+1]=m;
					}
				}
			}

Math基本的API

取整
Math.ceil(num)
	**向上取整**,数字向上舍入为其最接近的整数,num的小数位超过15位后该函数失效
Math.floor(num)
	**向下取整**,数字向下舍入为最接近的整数
Math.round(num)
	**四舍五入取整**,只取第一个小数的四舍五入

自定义一个函数,按照任意小数位数四舍五入,返回数字类型(不使用toFixed()方法)

function dingyi(num,d){
	num*=Math.pow(10,d);//将要取整的小数放大到当前取证位数 如:1994.9024367 保留3位小数先放大倍数为1994902.4367
	num=Math.round(num);//四舍五入放大倍数后的小数位,1994902
	num/=Math.pow(num,d);//缩小返回原来的数1994.902
	return num;
}
开方与乘方
Math.pow(底数,开方次数)
	**开方**
Math.sqrt(num)
	**乘方**
最值
var min=Math.min(num1,num2,......)
var max=Math.max(num1,num2,......)
此比较方法不支持传入数组参数,可以用**Math.(max/min).apply(Math,arr)** apply方法可以将数字打散,单独把每个元素传入
绝对值
Math.abs(num)
随机数
Math.random();默认在0-1之间取随机小数,能取到0(最小数),不会取到1(最大数)
	常用方法:
			parseInt(Math.random()*(max-min+1)+min);//min-max间的随机整数
			parseInt(Math,random()*(max+1));//0-max间的随机整数

日期对象

创建

var now=new.Date();//获取当前打开页面的时间
var birth=new.Date(“yyyy/MM/dd hh:mm:ss”);//自定义时间
var birth=new.Date(yyyy,MM,dd,hh,mm,ss);//此方法月份输入时要-1,MM的取值0-11

API

获取时间:
getFullYear(); getMonth(); getDate(); getDay(); getHours(); getMinutes(); getSeconds(); getMilliseconds();
toLocaleString();toLocalDateString();toLocalTimeString();
设置(修改)时间:
setFullYear(); setMonth(); setDate(); setHours(); setMinutes(); setSeconds(); setMilliseconds();
各个日期的取值范围:
	FullYear:1-12
	Month:0-11
	Date:1-31
	Day:0-6
	Hours:0-23
	Minutes:0-59
	Seconds:0-59
对一个日期的分量做计算的建议操作:
	date.setxx(date.getxx()+/-n);

日期对象使用API后之前的值会被覆盖,此时要使用复制保存原值再操作

Error对象

浏览器中自带的错误类型:
  1. SyntaxError(语法错误):一般为语法或是符号书写错误
  2. ReferenceError(引用错误):使用未创建的参数
  3. TypeError(类型错误):使用非自身所属的API
  4. RangeError(范围错误):使用num.toFixed()时参数不能大于100
错误处理:

防止在执行了错误代码后后续的代码执行受影响

try{
	易发生错误代码
}catch(err){
	执行try中代码发生错误时,自动提示错误信息(英文),建议手动输入中文提示
}
可以用if...else代替
抛出自定义错误:

throw new Error(“自定义文字”)

Object

Function对象

function 函数名(){}

声明提前

var 函数名=function(形参列表){函数体;return返回值;}
var 函数名=new Function(“形参1”…“函数体”;return返回值)

当函数不是固定时,可以用字符串动态拼接
重载(不支持),可以用arguments对象解决
arguments对象:是函数自带的,属于类数组对象,用于接收所有实参

  1. arguments[i]:使用下表访问
  2. arguments.length有长度
  3. arguments
匿名函数

函数自调

(function(){
	代码
})();

函数回调


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值