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] 的时候很有用。

 

posted @   Bin_x  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示