js 笔记
下面是一些在平时开发的小技巧,或者是不怎么用到的,比较容易混乱的知识
数据比较
==
两个等号在大多数情况下,是转换成数字进行比较
所以 [] == false
是 true,因为等号两边转换成数字都是0
而 ![] == false
同样为 true,因为 ![] 转换成布尔类型就是 false
NaN
NaN不与任何类型相等,即使是NaN == NaN也是错误的
但是 Object.is(NaN,NaN) 是 true
null和undefined
null==undefined
判断一个变量是null或者undefined最简单的方法是 if(s == null)
数据类型
非标准特殊对象
指的是原始类型的值,经过new出来的对象,比如 new Number(1)
运算
float
0.1 + 0.2 != 0.3
小数要转换成整数进行运算,结果再转换成小数
类型转换
+
最简单的将变量转换成数字的方法就是在前面加一个加号
parseInt
将一个字符串转换为相应的进制,在转换过程中,每个字符进行处理,遇到不符合禁止的字符,停止转换,将已经转换成功的字符,转换为10进制
parseInt('112',2) // 3
类型检测
数据类型检测的方法:
- typeof
- instanceof
- constructor
- Object.prototype.toString.call
- Array.isArray
- isNan
Number
Number.MAX_SAFE_INTEGER 最大安全值
Number.MIN_SAFE_INTEGER 最小安全值
超出这个范围的数据运算,结果会不准确。
下划线分隔
可以用下划线分隔数字
let num = 1_000_000
console.log(num === 1000000) // true
BigInt
鉴于Number处理超大的数据会不准确,出现了该数据类型
// 服务器必须以字符串的形式返回超过安全值的数据
let num = '9017199254740991';
let bigNum = BigInt(num)
// 以下两种写法都可以
bigNum = bigNum + 1n
bigNum = bigNum + BigInt(1)
console.log(bigNum);
console.log(bigNum.toString());
方法
console.dir / dir
可以打印对象,与log不同的是,打印的是对象的所有属性和方法,,这在查看 [native code] 的时候很有用。
本文来自博客园,作者:Bin_x,转载请注明原文链接:https://www.cnblogs.com/Bin-x/p/16122997.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)