javascript
mingqingyuefeng
分享关注我的公众号[畅学前端]
展开
-
js中对象属性值排序(字典倒排序)
sort函数先说一下sort函数:var a=[3,2,5,7,3,6,8,9,1,2];document.writeln(a.sort());12结果即是对a顺序排序; 逆序排序两种方法,第一种:document.writeln(a.sort().reverse());1第二种,查看sort方法介绍: 里面包含一个函数可选参数,这个参数有两个形参a转载 2017-07-27 10:53:24 · 6438 阅读 · 0 评论 -
JS获取字符串长度,汉字算两个字节
//第一种GetLength = function(str) { var realLength = 0; for (var i = 0; i < str.length; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLe转载 2018-01-31 10:56:36 · 590 阅读 · 0 评论 -
项目常用功能模块(4)-ztree树节点名称太长(动态控制)
上一篇,关于ztree节点数据过长的文章,不能动态控制,根据情况,自己又改进了下。这一次的改进,包括:一:根据ztree所在的区域长度以及节点的级数 动态 判断节点是否省略,不再写死。二:新增了关于 节点数据 中,包含汉字和英文字母的判断,更加精确。function addDiyDom(treeId, treeNode) { var ztreeWidth=$("#tree")原创 2018-01-31 15:21:09 · 2242 阅读 · 3 评论 -
浏览器缓存 Last-Modified / Etag / Expires / Cache-Control 详解
什么是浏览器缓存浏览器缓存,又称 HTTP 缓存,指的是:当我们浏览网站的时候,器存储会在本地存储一个副本,以便下次访问同个网址的时候可以不再连接服务器,直接使用本地的缓存。服务器端程序可以通过 HTTP Cache Headers 来控制缓存行为,减轻服务器的负担,缩短了响应时间,显著得提高网站的性能。HTTP Cache Headers当服务器发出响应的时候,可以通过两种方式来告诉客户端(浏览...转载 2018-03-07 13:39:44 · 324 阅读 · 0 评论 -
JavaScript的“强类型数组”简介
我们平时使用的Array对象说它是数组,其实是一个从哈希表扩展的结构体。因此它可以提供push、splice等一些列操作。这就意味着他们的效率是很低的。在JavaScript中也可以创建真正的数组,那就是强类型数组。这个概念在以前的JavaScript中是没有的,由于现在JavaScript的发展,它变得可以调用一些系统底层的东西比如WebGL。这些底层的操作需要直接访问内存,而JavaScrip...转载 2018-03-13 11:02:54 · 382 阅读 · 0 评论 -
IE 浏览器各个版本 JavaScript 支持情况一览表
不同版本的 Internet Explorer 浏览器支持不同的 JavaScript 元素集。标准模式(有 <!doctype> 指令时 Internet Explorer 所有当前版本中使用的模式)支持的一组元素与突发模式(没有 <!doctype> 指令时使用的模式)不同。 有关版本控制的更多信息,请参见Defining Document Compatibility(...原创 2018-03-13 11:10:03 · 1456 阅读 · 0 评论 -
debounce消抖函数
在项目开发中,经常会遇到希望函数在,触发Ns后执行,如果不足N秒,不执行,类似于电路中,处理按钮开关时,电平并非完全的0 1 电平,而是有波峰抖动,需要消除抖动,在按下N秒后,执行,不足N秒不执行。非常有用,类似于angular的ng-model-option={“debounce”:30}debounce函数:var debounce = function (func, threshold, e...原创 2018-03-06 10:33:21 · 1605 阅读 · 0 评论 -
登录输入框,出现229以及屏蔽中文输入法等尝试
公司项目中,根据angular写了一个登陆方法,其中有一个bug,就是在中文输入法状态下,输入用户名,并敲击enter,发现虽然输入框中,已经输入用户名,但是angular却未拿到,仍然报 无用户。针对这个问题,我的解决思路是:检测用户是否敲击了 enter 这个键位,如果敲击到了,则用原生js或者jQuery拿到用户input框中的值,去做判断。所以就用到了 ng-keyup/ng-keydo...原创 2018-03-06 16:21:46 · 1438 阅读 · 0 评论 -
理解Cookie和Session机制
理解Cookie和Session机制目录Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Cookie的有效期Cookie的修改、删除Cookie的域名Cookie的路径Cookie的安全属性JavaScript操作Cookie案例:永久登录Session机制什么是Session实现用户登录Sessio...转载 2018-04-15 18:03:58 · 220 阅读 · 0 评论 -
js中如何创建变化的数组名,以及根据动态数组名,查找数组
理论上Javascript变量声明是在编译阶段得到的,所以无法通过声明变量名的形式进行存储,但是可以存储为对象的属性,因为可以用obj[prop]的形式声明变量。根据动态数组名,查找相应数组。比如var obj = {};for(let i=0; i<5; i++){ obj['arr'+i] = [];}...原创 2018-03-27 20:07:16 · 6844 阅读 · 0 评论 -
jquery form表单.serialize()序列化后中文乱码问题原因及解决
有时候我们需要使用ajax提交去提交form的值,这样就需要使用serialize()去获取form的值,但这样获取的值如果有中文,会乱码,原因和解决方法如下:原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 如:vardata=$('#addf').serialize(...转载 2018-04-05 20:34:12 · 1419 阅读 · 0 评论 -
轻松理解JS基本包装对象
今天来讨论一下JS中的基本包装对象(也叫基本包装类型),之前刚学到这里的时候,自己也是一头雾水,不明白这个基本包装对象到底是个什么鬼,后来找了很多资料,终于看清了它的真面目。首先呢,我们现在复习一下JS的数据类型,JS数据类型被分为了两大门派,基本类型和引用类型。 基本类型:Undefined,Null,Boolean,Number,String 引用类型:Object,Array...转载 2018-05-14 23:49:37 · 374 阅读 · 0 评论 -
项目常见错误及解决方法--点击button自动提交表单
form表单中,点击任何button 都会自动提交,经查阅资料发现是因为出现上述的问题主要是button标签的type属性惹的祸,button的type属性值有三个分别为button、submit、reset。当我们在利用button标签写一个按钮且没有指定其type属性时,IE7以下版本(具体是IE7以下还是IE5以下给忘了)会默认指定为button,其他会被默认指定为submit。当按钮的...原创 2018-08-13 17:05:50 · 498 阅读 · 0 评论 -
Object对象详细参考
本文参考MDN做的详细整理,方便大家参考MDNJavaScript原生提供一个Object对象(注意起首的O是大写),所有其他对象都继承自这个对象。构造函数:Object 构造函数为给定的值创建一个对象包装。如果给定值是 null or undefined,将会创建并返回一个空对象否则,将返回一个与给定值对应类型的对象。当以非构造函数形式被调用时,Object()转载 2017-12-28 14:01:39 · 1019 阅读 · 0 评论 -
DOM对象和JQuery对象的区别
jQuery对象和DOM对象使用说明,需要的朋友可以参考下。1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery对象和DOM对象以及它们之间的关系.DOM对象,即是我们用传统的方法(javascript)获得的对象,jQuery对象即是用jQuery类库的选择器获得的对象;复制代码 代码如下:转载 2017-12-28 10:00:43 · 504 阅读 · 0 评论 -
js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总
在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要。 什么是Cookie所谓Cookie,只是一条极为短小的信息,它被浏览器自动地放置在访问用户的电脑硬盘中。例如:C:\Users\[user]\AppData\Roaming\Microsoft\Windows\Cookies转载 2018-01-12 11:12:13 · 658 阅读 · 0 评论 -
对象数组中,将对象中,相同的key-value对象,分类出来
最近在公司做项目,遇到这种情况:,经过网上查找相关资料:var obj={}; $.each(data, function(key,val) { var objArray=obj[val.kpi]||[]; objArray.push(val); obj[val.kpi]=objArray; });原创 2017-10-09 15:28:04 · 5380 阅读 · 0 评论 -
项目常用功能模块(3)-移除数组中的指定元素
一.不直接修改数组题目描述移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组输入例子:remove([1, 2, 3, 4, 2], 2)输出例子:[1, 3, 4]方法1function remove(arr, item) { var result=[]; for(va转载 2017-10-10 19:02:04 · 213 阅读 · 0 评论 -
js基本数据类型-深入讲解(1)
js的基本数据类型有哪些?ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。还有1中复杂的数据类型————Object,Object本质上是由一组无序的名值对组成的。其中Undefined、Null、Boolean、Number都属于基本类型。Object、Array和Function则属于引转载 2017-10-14 15:42:07 · 309 阅读 · 0 评论 -
js基本数据类型-深入讲解(2)
跟我学习javascript的基本类型和引用类型,利用图解的方式,告诉大家javascript的基本类型和引用类型的区别和联系,感兴趣的小伙伴们可以参考一下一、基本类型和引用类型基本的数据类型有5个:undefined,boolean,number,string,nulltypeof null; //"object"typeof undefined; //转载 2017-10-14 16:14:24 · 221 阅读 · 0 评论 -
js基本数据类型-深入讲解(3)-小案例
js数据类型分为基本数据类型和引用数据类型:var obj={};function hello(){ obj.id=2; console.log(obj);}hello();obj.name="张三";console.log(obj);输出:{ id: 2 }{ id: 2, name: '张三' }基本数据类型:var a=0;function test(原创 2017-10-14 16:57:25 · 283 阅读 · 0 评论 -
项目常见错误及解决方法-console.log打印数组,数组有元素但长度为0
在项目中,使用restangular,在成功回调函数中,给数组复制,同时,返回给一个数组变量,在函数后面,打印出现:数组为空,但是点开又有数据,最终找到原因:因为开始空数组没赋值,赋值之后,因为是地址引用,那个数组已经被修改了。显示零是原来的长度。但包含修改后的结果。换句话说,就是由于restangular异步请求数据,在执行restangular时(由于异步,此时,开始回调函数还原创 2017-10-14 17:52:21 · 17385 阅读 · 3 评论 -
ztree按住shift选择
ztree使用shift按住选择,已验证:onClick: function(event,treeId, treeNode,clickFlag){ var preClickedNode = window.preClickedNode; window.preClickedNod转载 2017-11-29 11:05:25 · 443 阅读 · 1 评论 -
多个select下拉框,选中当前某一项,其他下拉框去掉选中的值
前两天在项目开发的时候有个需求是要求多个下拉框,选中某一项后其他下拉框移除该项,虽然写的有点绕,如果那个小伙伴有更好的例子,可以贡献下。先贴几张图看下效果这是全部下拉框展开的效果图,具体描述看图吧,下面就开始贴代码html部分class="video_in"> 下拉一 select name="B转载 2017-11-23 14:58:01 · 4310 阅读 · 0 评论 -
label的click()事件执行两次
如果你的结构是label内写input实现点击文字时候input也有相应。并且,把事件设置在了label上,那么就会执行两次了。html:沪深A股jq/js:$(document).ready(function () {$("label").click(function (){alert(1);});});转载 2017-12-04 16:33:58 · 462 阅读 · 0 评论 -
自定义CheckBox解决label点击事件触发两次问题
问题描述:比如说现在要做一个自定义的CheckBox,如下图所示我们会用到label和input标签嵌套,点击label的时候,事件冒泡一次,同时会触发关联的input的click事件,导致事件再次冒泡,以至于自定义的复选框达不到我们想要的效果。解决办法:判断事件来源,如果是input,则阻止。js代码如下: $('label').click(f转载 2017-12-04 16:34:49 · 4326 阅读 · 1 评论 -
js 对象深复制,创建对象和继承
js 对象深复制,创建对象和继承。主要参考高级编程第三版,总结网上部分资料和自己的代码测试心得。每走一小步,就做一个小结。1.对象/数组深复制 一般的=号传递的都是对象/数组的引用,如在控制台输入var a=[1,2,3], b=a;b[0]=0;a[0] 此时显示的结果为0,也就是说a和b指向的是同一个数组,只是名字不一样罢了。转载 2017-12-14 09:30:59 · 212 阅读 · 0 评论 -
jQuery的deferred对象详解
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。每个版本都会引入一些新功能。今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax。为了实现它,jQuery的全部ajax代码都被改写了。但是,它比较抽象,初学者很难掌握,网转载 2018-01-01 11:02:34 · 294 阅读 · 0 评论 -
JQuery阻止冒泡事件on绑定中异常情况分析
本文转载自https://www.cnblogs.com/tengj/p/4794947.html,纯粹作为日常笔记使用科普下事件冒泡以及默认行为,以下面例子举列子: 事件冒泡:当点击内部button元素时,会触发自身及外层 a的点击事件,这就是事件冒泡引起的。事件会随着 DOM 的层次结构依次向上传播。 事件冒泡可能会引起意料之外的效...转载 2018-09-09 21:20:04 · 3311 阅读 · 1 评论