JavaScript经典代码欣赏与技巧解析

版权申诉
0 下载量 22 浏览量 更新于2024-08-18 收藏 16KB DOCX 举报
"这是一份JavaScript代码欣赏文档,包含了多个经典和实用的JavaScript代码片段,适合正在学习或已经熟悉JavaScript的开发者参考。" 在JavaScript编程中,这些代码片段展示了语言的一些核心特性和巧妙用法: 1. 取整并转换为数值型: `'10.567890' | 0` 结果:10 `'10.567890' ^ 0` 结果:10 `-2.23456789 | 0` 结果:-2 `~~-2.23456789` 结果:-2 这里利用了位操作符来快速取整,`| 0` 和 `~~` 对非负数效果相同,`^ 0` 对正数效果等同于 `| 0`。 2. 日期转数值: `var d = +new Date();` // 例如:1295698416792 `Date` 对象可以用 `+` 操作符转换为时间戳,即自1970年以来的毫秒数。 3. 类数组对象转数组: `var arr = [].slice.call(arguments);` `arguments` 是函数内部的一个类数组对象,`slice.call` 能将其转换为真正的数组。 4. 生成随机字符串: `Math.random().toString(16).substring(2);` // 14位16进制随机字符串 `Math.random().toString(36).substring(2);` // 11位包含0-9,a-z的随机字符串 `toString()` 方法用于将浮点数转换为特定基数的字符串。 5. 合并数组: `var a = [1, 2, 3]; var b = [4, 5, 6]; Array.prototype.push.apply(a, b);` 使用 `apply` 方法将 `push` 函数应用于 `a` 数组,将 `b` 数组的元素添加到 `a` 的末尾。 6. 用0补全位数: ``` function prefixInteger(num, length) { return (num / Math.pow(10, length)).toFixed(length).substr(2); } ``` 通过 `toFixed` 方法保留指定长度的小数位,然后去除前导的 '0.'。 7. 交换变量值: `a = [b, b = a][0];` 这是一种简洁的变量交换方式,利用数组赋值时的临时对象特性。 8. 插入数组元素: ``` var a = [1, 2, 3, 7, 8, 9]; var b = [4, 5, 6]; var insertIndex = 3; a.splice.apply(a, Array.concat(insertIndex, 0, b)); ``` 使用 `splice` 方法在 `a` 数组的指定位置 `insertIndex` 插入 `b` 数组的所有元素。 9. 删除数组元素: `var a = [1, 2, 3, 4, 5]; a.splice(3, 1);` `splice` 方法用于删除数组中的元素,第二个参数是删除的个数。 10. 快速取数组最大值和最小值: ``` Math.max.apply(Math, [1, 2, 3]) // 3 Math.min.apply(Math, [1, 2, 3]) // 1 ``` 使用 `apply` 将数组作为参数传递给 `Math.max` 和 `Math.min` 函数,以求得数组中的最大值和最小值。 11. 条件推断: ``` var a = b1; // 相当于 if (b) { a = 1; } var a = b || 1; // 相当于 if (b) { a = b; } else { a = 1; } ``` 在JavaScript中,非零值被视为真,零、空字符串、`null` 和 `undefined` 视为假。因此,`b || 1` 会返回 `b` 如果 `b` 为真,否则返回 `1`。 12. 推断IE: ``` var ie =/*@cc_on!@*/false; ``` 这是一种条件编译的技巧,仅在Internet Explorer中执行,用于检测是否运行在IE环境下。 以上代码展示了JavaScript在处理数据类型转换、数组操作、逻辑判断等方面的灵活性和高效性,对于提升编程技巧和理解JavaScript的内在机制大有裨益。继续探索和实践这些代码,可以帮助开发者更好地掌握JavaScript语言。