Javascript的一些奇技淫巧 持续更新
2013-11-13 10:50
239 查看
js学习笔记
1.replace方法
首先字符串的replace方法并不会替换所有匹配的字符串,仅仅替换第一次,当然 JavaScript 老手们都知道这里可以使用正则表达式,并且需要加上一个全局标志位(/g)
还有一个情况就是忽略大小写,此时标志位 /i 就很实用
不仅可以对简单类型的数组项进行排序,可以通过属性来排序对象。如果哪天服务器端发来一段 JSON 数据,而且其中的对象需要排序。
3.用 length 属性来截断数组
几乎所有开发者都踩过 JavaScript 的这个坑——“传对象只是传引用”。
经常会试图 把一个数组清空,但实际上却错误地创建了一个新数组。
坑里的人们终于明白,原来传对象只是在传引用。因此当我把 myArray 重新赋值为 [] 时,确实会创建出一个新的空数组,
但其它对老数组的引用仍然没变!大坑啊!还是换用截断的方法吧,少年。
4. 使用 push 来合并数组
5.已最快的方式创建一个字符串
5.降低全局冲突
以一个单一的名称,你显著降低与其他应用程序,JS库冲突的机会。”
6.Use [] Instead of New Array()
7.变量的长名单?省略“VAR”关键字,并使用逗号而不是
8.Use Firebug's "Timer" Feature to Optimize Your Code
9.自动执行函数
1.replace方法
首先字符串的replace方法并不会替换所有匹配的字符串,仅仅替换第一次,当然 JavaScript 老手们都知道这里可以使用正则表达式,并且需要加上一个全局标志位(/g)
//Mistake var str="David is an Arsenal fan, which means David is great"; str.replace("David","Tom") //Tom is an Arsenal fan, which means David is great //Desired var str="David is an Arsenal fan, which means David is great"; str.replace(/David/g,"Tom") //Tom is an Arsenal fan, which means Tom is great
还有一个情况就是忽略大小写,此时标志位 /i 就很实用
str.replace(/david/gi, "Tom"); // "Tom will always be an Arsenal fan, which means Tom will always be great" 2.Array.prototype.sort 方法 它可以这样用[1,3,7,2,9].sort(); 也可以这样用 [ { name: "Robin Van PurseStrings", age: 30 }, { name: "Theo Walcott", age: 24 }, { name: "Bacary Sagna", age: 28 } ].sort(function(obj1, obj2) { // Ascending: first age less than the previous // 实现增序排列:前者的 age 小于后者 return obj1.age - obj2.age; }); // Returns: // [ // { name: "Theo Walcott", age: 24 }, // { name: "Bacary Sagna", age: 28 }, // { name: "Robin Van PurseStrings", age: 30 } // ]
不仅可以对简单类型的数组项进行排序,可以通过属性来排序对象。如果哪天服务器端发来一段 JSON 数据,而且其中的对象需要排序。
3.用 length 属性来截断数组
几乎所有开发者都踩过 JavaScript 的这个坑——“传对象只是传引用”。
经常会试图 把一个数组清空,但实际上却错误地创建了一个新数组。
var myArray = yourArray = [1, 2, 3]; // :( // 囧 myArray = []; // `yourArray` is still [1, 2, 3] // The right way, keeping reference // 正确的方法是保持引用 myArray.length = 0; // `yourArray` and `myArray` both [ ] // `yourArray` 和 `myArray`(以及其它所有对这个数组的引用)都变成 [ ] 了
坑里的人们终于明白,原来传对象只是在传引用。因此当我把 myArray 重新赋值为 [] 时,确实会创建出一个新的空数组,
但其它对老数组的引用仍然没变!大坑啊!还是换用截断的方法吧,少年。
4. 使用 push 来合并数组
var mergeTo=[4,5,6]; var mergeFrom=[7,8,9]; Array.prototype.push.apply(mergeTo,mergeFrom); console.info(mergeTo); //[4, 5, 6, 7, 8, 9]
5.已最快的方式创建一个字符串
var arr = ['item 1', 'item 2', 'item 3']; var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>'; //arr.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。 //return :<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>
5.降低全局冲突
var name = 'Jeffrey'; var lastName = 'Way'; function doSomething() {...} console.log(name); // Jeffrey -- or window.name //Better var DudeNameSpace = { name : 'Jeffrey', lastName : 'Way', doSomething : function() {...} } console.log(DudeNameSpace.name); // Jeffrey
以一个单一的名称,你显著降低与其他应用程序,JS库冲突的机会。”
6.Use [] Instead of New Array()
//Okay var a = new Array(); a[0] = "Joe"; a[1] = 'Plumber'; //Better var a = ['Joe','Plumber'];
7.变量的长名单?省略“VAR”关键字,并使用逗号而不是
var someItem = 'some string'; var anotherItem = 'another string'; var oneMoreItem = 'one more string'; //Better var someItem = 'some string', anotherItem = 'another string', oneMoreItem = 'one more string';
8.Use Firebug's "Timer" Feature to Optimize Your Code
function TimeTracker(){ console.time("MyTimer"); for(x=5000; x > 0; x--){} console.timeEnd("MyTimer"); }
9.自动执行函数
(function doSomething() { return { name: 'jeff', lastName: 'way' }; })();
相关文章推荐
- JavaScript中一些你不一定知道的问题(持续更新中。。。。)
- 一些常用JavaScript方法的重写 持续更新中
- javascript使用中的一些小功能总结(持续更新中)
- 一些学习前端的网站(html&css&javascript等)持续更新。。。
- 【JavaScript 基础知识】一篇关于 JavaScript 一些知识点的总结 —— 持续更新
- javascript一些小例子总结,持续更新...
- Android开发过程中的一些常识(持续更新)
- 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)
- [置顶] 移动端H5开发的一些经验与小技巧(持续更新)
- 【集结】一些发布出去稿子,外带一些个人的私货(持续更新)
- 网页中的一些Javascript的小技巧(不断更新中)
- 持续更新--对Fedora21的一些总结
- 一些看过的算法教程(持续更新)
- [STL]一些STL的学习笔记(持续更新)
- 关于面试的一些总结,持续更新
- 使用Retrofit过程中碰到的一些问题(持续更新。。。。)
- PHP7 一些新特性持续更新
- javascript---遇到关于this的相关问题(解决this)(持续更新中...)
- javascript小白学习指南4--持续更新
- 工作中遇到的一些小功能的实现(持续更新中)