28

JS设置cookie、读取cookie、删除cookie

Cookie 用于存储 web 页面的用户信息。

JS设置cookie、读取cookie、删除cookie、写入cookie、获取cookie实例代码。

JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。

 

13

js倒计时60秒/获取短信验证码等待60秒代码

代码如下:

 

17

JS去除字符串左右两端的空格

去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim、ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。

写成类的方法格式如下:(str.trim();)

写成函数可以这样:(trim(str))

 

26

js克隆函数

1、函数预编译过程 this —> window
2、全局作用域里 this —> window
3、obj.func(); func()里面的this指向obj), 可以这样理解,谁调用func,则this就指向谁
4、call/apply 可以改变函数运行时this指向,
(1)、call用法:
func.call(要改变后的this, arg1, arg2, … );
(2)、apply用法:
func.apply(要改变后的this, [arg1, arg2, arg2]);
(3)、apply和call共同点:都是改变this指向
apply和call不同点:传参形式不同,call是将参数一个个传进来,而apply是将所有参数存进一个数组中,然后将该数组传

对象克隆,分为浅克隆和深克隆,而上边的直接赋值的克隆操作为浅克隆,为什么称为浅克隆呢?因为,克隆的和被克隆的对象在克隆操作完成后,指向同一个地址引用,改变其中一个(注意:此处的改变为增加或删除对象的属性,而不是为该对象重新赋值一个对象),另一个也会改变,而深克隆则不会产生此现象。

深克隆/深拷贝代码如下:

Continue reading

27

解决微信开发报错:config:fail,invalid url domain

解决微信报错:config:fail,invalid url domain

进入微信公众号管理后台,设置 >> 公众号设置 >> 功能设置 >> JS接口安全域名,改成自己的域名。

下面这两项虽然不会引上标题提到的问题,但是也检查一下,修改成自己的域名。

设置 >> 公众号设置 >> 功能设置 >> 业务域名

设置 >> 公众号设置 >> 功能设置 >> 网页授权域名

20

js如何创建类(封装)

JS封装或者说是JS创建类,会有以下功能:

  • 构造器
  • 静态属性,静态方法
  • 共有属性,共有方法
  • 私有属性,私有方法

本文就说说如何用js实现对类的封装,实现上述功能,

1.一个简单的类

如何你觉得Ta不像类的话,那么你可以这样做

如果对于构造函数模式不太清楚的话,可以看看这里js创建对象之设计模式

2.一个复杂的类

有了上面的例子之后,我们在此基础之上就可以进行我们的完善了。

js中利用上述的模拟方法,实现了对类的创建,在此基础上,我们不安现状,想要对他进行封装,让他成为一个整体,更利于体现js的封装性。

3.封装js类

这里我们用闭包来实现,首先解释下闭包的概念。
闭包概念:一个函数有权访问另一个函数作用域中的变量,即在一个函数内部创建另一个函数

实现如下:

调用如下:

如上面的代码一样,我们就用js实现了类

总结:

  • 有些公共属性,方法,可以设置为静态的,这样可以在每次实例化的时候,不需要额外开辟内存资源,达到真正意义上的共享,
  • 有些公共的属性方法,只想在内部程序处理时候达到共享,则设置为,静态私有属性方法,
  • 有些公共的属性方法,想在实例对象中达到共享,则设置为prototype属性方法,

 

20

js创建对象之设计模式

封装类

1. 工厂模式

特点:

  • 内部创建对象,外部返回,相当于调用函数,
  • 对象无类型(比如其他oo语言,new一个对象,那个这个对象的构造函数就是对象类型)

2.构造函数模式

特点: Continue reading

11

js封装base64实现加密、解密

JS函数实现base64加密、base64解密

一、封装函数

二、成品插件 Continue reading

26

原生JS获取body宽度高度(含padding+border)

 

十二 18

JQuery获取DIV宽度与高度(width,padding,margin,border)

一般讲的宽度指的是内容宽度,但一个 div 的实际宽度不仅只于内容宽度,尤其在做 CSS 排版时更不能搞错,必须同时考虑 Padding、Border 与 Margin 的宽度,四个加起来才是 div 真正占有的宽度。

JQUERY 获取 DIV 宽度与高度(width,padding,margin,border)全都有了!

宽度与高度概念一样,只差水平与垂直向而已。

Margin 有个特色,就是当两个有 margin的 div 靠在一起时,两个 div 紧邻的 margin 不是相加,而是取其大者,举例来说,两个 10px margin 的 div 并在一起只会有 10px margin 的距离,若是一个 20px margin,另一个为 10px margin,则会有 20px 的 margin。

但是获取当前元素的全部宽度的时候,还是获取自身的margin+content+padding+border的值。