本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一些javascript实用代码
1)区分IE和非IE浏览器
if(!+[1,]){
alert("这是IE浏览器");
} else{
alert("这不是IE浏览器"):
}
2)将日期直接转换为数值:
+new Date();
3)非IE浏览器下奖类数组对象arguments转换为数组:
Array.prototype.slice.call(arguments);
4)void操作符(用来计算一个表达式但是不返回值)
<a href="javcascript:void(0)">calamus</a>
5)跳转至新页面,并且保证浏览器不会再回退
location.replace("http://www.calamus.cn");
6)几秒钟后返回上一页
<meta http-equiv="refresh" content="5;url=jvascript:window.history.go(-1);">
7)在打开的子窗口中刷新父窗口
window.opener.location.reload();
8)打印页面
window.print();
9)alert()文本换行
alert("calamus\np");
10)按键检测
event.shiftKey; //检测shift
event.altKey; //检测Alt
event.ctrlKey; //检测Ctrl
检测Ctrl+Enter按键
if(event.ctrlKey&&event.keyCode==13){
console.log("calamus");
}
11)脚本永不出错的方法
window.onerror=function(m,f,l){
return true;
}
12)字符串和ASCII码之间的转换
console.g("a".charCodeAt(0));
console.log(String.fromCharCode(75));
13)判断IE版本
window.navigation.appVersion;
14)获取屏幕分辨率的宽、高
window.screen.height;
window.screen.width;
15)获取浏览器插件的数目
navigatior.plugins.length;
16)js原生判断是否是移动设备浏览器
var mobile=/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i;
if(mobile.test(window.navigator.userAgent.toLowerCase())){
//是移动设备
}
else{
//不是移动设备
}
17)城市三级联动
/*城市三级联动
* @method cityChange
* @param allProvince,allCity,allDistrict
*/
function cityChange(provinceN,cityN,districtN){
var all_province="";
for(var i=0;i<allCity.province.length;i++){
all_province+='<option name="province" value='+allCity.province[i].id+'><span class="province">'+allCity.province[i].name+'</span></option>'; };
$('#'+provinceN).append(all_province);
$('#'+provinceN).change(function () {
var provinceId = $('#'+provinceN).val();
$('#'+cityN).find("option:gt(0)").remove();
$('#'+districtN).find("option:gt(0)").remove();
var all_city="";
if( provinceId!=99999){
for(var j=0;j<allCity.city[provinceId].length;j++){
all_city += '<option name="city" value='+allCity.city[provinceId][j].id+'><span class="city">'+allCity.city[provinceId][j].name+'</span></option>';
} } ;
$('#'+cityN).append(all_city);
});
$('#'+cityN).change(function () {
var cityId = $(this).val();
var all_district="";
for(var k=0;k<allCity.district[cityId].length;k++){
all_district += '<option name="district" value='+allCity.district[cityId][k].id+'><span class="city">'+allCity.district[cityId][k].name+'</span></option>';
} ;
$('#'+districtN).append(all_district);
});
}
- 一些简单数据处理
/**
* 字符串反转输出
* @param {*} str
*/
function reverseString(str) {
str = str
.split("")
.reverse()
.join("");
return str;
}
/**
* 回文算法
* @param {*} str
*/
function palindrome(str) {
str = str.replace(/[^a-zA-Z\d]/g, "");
return str.toLowerCase() == str
.split("")
.reverse()
.join("")
.toLowerCase();
}
/**
* 返回提供的句子中最长的单词的长度
* @param {*} str
*/
function findLongestWord(str) {
str = str.split(" ");
let len = str[0].length;
for (let i = 0; i < str.length; i++) {
if (len <= str[i].length) {
len = str[i].length;
}
}
return len;
}
/**
* 返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写
* @param {*} str
*/
function titleCase(str) {
str = str.split(" ");
for (let i = 0; i < str.length; i++) {
str[i] =
str[i].substring(0, 1).toUpperCase() + str[i].substring(1).toLowerCase();
}
str = str.join(" ");
return str;
}
/**
* 在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。
* @param {*} arr
*/
function largestOfFour(arr) {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
let max = arr[i][0];
for (let j = 0; j < arr[i].length; j++) {
if (max <= arr[i][j]) {
max = arr[i][j];
}
}
newArr.push(max);
}
return newArr;
}
/**
* 把一个数组arr按照指定的数组大小size分割成若干个数组块
* @param {*} arr
* @param {*} size
*/
function chunk(arr, size) {
var index = 0;
var newArray = [];
while (index < arr.length) {
newArray.push(arr.slice(index, (index += size)));
}
return newArray;
}
/**
* 删除数组中的所有假值
* @param {*} arr
*/
function bouncer(arr) {
return arr.filter(params => Boolean(params));
}
/**
* 去除数组中任意多个值
* @param {*} arr
*/
function destroyer(arr) {
var args = [];
for (var i = 1; i < arguments.length; i++) {
//将待摧毁的值放入一个数组中,赋值给变量args
args.push(arguments[i]);
}
var newArr = arr.filter(function(item) {
//两个数组去重;
return args.indexOf(item) === -1;
});
return newArr;
}