如果给出了未声明的变量参数,则默认情况下它将用作全局变量(尽管该参数位于函数内部)。 尽量避免任何必要的全局变量。
2. 在行尾使用分号
尽管 JavaScript 允许您省略行尾的分号,但有时意外省略可能会导致不必要的错误。 建议尽可能添加分号javascript遍历对象数组对象,而无需尾随分号。
3. 获取指定范围内的随机数
var getRandom = function(max, min) {min = arguments[1] || 0;return Math.floor(Math.random() * (max - min + 1) + min);};
里面的函数接受一个你想要的随机最大数和一个你想要的随机最小数。
4.打乱数字链表的顺序
var sortArray = array.sort(function(){ return Math.random() - 0.5;});
5.从链表中删除随机项
var ran = array[Math.floor(Math.random() * array.length)];
6. 删除字符串的前导和尾随空格
var s = string.trim();
7. 将类字段对象转换为链表
例如:类字段对象遍历:
Array.prototype.forEach.call(argumens,function(value){})
DOM 的 NodeList 和 HTMLCollection 也是类字段对象
8.获取链表中的最大值和最小值
var max = Math.max.apply(Math, array);
var min = Math.min.apply(Math, array);
9. 清除链表
数组长度=0;
数组=[];
10.保留指定的小数位
var num = num.toFixed(2);
返回具有两位小数的字符串
11.使用for-in循环遍历对象的属性
for(var key in object) { // object[key]}
不要使用 for-in 来迭代数据
12.获取某月的天数
function getMonthDay(date){ date = date || new Date(); if(typeof date === 'string') { date = new Date(date); }; date.setDate(32); return 32 - date.getDate();}
传入日期参数,可以是字符串或日期对象实例; 空表示该月的天数
13.浮点数问题
0.1 + 0.2 = 0.30000000000000004 != 0.3
JavaScript 数字是按照 IEEE754 标准构建的,内部表示为 64 位浮点小数。
使用 JSON.stringify() 将 JavaScript 对象序列化为有效字符串。
使用 JSON.parse() 将有效字符串转换为 JavaScript 对象。
使用 AJAX 传输数据时很有用
15.使用“===”而不是“==”
等号运算符(==)在比较时会对操作数进行相应的类型转换,而等号运算符(===)则不会进行类型转换。
16.避免使用with()
使用with()可以将变量添加到全局范围。 因此,如果有其他同名的变量,一方面会造成混乱,另一方面值也会被覆盖。
17. 不要使用 eval() 或函数构造函数
eval() 和函数构造函数(Function constructor)的开销很大。 每次调用它们时,JavaScript 引擎都必须将源代码转换为可执行代码。
18. 简化if语句
if (condition) { fn();}
可以替换为:
condition && fn();
19.为可能省略的参数分配默认值
function test(a, b){ a = a || '1';}
20、在链表循环中缓存length的值
如果确定循环过程中链表的粗细不会改变,可以这样做:
var length = array.length;for(var i = 0; i < length; i++) {}
这可以防止在每次迭代时重新估计链表的大小,从而提高效率。
21. 合并字段
对于小型链表,我们可以这样做:
var arr1 = [1,2,3];var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2); // [1,2,3,4,5,6]
然而,concat()函数不适合合并两个小链表,因为它会消耗大量显存来存储新创建的链表。 在这两种情况下javascript遍历对象数组对象,都可以使用 Array.prototype.push.apply(arr1, arr2) 来创建新的链表。
这些方法不会创建新字段,它们只是将第一个和第二个数组合并在一起,同时减少视频内存使用:
Array.prototype.push.apply(arr1, arr2);
console.log(arr1); // [1,2,3,4,5,6]
22 枚举对象“self”的属性
for...in 不仅枚举对象“自身”的属性,还枚举继承的属性。
var hasOwn = Object.prototype.hasOwnProperty;
var obj = {name: 'tg', age: 24};for(var name in obj) { if (hasOwn.call(obj, name)) { console.log(name + ':' + obj[name]); }}// name:tg// age:24
●
●
●
●
●
●
尖端
返回上一级,搜索“Java女程序员、大数据、消息传递、书籍传递、运维算法、Chrome黑客、Python、JavaScript、人工智能、女同事、MySQL书籍等关键词即可获取相关文章推荐。