js

IP掩码转IP段 JS与php实现

喜欢而已 提交于 2020-01-22 16:06:20
最近有个需求要校验IP掩码与输入的IP段是否重复,然后全网各种搜,终于集各家于大成。好了直接上代码【部分代码不记得出处了,没有标注,还望原作者见谅】 【JS部分】 //IP转成整型 function _ip2int(ip) { var num = 0; ip = ip.split("."); num = Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]); num = num >>> 0; return num; } //整型解析为IP地址 function _int2iP(num) { var str; var tt = new Array(); tt[0] = (num >>> 24) >>> 0; tt[1] = ((num << 8) >>> 24) >>> 0; tt[2] = (num << 16) >>> 24; tt[3] = (num << 24) >>> 24; str = String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]); return str; } //ip掩码转IP段 function subnet

js 求圆周每个点坐标

五迷三道 提交于 2020-01-22 14:13:03
用到得js内置函数:Math.sin() 、Math.cos() Math.sin(x) x 的正玄值。返回值在 -1.0 到 1.0 之间; Math.cos(x) x 的余弦值。返回的是 -1.0 到 1.0 之间的数; 这两个函数中的X 都是指的“弧度”而非“角度”,弧度的计算公式为: 2*PI/360*角度; 30° 角度 的弧度 = 2*PI/360*30 计算圆周上每个点坐标 解决思路:根据三角形的正玄、余弦来得值; 假设一个圆的圆心坐标是(a,b),半径为r, 则圆上每个点的X坐标=a + Math.sin(2*Math.PI / 360) * r ;Y坐标=b + Math.cos(2*Math.PI / 360) * r ; 如何求时钟的秒针转动一圈的轨迹? 假设秒针的初始值(起点)为12点钟方向,圆心的坐标为(a,b)。 解决思路:一分钟为60秒,一个圆为360°,所以平均每秒的转动角度为 360°/60 = 6°; for(var times=0; times<60; times++) { var hudu = (2*Math.PI / 360)* 6 * times; var X = a + Math.sin(hudu) * r; var Y = b - Math.cos(hudu) * r // 注意此处是“-”号,因为我们要得到的Y是相对于(0,0

[JS练习 3]时间转换

不打扰是莪最后的温柔 提交于 2020-01-22 09:25:40
将时间从“XXX秒”的格式转化成“XX天XX小时XX分XX秒”的格式。 var time = 1000000 ; var day = Math . trunc ( time / 86400 ) ; var hour = Math . trunc ( ( time % 86400 ) / 3600 ) ; var minute = Math . trunc ( ( time % 3600 ) / 60 ) ; var second = Math . trunc ( ( time % 60 ) ) ; console . log ( day , "天" , hour , "小时" , minute , "分" , second , "秒" ) ; 来源: CSDN 作者: 超帅的T T 链接: https://blog.csdn.net/qq_43519498/article/details/103811967

JavaScript

痴心易碎 提交于 2020-01-22 09:23:06
文章目录 一、 JavaScript 概述 1. 什么是JavaScript 1) JS 介绍 2) JS 组成 2. 使用方式 二、基础语法 1. 语法规范 2. JS的变量与常量 1) 变量 2) 常量 3. 数据类型 1) 基本数据类型(简单数据类型) 2) 引用数据类型 3) 检测数据类型 4. 数据类型转换 1) 强制类型转换 2) 隐式类型转换(自动转换) 5. 运算符 1) 赋值运算符 2) 算数运算符 3) 符合运算符 4) 自增或自减运算符 5) 关系运算符/比较运算符 6) 逻辑运算符 7) 三目运算符 一、 JavaScript 概述 1. 什么是JavaScript 1) JS 介绍 简称JS,是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果,用户交互及前后端的数据传输等。 2) JS 组成 核心语法 -ECMAScript 规范了JS的基本语法 浏览器对象模型 -BOM Browser Object Model,提供了一系列操作浏览器的方法 文档对象模型 -DOM Document Object Model ,提供了一系列操作的文档的方法 2. 使用方式 元素绑定事件 事件 :指用户的行为(单击,双击等)或元素的状态(输入框的焦点状态等) 事件处理:元素监听某种事件并在事件发生后自动执行事件处理函数。 常用事件

js之juery

会有一股神秘感。 提交于 2020-01-22 08:11:50
目录 JQuery 属性选择器: 操作标签 文本操作 属性操作 文档处理 事件 JQuery 属性选择器: 属性选择器: [attribute] [attribute=value]// 属性等于 [attribute!=value]// 属性不等于 表单筛选器: $(":checkbox") //找到所有的checkbox属性 :text :password :file :radio :checkbox --按钮 :submit :reset :button --表单对象属性: :enabled :disabled :checked ( 选中) :seleted (select : 选中) 筛选器方法: 下一个元素: $('#id').next() --> $('#id').nextAll() $('#id').nextUntil() 上一个元素: $('#id').prev() $('#id').prevAll() $('#id').prevUntil() 父亲元素: $("#id").parent() $("#id").parents() // 查找当前元素的所有的父辈元素 $("#id").parentsUntil() // 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止。 儿子和兄弟元素: $("#id").children();// 儿子们 $("#id")

JS 详解 Cookie、 LocalStorage 与 SessionStorage

 ̄綄美尐妖づ 提交于 2020-01-22 07:43:15
