在这存一下JavaScript常用代码:

1.封装输出

1 var log = function() {
2     console.log.apply(console, arguments)
3 }
4
5 // 测试:
6 log(123)
7 log("333", "666")
8 log("this ", "is", " a test!")

2.向JavaScript的字符串中添加一些功能

(1)添加reverse函数

1 String.prototype.reverse = function (){
2     return Array.prototype.reverse.apply(this.split('')).join('')
3 }
4
5 // 测试:
6 console.log("wyb".reverse())
7 console.log("wyb666".reverse())

(2)添加字符串格式化函数format

 1 // JavaScript字符串格式化
 2     String.prototype.format = function (args) {
 3         var result = this;
 4         if (arguments.length > 0) {
 5             if (arguments.length == 1 && typeof (args) == "object") {
 6                 for (var key in args) {
 7                     if (args[key] != undefined) {
 8                         var reg = new RegExp("({" + key + "})", "g");
 9                         result = result.replace(reg, args[key]);
10                     }
11                 }
12             }
13             else {
14                 for (var i = 0; i < arguments.length; i++) {
15                     if (arguments[i] != undefined) {
16                         var reg = new RegExp("({)" + i + "(})", "g");
17                         result = result.replace(reg, arguments[i]);
18                     }
19                 }
20             }
21         }
22         return result;
23     };
24
25 // 测试:
26 s = "{0} {1} {2}".format("this", "is a test", "for format")  // this is a test for format
27 console.log(s)

3.JavaScript序列化/反序列化

有一个常见的需求是在 字典/数组 和 字符串 之间相互转换,这个过程叫做 序列化/反序列化
在 js 中, 序列化使用 JSON 数据格式,全称 JavaScript Object Notation (js 对象标记),这个格式已经是现在用于互联网数据交换的事实标准格式了
python 也有内置的标准库进行这种转换,当然JavaScript中也有内置的对象可以进行这些操作:

1 var s = JSON.stringify([1, 2, 3, 4])
2 console.log('序列化后的字符串: ', typeof s, s)
3 var a = JSON.parse(s)
4 console.log('反序列化后的数组: ', typeof a, a)

4.JavaScript ajax函数

基本原理:

 1 // GET
 2 // 创建 AJAX 对象
 3 var r = new XMLHttpRequest()
 4 // 设置请求方法和请求地址
 5 r.open('GET', '/login', true)
 6 // 注册响应函数
 7 r.onreadystatechange = function() {
 8     console.log('state change: ', r)
 9 }
10 // 发送请求
11 r.send()
12
13
14 // POST
15 // 创建 AJAX 对象
16 var r = new XMLHttpRequest()
17 // 设置请求方法和请求地址
18 r.open('POST', '/login', true)
19 // 设置发送的数据的格式
20 r.setRequestHeader('Content-Type', 'application/json')
21 // 注册响应函数
22 r.onreadystatechange = function() {
23     if (r.readyState === 4) {
24         console.log('state change: ', r, r.status, r.response)
25         // 转换格式
26         var response = JSON.parse(r.response)
27         console.log('response', response)
28     } else {
29         console.log('change')
30     }
31 }
32 // 发送请求
33 var account = {
34     username: 'gua',
35     password: '123',
36 }
37 var data = JSON.stringify(account)
38 r.send(data)

封装:

 1 /*
 2  ajax 函数
 3 */
 4 var ajax = function(method, path, data, reseponseCallback) {
 5     var r = new XMLHttpRequest();
 6     // 设置请求方法和请求地址
 7     r.open(method, path, true);
 8     // 设置发送的数据的格式为 application/json
 9     // 这个不是必须的
10     r.setRequestHeader('Content-Type', 'application/json');
11     // 注册响应函数
12     r.onreadystatechange = function() {
13         if(r.readyState === 4) {
14             // r.response 存的就是服务器发过来的放在 HTTP BODY 中的数据
15             reseponseCallback(r.response);
16         }
17     };
18     // 把数据转换为 json 格式字符串
19     data = JSON.stringify(data);
20     // 发送请求
21     r.send(data);
22 };

5.扩充类型的功能

JavaScript允许给语言的基本类型扩充功能,在JavaScript中没有专门的整数类型,另外JavaScript自身提供的取整方法也是有些漏洞:

我们可以使用下面的代码去扩充取整方法,使之能正常使用:

 1 // 通过Function.prototype增加方法使得该方法对所有函数可用
 2 Function.prototype.method = function (name ,func){
 3     this.prototype[name] = func;
 4     return this;
 5 }
 6
 7 Number.method('integer', function(){
 8     return Math[this < 0 ? 'ceil' : 'floor'](this);
 9 });
