JavaScript基础语法和数据类型查漏补缺

180 阅读2分钟

说明:以下内容为自己在MDN上查漏补缺后的整理,个人已熟知的不再详细展开。

声明

三种:var 、let 、const

说明:const声明只读常量,受到保护,但是常量为对象则不受保护。

const a=3; 
a=5;//报错
 
const b={key:3}; 
b.key=5;//正确

数据类型

7种基本类型:Boolean,null,undefined,Number,String,Symbol,BigInt

以及对象:Object

BigInt与Symbol简单说明:

1.BigInt突破整数限制,表示方式为数字后+n,eg:21n,可以使用运算,但是不可以和number类型混用,eg:21n*2n=42n;

1//Numeber取值范围
let aMax = Number.MAX_VALUE; //1.7976931348623157e+308 
let aMin = Number.MIN_VALUE; //5e-324

//Number 整数精度在-2^53  ------  2^53   (包含边界),超过则不准确
let b1 = Math.pow(2, 53); //9007199254740992
let b2 = Math.pow(2, 54); //18014398509481984
let b3 = Math.pow(2, 55); //36028797018963970 不准确

let c1 = 9007199254740992n; //2^53次方
let c2 = c1 * 2n; //18014398509481984n
let c3 = c2 * 2n; //36028797018963968n 准确,number类型则返回36028797018963970
//常用的运算支持,但是Math函数库不支持,各有利弊,
//现在处于提案的第四阶段,大部分浏览器已支持。
//之前养成类数据类型,都是使用字符串自行构造长度进行单位转换。

2.代表(Symbol) ( 在 ECMAScript 6 中新添加的类型).。一种实例是唯一且不可改变的数据类型。

//个人理解:symbol是为了生成全局唯一的变量。 其中的一种用法。
//假使我现在需要给一个object变量增加一对key,value,类似ob={a:111}去使用.
//但是项目中他人可能已经使用过,使用Symbol生成唯一变量。

//传统字符串会进行覆盖之前变量
let t1 = "1";
let t2 = "1";
let b = {
  [t1]: 2,
  [t2]: 3,
};

console.log(b[t1], b[t2]); //print 3,3 

//symbol唯一变量不会覆盖
let s1 = Symbol("1");
let s2 = Symbol("1");
let a = {
  [s1]: 2,
  [s2]: 3,
};
console.log(a[s1], a[s2]); //print 2,3

字符串转数字

parseInt()parseFloat()

或者一元加法运算

"1.1" + "1.1" = "1.11.1"
(+"1.1") + (+"1.1") = 2.2
// 注意:加入括号为清楚起见,不是必需的。