js

js 随机数

自古美人都是妖i 提交于 2020-03-29 18:04:11
1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1) 2.Math.floor(num); 参数num为一个数值,函数结果为num的整数部分。 3.Math.round(num); 参数num为一个数值,函数结果为num四舍五入后的整数。 Math:数学对象,提供对数据的数学计算。 Math.random(); 返回0和1间(包括0,不包括1)的一个随机数。 Math.ceil(n); 返回大于等于n的最小整数。 用Math.ceil(Math.random()*10);时,主要获取1到10的随机整数,取0的几率极小。 Math.round(n); 返回n四舍五入后整数的值。 用Math.round(Math.random());可均衡获取0到1的随机整数。 用Math.round(Math.random()*10);时,可基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。 Math.floor(n); 返回小于等于n的最大整数。 用Math.floor(Math.random()*10);时,可均衡获取0到9的随机整数。 来源: https://www.cnblogs.com/hgj123/p/5312107.html

JS 7种数组去重的方法

泄露秘密 提交于 2020-03-29 17:46:45
JS 数组去重的方法 方法一:多层循环比较 利用splice的特性,比较两个数是否相同,获得相同元素的下标,删除相同元素,改变原数组,获得去重后的数组 function uniqueArr(arr){ for(var i = 0;i < arr.length ;i++){ for(var j = i + 1;j < arr.length - 1; j++){ if(arr[i] == arr[j]){ arr.splice(j,1); } } } return arr; } 方法二:利用indexOf() 设置一个新的数据用来接收数据,利用indexOf 来判断 数据是否存在于 新数组中,不存在,则添加进去,获得去重后的新数组 function uniqueArr(arr){ var newArr = []; for(var i = 0;i < arr.length;i++){ if(newArr.indexOf(arr[i]) < 0){ newArr.push(arr[i]); } } return newArr; } 方法三:对象键值对法 定义一个对象,用数组中的元素作为对象属性名,如果对象名不存在,那么将该元素添加到新数组中,给对应的属性值 设置 一个值作为标记,不一定为1,获得去重后的新数组 function uniqueArr(arr){ var obj = {};

JS监测产品有效曝光

纵饮孤独 提交于 2020-03-29 11:32:52
电商列表页面,数据加载,并不是写到了列表的产品图都被客户看见了。有时候根本没有被加载 1. 判断加载 浏览器是否能判断一张图,加载完毕,如果可以那么触发JS,推送一次 曝光 数据 轮询图片 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - complete attribute</title> </head> <body> <img id="img1" src="http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"> <p id="p1">loading...</p> <script type="text/javascript"> function imgLoad(img, callback) { var timer = setInterval(function() { if (img.complete) { clearInterval(timer); callback(); } }, 50) } imgLoad(img1, function() { // p1.innerHTML = '加载完毕'; //Ajax 触发监测系统 传送产品ID }) </script> </body> </html> 图片的onload <!DOCTYPE HTML

css 用js替换

旧城冷巷雨未停 提交于 2020-03-29 09:06:21
html 如下 <!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link href="1.css" rel="stylesheet" type="text/css" id="css"> <title>Document</title></head><body><a href="#" onClick="change(1)">1.css 点击变白</a><a href="#" onClick="change(2)">2.css 点击变黑</a><script type="text/javascript"> function change(a){ var css=document.getElementById("css"); if (a==1) css.setAttribute("href","1.css"); if (a==2) css

判断浏览器类型JS

半世苍凉 提交于 2020-03-29 08:01:24
// 判断浏览器类型 getExplorer() { var explorer = window.navigator.userAgent, compare = function (s) { return (explorer.indexOf(s) >= 0); }, ie11 = (function () { return ("ActiveXObject" in window) })(); if (compare("MSIE") || ie11) { return 'ie'; } else if (compare("Firefox") && !ie11) { return 'Firefox'; } else if (compare("Chrome") && !ie11) { if (explorer.indexOf("Edge") > -1) { return 'Edge'; } else { return 'Chrome'; } } else if (compare("Opera") && !ie11) { return 'Opera'; } else if (compare("Safari") && !ie11) { return 'Safari'; } }, 判断是不是IE var userAgent = navigator.userAgent if (-1 !==

JS-表单验证

妖精的绣舞 提交于 2020-03-29 06:59:55
表单验证需求: 1、所有表单项需要即时验证,最好是用户写一个验证一个 2、所有表单项当验证失败的时候提示错误消息,并且错误消息显示到组建的后面,红色字体,要求12号 3、当表单验证成功之后不提示消息 4、当只要表单项验证失败,阻止其提交表单 5、用户名不能为空 6、用户名长度必须在6-14位 7、密码和确认密码必须一致 注意:blur:失去焦点 focus:获取焦点 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="Generator" content="EditPlus®"> 6 <meta name="Author" content=""> 7 <meta name="Keywords" content=""> 8 <meta name="Description" content=""> 9 <title>表单验证</title> 10 </head> 11 <body> 12 <!-- 13 //name属性取消之后提交表单时则不会提交这个数据 14 --> 15 <script type="text/javascript"> 16 function checkName(userName){ 17 var ok=true; 18 var userName

JS表单验证

强颜欢笑 提交于 2020-03-29 06:59:07
HTML部分代码:         CSS样式:     消息提示框样式:        JS正则表达式代码:     电话:          邮箱:             密码:          再次输入密码验证:             整个表单页面验证:            完整代码:      <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>注册练习</title> <link rel="stylesheet" href="dist/css/bootstrap.min.css"/> <style> .err{ color: red; font-size: 12px; height: 16px; padding-left: 40px; margin-top: 10px; } </style></head><body> <div> <h3>注册</h3> <form action="#" method="post" id="myform"> <p> 手机:<input type="text" name="mobile" id="phone" onblur="mobiles(this)" /><span class="err" id="mobile"></span> </p> <p>

JS的函数和对象

牧云@^-^@ 提交于 2020-03-29 00:28:47
1.递归 在函数的内部调用自身,默认是一个无限循环。 2.匿名函数 没有名称的函数 function(){ } (1)创建函数 函数声明 function fn1(){ } 函数表达式 var fn2=function(参数){ 函数体; } 变量名就是函数的名称 对比函数声明和函数表达式的区别 函数声明创建函数存在提升,可以在任意位置创建; 函数表达式使用变量创建的,只是存在变量提升,不存在函数提升,只能先创建,再调用。 (2)匿名函数自调用 目的:创建函数作用域包裹起来,防止污染全局。 (function(形参列表){ //函数体中的变量和函数不能被外部访问 })(实参列表); (3)回调函数 把匿名函数以实参的形式传递,意味着形参就是传递的匿名的函数名称 function fn(a){ //调用fn的时候,匿名函数赋值给参数a,a就是函数名称 a() //执行传递的匿名函数函数体中的代码 } fn( function(){ ... } ); 3.全局函数 parseInt()/parseFloat()/isNaN() encodeURI() 对网址中的汉字进行编码 decodeURI() 对已经编码网址进行解码 isFinite() 判断一个值是否为有限值 是->true 不是-false 2/0 ->Infinity(无穷) 0/2 ->0 eval()

使用js定位到可编辑div的末尾

五迷三道 提交于 2020-03-28 19:56:40
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div contenteditable="true" id="guestbook_editor">2</div> <button onclick="set_focus()">aa</button> <script> function set_focus() { var el=document.getElementById('guestbook_editor'); var range = document.createRange(); range.selectNodeContents(el); range.collapse(false); var sel = window.getSelection(); sel.removeAllRanges(); sel.addRange(range); } </script> </body> </html> 我看不太懂,额,原文地址: https://www.cnblogs.com/jonie-wong/p/5519822.html 来源: https://www.cnblogs.com/woyujiezhen/p/12588808.html

js中数组对象去重的几种方法

谁都会走 提交于 2020-03-28 10:51:06
var arr = [{ key: '01', value: '乐乐' }, { key: '02', value: '博博' }, { key: '03', value: '淘淘' },{ key: '04', value: '哈哈' },{ key: '01', value: '乐乐' }]; // 方法1:利用对象访问属性的方法,判断对象中是否存在key var result = []; var obj = {}; for(var i =0; i<arr.length; i++){ if(!obj[arr[i].key]){ result.push(arr[i]); obj[arr[i].key] = true; } } console.log(result); // [{key: "01", value: "乐乐"},{key: "02", value: "博博"},{key: "03", value: "淘淘"},{key: "04", value: "哈哈"}] // 方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值 var obj = {}; arr = arr.reduce(function(item, next) { obj[next.key] ? '' : obj[next.key] = true &