js中一些常见的小坑
来源:互联网 发布:博世华域武汉待遇知乎 编辑:程序博客网 时间:2024/05/22 00:27
1 sort()函数的排序,我们都知道这个是用作字母的排序,如何进行数字的排序和字符串数字的排序呢?我们需要定义一个函数。
//定义一个排序函数
function sortNumber(a,b) {
return a-b;
}
var aData=["1","5","2","10"];
console.log(aData.sort(sortNumber));
输出: ["1", "2", "5", "10"]
var aData1=[1,5,2,10];
console.log(aData1.sort(sortNumber));
输出:[1,2,5,10]
2.Replace 并不“替代”
let s = "bob";
const replaced = s.replace('b', 'l');
alert(replaced === "lob");
alert(s === "bob")
输出结果: true,true
记住replace 只会替换第一个匹配的元素,想要全部替换我们可以用正则
3 比较的时候要注意
// These are ok
'abc' === 'abc' // true
1 === 1 // true
// These are not
[1,2,3] === [1,2,3] // false
{a: 1} === {a: 1} // false
{} === {} // false
注意引用的比较
4 数组不是原始数据类型
typeof {} === 'object' // true
typeof 'a' === 'string' // true
typeof 1 === number // true
// But....
typeof [] === 'object' // true
如果你想知道你的变量是不是数组,你仍然可以用Array.isArray(myVar)
5 const Greeters = []
for (var i = 0; i < 10; i++) {
Greeters.push(function () {
return console.log(i)
})
}
Greeters[0]() // 10
Greeters[1]() // 10
Greeters[2]() // 10
你是不是认为它会输出 0, 1, 2… ? 你知道它为什么不是这样输出的吗? 你会怎样修改让它输出 0, 1, 2… ?
这里有两种可能的解决方法:
用 let 替代 var. Boom. 解决了.
let和var的不同在于作用域。var的作用域是最近的函数块,let的作用域是最近的封闭块,封闭块可以小于函数块(如果不在任何块中,则let和var都是全局的)。
替代方法: 用 bind:
Greeters.push(console.log.bind(null, i))
还有很多其他方法。这只是我的两个首选
- js中一些常见的小坑
- JS中常见的一些排序算法
- js 常见的一些小问题 需要注意的细节
- 常见的一些小问题
- js 在不同浏览器中一些常见的兼容性问题
- JS 整理javascript中一些常见的数组方法
- js中常见的一些兼容性问题,面试必备
- js 在不同浏览器中一些常见的兼容性问题
- js常见的一些错误
- 项目中一些js小的技巧总结
- 总结:Js中可能用到的一些小方法
- JS的一些小Tips
- js的一些小总结
- JS的一些小技巧
- JS的一些小技巧
- 关于java的一些常见小问题
- 一些常见的web小功能
- 一些常见小知识
- Spring Boot整合Dubbo运行
- 快速认识Java内存区域划分
- java后台自定义错误页面
- 基础学习笔记之opencv(23):OpenCV坐标体系的初步认识
- Android退出应用最优雅的方式
- js中一些常见的小坑
- Android笔记:日期常用工具类(DateUtils)
- MAKEWORD(2,2)使用
- java中特殊的String类型
- android实现开机自启
- 语法结构
- JQuery获取或设置ckeditor的数据
- window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
- Android Studio 构建常见问题汇总