近几年工作经验中总结的JavaScript使用技巧

栏目: JavaScript · 发布时间: 8年前

内容简介:近几年工作经验中总结的JavaScript使用技巧

本文作者分享了作者近几年工作中的经验总结的 js 使用技巧,1.ajax接收JSON,需要用eval转化为字符串,2.ajax发出两个请求,使用同步解决问题,数组合并等

1、如果 ajax 返回单一的 json 格式,接收方需要这样再格式化一下赋值:

var str = eval("(" + msg + ")");

开发引用: /// <reference path="http://x.autoimg.cn/as/static/js/jquery-1.7.2.min.js" />

2、如果 ajax 同发出两个以上的请求时,返回的状态会串,不能用异步,用同步可以解决问题;

3、navigator.plugins[“Shockwave Flash”] 检查 当前机器 flash 版本

4、删除前后空格 String.prototype.trim = function () { return this.replace(/(^[ | ] )|([ | ] $)/g, “”); }

5、IE6 下 JS 在执行一个方法后,当前方法内的代码执行完后,此次的单线程就会停止,当前的方法里还有其它的方法也不会再执行;如果要执行的话,需要加 setTimeout(); 事件再执行;

6、把 document.getElementById(id) 转换成 ( i ) u n c t i o n

(id) { return typeof (id) == ‘string’ ? document.getElementById(id) : id }

7、图片加载失败,并防止死循环 onerror=”this.src=aaa.jpg;this.onerror=null;”

8、document.getElementsByTagName(‘*’).length 查看页面有多少个 Dom 元素;

9、parseInt() 只会返回整数部分;一个完整的parseInt应该是这样的:parseInt(string, radix),其中radix指定数字的进制(十进制,二进制,十六进制etc.) parseInt(“f”,16): 15

把加号放在包含合法数字的字符串前面会将字符串转化为数字;

Null 用成数字时会表现为0,做布尔时表现为false.

声明一个变量但没有赋值,此时这个变量的值为undefined. Undefined用作数字时类型表现为NaN, 用作布尔时表现为false.

10、各种正则验证规则 数字验证规则:

"^\\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+("  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\\d+("  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\\d+)("  //浮点数
var r = /^\+?[1-9][0-9]*$/;  //正整数
r.test(str);

11、按照 json 的属性值排序

var cc=[
{ name: "a", age: 30},
{ name: "c", age: 24},
{ name: "b", age: 28},
{ name: "e", age: 18},
{ name: "d", age: 38}
].sort(function(obj1, obj2) {
return obj1.age - obj2.age;
});
for(var i=0;i<cc.length;i++){
alert(cc[i]['age']); //依次显示 18,24,28,30,38
}

12、合并数组:

var mergeTo = [4,5,6];
var mergeFrom = [7,8,9];
Array.prototype.push.apply(mergeTo, mergeFrom);
mergeTo; // is: [4, 5, 6, 7, 8, 9]

13、多点击事件获取点击的是哪个

$('#IndexLink,#IndexLink1').on('click', function (e) {
var id=e.target.id;
//id 取到的就是被点击的ID值
}

14、zepto 里面或者 jquery 里返回 ajax json 串时,如果你的 json 串不规范(里面的键名,值,必须是双引号),就会跳出 success 方法,而且不执行里面的所有语句;

15、再JavaScript中下面做法会声明全局变量
在function外使用声明变量(无论是否使用var) ;
在function内不是用var 声明变量 ;
直接赋值于window属性;

16、锚点定位方法

window.location.hash = 'm001';
<a name="m001"> </a>
17、window.history.forward(1); 阻止页面后退;

18、 JS call 与aplly 用法

function Person(name, age) {
this.name = name;
this.age = age;
};

function Student(name, age, grade) {
Person.apply(this, arguments);
this.grade = grade;
};
var student = new Student('qian', 21, '一年级');
alert('name:' + student.name + '\n' + 'age:' + student.age + '\n' + 'grade:' + student.grade);

//也就是通俗一点讲就是:用student去执行Person这个类里面的内容,在Person这个类里面存在this.name等之类的语句,
//这样就将属性创建到了student对象里面

18)页面到底部自动加载内容:

var divH = document.body.scrollHeight,top = document.body.scrollTop,windowH = window.screen.availHeight;
if ((top + windowH) >divH) {
console.log('该他妈的加载内容了。');
}
console.log('网页正文全文高:' + document.body.scrollHeight + ' 网页被卷去的高: ' + document.body.scrollTop + ' 屏幕可用工作区高度:' + window.screen.availHeight);

以上所述就是小编给大家介绍的《近几年工作经验中总结的JavaScript使用技巧》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Growth Hack 這樣做

Growth Hack 這樣做

Xdite / PCuSER電腦人文化 / 2016-5-7 / 300.00台幣

◎具體教你在預算有限的情況之下,把成長做出來的可行與必要方法! ◎帶動台灣成長駭客話題的專業講師,親授讓產品突破80分的成長秘笈 @這本書要給誰看? 1. 創業者、個人品牌經營者,想要提高自己服務轉換率的人。 2. 空有產品,但是賣不出去,花了錢投廣告卻效果低落的人。 @這本書有什麼不一樣? 1.全球最重要的趨勢,台灣最知名的 Growth Hack 講師 Xd......一起来看看 《Growth Hack 這樣做》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具