基本概念 Cookie Cookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。 localStorage localStorage 是 HTML5 标准中新加入的技术,它并不是什么划时代的新东西。早在 IE 6 时代,就有一个叫 userData 的东西用于本地存储,而当时考虑到浏览器兼容性,更通用的方案是使用 Flash。而如今,localStorage 被大多数浏览器所支持,如果你的网站需要支持 IE6+,那以 userData 作为你的 polyfill 的方案是种不错的选择。 sessionStorage sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。做过后端开发的同学应该知道 Session 这个词的意思,直译过来是“会话”。而 sessionStorage 是一个前端的概念,它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。 三者的异同 特性 Cookie localStorage sessionStorage 数据的生命期

WebAssembly的使用

倖福魔咒の 提交于 2020-01-22 07:41:45
WebAssembly的使用 介绍 WebAssembly(缩写为Wasm)是基于堆栈的虚拟机的二进制指令格式。Wasm被设计为可移植目标,用于编译高级语言(如C / C ++ / Rust),从而可以在Web上为客户端和服务器应用程序进行部署。 webassembly的背景 我们为什么需要wasm?它可以解决什么问题? javascript从最开始诞生起,它的定位就是一门解释性语言,它面向的开发者是“非专业编程人员”,学习门槛很低。谁也想不到这门语言现在变成了互联网上最重要的语言之一,它在浏览器应用中的地位不可撼动。 随着互联网的发展,需求场景变得越来越复杂,js的性能问题也暴露了出来。往往当一门语言对开发者越友好,那它对机器也就越不友好。机器编译它的难度,所耗费的精力也就越高。 而WebAssembly的出现,有望解决这一难题。 WebAssembly它是一种新的字节码格式,和JS需要解释执行不同,WebAssembly的字节码它与机器码很相似,可以快速转换并装载运行,因此,它的性能相对于JS会有大大的提升。严格意义上来讲,它并不能算是一种新语言,也不需要开发者们去编写WASM代码,它是一份字节码标准。我们只需要将一些高级语言编译为wasm字节码,然后在web中使用。现在wasm的使用方式主要还是在js中引入,所以可以看出,它与JS并不是替代关系,而是合作关系

js 表单操作form

大憨熊 提交于 2020-01-22 07:38:50
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script type="application/javascript"> /** * 一、表单的获取方式 * 1.document.getElementById() * 2.document.forms[index]; * 3.document.forms[form_name] * 4.document.form_name */ function testGetForm() { var frm = document.getElementById("regForm"); // 常用 console.log(frm); frm = document.forms[0]; console.log(frm); frm = document.forms["aaform"]; console.log(frm); frm = document.aaform; // 常用,仅表单可以通过name属性获取 console.log(frm); } //二、表单对象的属性 function testFormField() { var frm = document.aaform; console.log(frm.id); console.log

js上传整个文件夹

假如想象 提交于 2020-01-22 06:50:09
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠。网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹。今天研究了一下这个问题,在此记录。 先说两个问题: 是否所有后端框架都支持文件夹上传? 是否所有浏览器都支持文件夹上传? 第一个问题:YES,第二个问题:NO 只要后端框架对于表单的支持是完整的,那么必然支持文件夹上传。至于浏览器,截至目前,只有 Chrome 支持。 如果需要其它的浏览器支持则需要借助于插件,比如泽优大文件上传控件: www.webuploader.net 关于WebUploader的功能说明: 大文件上传续传 支持超大文件上传(100G+)和续传,可以关闭浏览器,重启系统后仍然继续上传。 开源 提供ASP.NET,JSP,PHP示例和源代码,其中JSP提供MySQL,Oracle,SQL Server数据库的配置和示例代码。 分片、并发 分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。 当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。 预览、压缩 支持常用图片格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。 解析jpeg中的meta信息

高德APP全链路源码依赖分析工程

徘徊边缘 提交于 2020-01-22 06:04:06
一、背景 高德 App 经过多年的发展,其代码量已达到数百万行级别,支撑了高德地图复杂的业务功能。但与此同时,随着团队的扩张和业务的复杂化,越来越碎片化的代码以及代码之间复杂的依赖关系带来诸多维护性问题,较为突出的问题包括: 不敢轻易修改或下线对外暴露的接口或组件,因为不知道有什么地方对自己有依赖、会受到影响,于是代码变得臃肿,包大小也变得越来越大; 模块在没有变动的情况下,发布到新版本的客户端时,需要全量回归测试整个功能,因为不知道所依赖的模块是否有变动; 难以判断 Native 从业务实现转变为底层支撑的趋势是否合理,治理是否有效; 这些问题已经达到了我们必须开始治理的程度了,而解决此类问题的关键在于需要了解代码间的依赖关系。 二、高德 APP 平台架构 为了消除一些疑惑,在讨论依赖分析的实现前,先简单说明一下高德 APP 的平台架构,以便对一些名词和场景有一些背景了解。 高德 APP 从语言平台上可以分为 4 个部分,JS 层主要负责业务逻辑和 UI 框架;中间有 C++层做高性能渲染(主要是地图渲染),同时实现了一些切面 API,这样可以在双端只维护一套逻辑了;Android 和 iOS 层主要作为适配层,做一些操作系统接口的对接和双端差异化的(尽可能)抹平。 这里的切面是指 JS 层与 Native/C++ 层的分界线,这里会实现一些切面 API,也就是 JS 层与