JavaScript常用代码
在这存一下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常用代码相关推荐
- javascript常用代码大全
http://caibaojian.com/288.html 原文链接 jquery选中radio//如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_ca ...
- javascript 常用代码大全
javascript 常用代码大全 //打开模式对话框 function doSelectUser(txtId) { strFeatures="dialogWidth=500px;dialo ...
- JavaScript 常用代码整理
目录 1.获取浏览器Cookie的值 2. 颜色RGB转十六进制 3. 复制到剪贴板 4. 检查日期是否合法 5. 查找日期位于一年中的第几天 6. 英文字符串首字母大写 7. 计算2个日期之间相差多 ...
- 【转】JavaScript常用代码书写规范
javascript 代码规范 代码规范我们应该遵循古老的原则:"能做并不意味着应该做". 全局命名空间污染 总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块. 不推荐 ...
- JavaScript常用代码集锦
//打开模式对话框 function doSelectUser(txtId) { strFeatures="dialogWidth=500px;dialogHeight=360px;cent ...
- javascript 常用代码大全(超级收藏,强烈推荐)(4)
转载自:巴士飞扬-技术BLOG : [url]http://www.busfly.cn/[/url] /* 随风JavaScript函数库 请把经过测试的函数加入库 */ /***** ...
- javascript常用代码【格式化时间日期】
这周工作中,写了几个前端界面,页面中有个表格列字段是时间类型的,但是后端传递过来的时间是时间戳,所以需要在前端将其转换展示. 记录一下格式化日期代码,以后再遇见类似功能直接复制黏贴即可(其实是为了多点 ...
- H5中JavaScript常用代码片段
/*** 批量替换方法,批量过滤特殊字符,通常用在通过后的各种编辑器添加的内容在App上编辑上使用* james.wang 2016-11-11* 使用方法:ReCont(Content,[" ...
- JavaScript单词大全及部分常用代码
JavaScript单词大全及部分常用代码 0~9var i=0; //声明变量let i=0; //声明变量,块级作用域const PI=3.14; //声明常量console.log(str) / ...
最新文章
- jekyll静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML
- Django与数据库操作
- 【大数据-Hadoop】dbeaver
- R3Injector实例里的records map的填充逻辑
- Effective Dart 文档注释在Flutter项目中的实践
- Faster-rcnn详解
- 后台运行python程序 遇到缓冲区问题
- FileOutputStreamTest
- 基于环信实现在线聊天功能
- Oracle REGEXP_SUBSTR 字符串截取函数的使用
- 源码安装MySQL5.5.20
- dockhub 好用的镜像_玩转docker镜像和镜像构建
- k8s学习: 使用 MetalLB 给测试环境配置LoadBalancer 服务
- 服务器的硬盘内存型号大小怎么查看,怎么查服务器硬盘和内存大小
- GAN平衡G和D的训练
- 三角函数及其之间的关系
- 【学习KubeEdge】
- ios开发学习--按钮(Button)效果源码分享--系列教程3
- 深度学习学习笔记——keras中的verbose
- tangent space与object space
热门文章
- 自动驾驶发展调查:产业化还需技术“破冰”
- 2020十大新兴技术揭晓!每一项都可能颠覆我们的生活
- 带你深入理解图灵机--天才所在的时代
- 人工智能:主导下一轮科技创新红利
- 176页报告辟谣自动化时代的就业危机(附下载)
- CES2018:英特尔披露量子计算和神经拟态计算研究最新进展
- CB Insights发布2017全球AI企业100强,出门问问、碳云智能入选
- 英国再推人工智能报告: 四方面发力打造AI强国
- 开源吞噬世界,得开发者得天下
- 【Rocket MQ】RocketMQ4.2.0 和 spring boot的结合使用,实现分布式事务