js中基础理论及常用api
生成随机数
js
// 生成随机数
getRandomNumber (m,n){
return Math.floor(Math.random()*(m - n) + n);
},
// 生成随机数
getRandomNumber (m,n){
return Math.floor(Math.random()*(m - n) + n);
},
播放videojs
js
// 播放videojs
playVideoJS(videoName, videoId) {
videoName = this.$video(videoId, {
bigPlayButton: false,
textTrackDisplay: false,
posterImage: true,
errorDisplay: false,
controlBar: true,
}, function () {
this.play()
});
},
// 播放videojs
playVideoJS(videoName, videoId) {
videoName = this.$video(videoId, {
bigPlayButton: false,
textTrackDisplay: false,
posterImage: true,
errorDisplay: false,
controlBar: true,
}, function () {
this.play()
});
},
两个按钮点击事件重叠在一起
event.stopPropagation(); // 原生js实现阻止冒泡-使点击眼睛只触发当前事件
使用jquery实现一个上传功能
js
// 上传图片
const uploadImg = ()=> {
let formData = new FormData();
$("#fUpload").change(()=> {
let file = $("#fUpload")[0].files[0];
formData.append('multipartFile', file);
// console.log(formData.get("multipartFile")); // 获取formData对象
$.ajax({
url: URL + "/api/upload/file",
type: "POST",
data:formData,
processData: false, // 如果想发送不想转换的的信息的时候需要手动将其设置为false
contentType:false,
cache:false,
headers: {
"X-Token":sessionStorage.getItem("token")//此处放置请求到的用户token
},
success: ()=> {
alert("上传成功");
},
error: err=> {
console.log(err);
}
});
});
}
// 上传图片
const uploadImg = ()=> {
let formData = new FormData();
$("#fUpload").change(()=> {
let file = $("#fUpload")[0].files[0];
formData.append('multipartFile', file);
// console.log(formData.get("multipartFile")); // 获取formData对象
$.ajax({
url: URL + "/api/upload/file",
type: "POST",
data:formData,
processData: false, // 如果想发送不想转换的的信息的时候需要手动将其设置为false
contentType:false,
cache:false,
headers: {
"X-Token":sessionStorage.getItem("token")//此处放置请求到的用户token
},
success: ()=> {
alert("上传成功");
},
error: err=> {
console.log(err);
}
});
});
}
jquery动态渲染
jquery动态渲染出来的dom结构点击事件无法获取当前dom信息($(this))
js
// 渲染按钮
btnStr = `
<ul>
<li>
<button class="ac_btn sp_jj" data-ckid=${bxspdcl[item].expenseId}>拒绝</button>
</li>
<li>
<button class="ac_btn sp_ty" data-ckid=${bxspdcl[item].expenseId}>同意</button>
</li>
</ul>
`;
// 审批-拒绝
$('body').on('click', '.sp_jj', e=> {
utilTip.dspBtnParm.applyId = e.currentTarget.dataset.ckid; // 审批id
});
// 渲染按钮
btnStr = `
<ul>
<li>
<button class="ac_btn sp_jj" data-ckid=${bxspdcl[item].expenseId}>拒绝</button>
</li>
<li>
<button class="ac_btn sp_ty" data-ckid=${bxspdcl[item].expenseId}>同意</button>
</li>
</ul>
`;
// 审批-拒绝
$('body').on('click', '.sp_jj', e=> {
utilTip.dspBtnParm.applyId = e.currentTarget.dataset.ckid; // 审批id
});
JavaScript根据经纬度获取距离信息
js
//经纬度转换成三角函数中度分表形式。
function rad(d) {
return d * Math.PI / 180.0;
}
/**
*
* @param lat1 纬度1
* @param lng1 经度1
* @param lat2 纬度2
* @param lng2 经度2
*/
function geoDistance(lat1, lng1, lat2, lng2) {
let radLat1 = rad(lat1);
let radLat2 = rad(lat2);
let a = radLat1 - radLat2;
let b = rad(lng1) - rad(lng2);
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000; // 输出为公里
return s;
}
//经纬度转换成三角函数中度分表形式。
function rad(d) {
return d * Math.PI / 180.0;
}
/**
*
* @param lat1 纬度1
* @param lng1 经度1
* @param lat2 纬度2
* @param lng2 经度2
*/
function geoDistance(lat1, lng1, lat2, lng2) {
let radLat1 = rad(lat1);
let radLat2 = rad(lat2);
let a = radLat1 - radLat2;
let b = rad(lng1) - rad(lng2);
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * 6378.137;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000; // 输出为公里
return s;
}
30. sessionStorage传输对象
js
// 存储
sessionStorage.setItem("rowData", JSON.stringify(row));
// 读取
let getRowDataString, getRowDataObj;
getRowDataString = sessionStorage.getItem("rowData");
getRowDataObj = JSON.parse(getRowDataString); // json字符串转对象
console.log(getRowDataObj);
// 存储
sessionStorage.setItem("rowData", JSON.stringify(row));
// 读取
let getRowDataString, getRowDataObj;
getRowDataString = sessionStorage.getItem("rowData");
getRowDataObj = JSON.parse(getRowDataString); // json字符串转对象
console.log(getRowDataObj);
36. 生成位数数字
js
// 生成位数数字
getSuiJiNum(n) {
const max = Math.pow(10, n) - 1;
const min = Math.pow(10, n - 1);
return Math.round(Math.random() * (max - min)) + min;
},
this.getSuiJiNum(6); // 6位
// 生成位数数字
getSuiJiNum(n) {
const max = Math.pow(10, n) - 1;
const min = Math.pow(10, n - 1);
return Math.round(Math.random() * (max - min)) + min;
},
this.getSuiJiNum(6); // 6位
46. 外部引入用法
46.1. node引入方式
js
// config.js
module.exports = {
aUrl: "http://xxx:5603", // xxx地址
bUrl: "http://xxx:5603", // xxx地址
}
import test from '@/util/config'
console.log(test.aUrl)
console.log(test.bUrl)
// config.js
module.exports = {
aUrl: "http://xxx:5603", // xxx地址
bUrl: "http://xxx:5603", // xxx地址
}
import test from '@/util/config'
console.log(test.aUrl)
console.log(test.bUrl)
46.2. es6引入方式
js
// 获取es数据列表
export const getEsDataList = hitList=> {
let esDataList = [];
hitList.forEach(val=> {
// 获取es目标数据的数据源
esDataList.push(val._source);
});
return esDataList;
}
import * as config from '@/util/config'
let esDataList = config.getEsDataList(unitCrewHits); // 获取es数据列表
// 获取es数据列表
export const getEsDataList = hitList=> {
let esDataList = [];
hitList.forEach(val=> {
// 获取es目标数据的数据源
esDataList.push(val._source);
});
return esDataList;
}
import * as config from '@/util/config'
let esDataList = config.getEsDataList(unitCrewHits); // 获取es数据列表
47. 函数传参(对象)
js
aa(s,v) {
let obj = {}
obj[s] = v
},
aa(s,v) {
let obj = {}
obj[s] = v
},
76. 判断ie
js
// 判断ie
let isIe = ()=> {
if(!!window.ActiveXObject || "ActiveXObject" in window)
return true;
else
return false;
}
// 判断ie
let isIe = ()=> {
if(!!window.ActiveXObject || "ActiveXObject" in window)
return true;
else
return false;
}
93. 浏览器地址逆解析
js
let { hash } = window.location
let index = hash.lastIndexOf('=')
this.username = decodeURIComponent(hash.substring(index+1, hash.length))
let { hash } = window.location
let index = hash.lastIndexOf('=')
this.username = decodeURIComponent(hash.substring(index+1, hash.length))
9. 输入框非空
js
// 在处理输入框相关业务时,往往会判断输入框未输入值的场景
// es5
if(value !== null && value !== undefined && value !== ''){
//...
}
// es6
// ES6中新出的空值合并运算符
if(value??'' !== ''){
//...
}
// 在处理输入框相关业务时,往往会判断输入框未输入值的场景
// es5
if(value !== null && value !== undefined && value !== ''){
//...
}
// es6
// ES6中新出的空值合并运算符
if(value??'' !== ''){
//...
}