10 document.writeln((-10/3).integer());  // -3

另外注意我们也可以限制原型中没有此方法时才添加:

1 // 通过Function.prototype增加方法使得该方法对所有函数可用 -> 只有原型中没有此方法时才添加
2 Function.prototype.method = function (name ,func){
3     if(!this.prototype[name]){
4           this.prototype[name] = func;
5     }
6     return this;
7 }

转载于:https://www.cnblogs.com/wyb666/p/9350381.html

JavaScript常用代码相关推荐

  1. javascript常用代码大全

    http://caibaojian.com/288.html     原文链接 jquery选中radio//如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...

  2. javascript 常用代码大全

    javascript 常用代码大全 //打开模式对话框 function doSelectUser(txtId) { strFeatures="dialogWidth=500px;dialo ...

  3. JavaScript 常用代码整理

    目录 1.获取浏览器Cookie的值 2. 颜色RGB转十六进制 3. 复制到剪贴板 4. 检查日期是否合法 5. 查找日期位于一年中的第几天 6. 英文字符串首字母大写 7. 计算2个日期之间相差多 ...

  4. 【转】JavaScript常用代码书写规范

    javascript 代码规范 代码规范我们应该遵循古老的原则:"能做并不意味着应该做". 全局命名空间污染 总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块. 不推荐 ...

  5. JavaScript常用代码集锦

    //打开模式对话框 function doSelectUser(txtId) { strFeatures="dialogWidth=500px;dialogHeight=360px;cent ...

  6. javascript 常用代码大全(超级收藏,强烈推荐)(4)

    转载自:巴士飞扬-技术BLOG : [url]http://www.busfly.cn/[/url]   /*     随风JavaScript函数库   请把经过测试的函数加入库 */ /***** ...

  7. javascript常用代码【格式化时间日期】

    这周工作中,写了几个前端界面,页面中有个表格列字段是时间类型的,但是后端传递过来的时间是时间戳,所以需要在前端将其转换展示. 记录一下格式化日期代码,以后再遇见类似功能直接复制黏贴即可(其实是为了多点 ...

  8. H5中JavaScript常用代码片段

    /*** 批量替换方法,批量过滤特殊字符,通常用在通过后的各种编辑器添加的内容在App上编辑上使用* james.wang 2016-11-11* 使用方法:ReCont(Content,[" ...

  9. JavaScript单词大全及部分常用代码

    JavaScript单词大全及部分常用代码 0~9var i=0; //声明变量let i=0; //声明变量,块级作用域const PI=3.14; //声明常量console.log(str) / ...

最新文章

  1. jekyll静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML
  2. Django与数据库操作
  3. 【大数据-Hadoop】dbeaver
  4. R3Injector实例里的records map的填充逻辑
  5. Effective Dart 文档注释在Flutter项目中的实践
  6. Faster-rcnn详解
  7. 后台运行python程序 遇到缓冲区问题
  8. FileOutputStreamTest
  9. 基于环信实现在线聊天功能
  10. Oracle REGEXP_SUBSTR 字符串截取函数的使用
  11. 源码安装MySQL5.5.20
  12. dockhub 好用的镜像_玩转docker镜像和镜像构建
  13. k8s学习: 使用 MetalLB 给测试环境配置LoadBalancer 服务
  14. 服务器的硬盘内存型号大小怎么查看,怎么查服务器硬盘和内存大小
  15. GAN平衡G和D的训练
  16. 三角函数及其之间的关系
  17. 【学习KubeEdge】
  18. ios开发学习--按钮(Button)效果源码分享--系列教程3
  19. 深度学习学习笔记——keras中的verbose
  20. tangent space与object space

热门文章

  1. 自动驾驶发展调查:产业化还需技术“破冰”
  2. 2020十大新兴技术揭晓!每一项都可能颠覆我们的生活
  3. 带你深入理解图灵机--天才所在的时代
  4. 人工智能:主导下一轮科技创新红利
  5. 176页报告辟谣自动化时代的就业危机(附下载)
  6. CES2018:英特尔披露量子计算和神经拟态计算研究最新进展
  7. CB Insights发布2017全球AI企业100强,出门问问、碳云智能入选
  8. 英国再推人工智能报告: 四方面发力打造AI强国
  9. 开源吞噬世界,得开发者得天下
  10. 【Rocket MQ】RocketMQ4.2.0 和 spring boot的结合使用,实现分布式事务