1. 初始化数组
如果想要初始化一个指定长度的一维数组,并指定默认值,可以这样:
const array = Array(6).fill(''); // ['', '', '', '', '', '']
如果想要初始化一个指定长度的二维数组,并指定默认值,可以这样:
const matrix = Array(6).fill(0).map(() => Array(5).fill(0));
2. 数组求和、求最大值、最小值
数组求和:array.reduce((a,b) => a+b);
数组最大值:array.reduce((a,b) => a > b ? a : b); Math.max(...array)
数组最小值:array.reduce((a,b) => a < b ? a : b); Math.min(...array)
3.过滤错误值
如果想过滤数组中的false、0、null、undefined等值,可以这样写:
const array = [1, 0, undefined, 6, 7, '', false];
array.filter(Boolean);
// [1, 6, 7]
4.使用逻辑运算符
if(a > 10) { doSomething(a) }
可以改写成a > 10 && doSomething(a)
这样写就会简洁很多,如果逻辑与&&操作符前面的值为假,就会发生短路操作,直接结束这一句的执行;如果为真,就会继续执行&&后面的代码,并返回后面代码的返回值。使用这种方式可以减少很多if...else判断。
5.数字取整
对于数字取整有以下方法等等:
(1)math.floor,math.ceil,math.round
1.Math.round():
小数点后第一位<5
正数:Math.round(11.46)=11
负数:Math.round(-11.46)=-11
小数点后第一位>5
正数:Math.round(11.68)=12
负数:Math.round(-11.68)=-12
小数点后第一位=5
正数:Math.round(11.5)=12
负数:Math.round(-11.5)=-11
总结:(小数点后第一位)大于五全部加,等于五正数加,小于五全不加。
2.Math.ceil():向上取整
例如:
Math.ceil(11.46)=Math.ceil(11.68)=Math.ceil(11.5)=12
Math.ceil(-11.46)=Math.ceil(-11.68)=Math.ceil(-11.5)=-11
3.Math.floor():向下取整
例如:
Math.floor(11.46)=Math.floor(11.68)=Math.floor(11.5)=11
Math.floor(-11.46)=Math.floor(-11.68)=Math.floor(-11.5)=-12
4.使用~~运算符来消除数字的小数部分,它相对于数字的那些方法会快很多
如果是数字类型的字符串,就会转化为纯数字;如果字符串包含数字之外的值,就会转化为0;如果是布尔类型,true会返回1,false会返回0;
js上传一张图片
<input type="file" class="file" name="file" />
document.querySelector('.file').addEventListener('change', function(e) {
//1.可以通过this拿到这个file的DOM元素
console.log(this)
//1. e 函数事件参数对象中也有这个file的DOM元素对象。使用e.target也可以直接拿到
console.log(e.target)
//对开发人员屏蔽,所以直接 必须调用这个文件的DOM对象的files属性,返回一个数组
let files = e.target.files
console.log(files)
// 判断是否有文件
if (!files.length) return
// 上传文件 创建FormData
let formData = new FormData()
// upFile就是后台接收的key
formData.append('upFile', files[0], files[0].name)
// 将formdata发送到后台即可
})