js
39
使用JS控制下拉列表左右选择需求分析在我们的分类管理中,我们要能够去修改我们的分类信息,当我们一点修改的时候,跳转到一个可以编辑的页面,这里面能够修改分类的名称,分类的描述,以及分类的商品推荐:《javascript基础教程》技术分析ondblclick="selectOne()":双击事件select标签的属性multiple="multiple":代码实现12345678910111213141516171819202122232425262728293031323334353637383940414
80
代码示例:12345678910111213141516171819202122232425262728293031323334var str = "aabbccehgfhaasdhgfashdfhabcasd"; // 使结果显示为一个对象,如:{a:2, b:1, c:2, d:1} var obj = {}; // console.log(obj[ "a" ]) // undefined // obj[ "a" ] = 1 // obj[ "a" ] +
276
一、缘起公司网站社区有图片上传功能,由于网站已经有些年头了,当时上传的时候根据客户端支不支持flash而分为两种逻辑。如果支持flash就使用SWFuploader这个上传组件进行文件上传,这种用户体验较好。如果不支持flash则使用普通的input标签进行上传,这种方式功能就不全,体验不好。但是由于现在chrome浏览器默认不支持flash,导致大部分时候用户都使用input标签上传,上传体验不好,所以决定使用百度的webuploader上传组件来替换原有的上传组件。在替换过程中发现一些问题,把需要注意
70
JS中数组的迭代方法forEach、map、filter、reduce、every、some在日常处理JS的数组过程中, 我们通常是采用for循环的方式来实现. 下面总结一些常用的除for循环之外的数组迭代方法.forEach (循环)让数组的每一项分别去做一件事情1234567let a = [1,2,3];a.forEach(function(value,i){ console.log("第" + (i + 1) + "项 :" + value)})// 第1项 :1// 第2项 :2// 第
73
分析过程:切换图片:12345678910111213141516171819<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> function changeImg() {
33
基本数据类型,拷贝是直接拷贝变量的值,而引用类型拷贝的其实是变量的地址。而浅拷贝和深拷贝就是在这个基础之上做的区分,如果在拷贝这个对象的时候,只对基本数据类型进行了拷贝,而对引用数据类型只是进行了引用的传递,而没有重新创建一个新的对象,则认为是浅拷贝;反之,在对引用数据类型进行拷贝的时候,创建了一个新的对象,并且复制其内的成员变量,则认为是深拷贝。深拷贝实例代码:123456789101112let o2 = JSON.parse(JSON.stringify(o1))function deepCopy(
35
一、字面量方式1234567var obj = { name: 'mm', age: 18, sayName: function() { console.log(this.name); }}问题:创建多个对象时会造成代码冗余,很占内存空间。二、工厂模式问题:虽然解决了对象字面量创造对象冗余的问题,但是存在对象识别的问题,不能反映它们之间的内在关系。三、构造函数模式问题:解决了工厂模式的问题,但是相同方法重复创建就浪费了内存空间。四、原型模式问题:共享方法,解决
41
js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。12345!null=true!undefined=true!''=true!100=false!'abc'=false2、!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:判断变量a为非空,未定义或者非空串才能执行方法体的内容1234var