截屏2020-10-21 下午12.45.11.png

Js中创建变量的五种方案(声明变量)

  1. // JS中创建变量的5种方案
  2. 传统方案:
  3. var // 声明一个变量
  4. function // 声明一个函数
  5. ES6方案:
  6. let // 声明一个变量
  7. const // 声明一个不能重新赋值的变量
  8. 模块方案:
  9. import // import A from "xxx.js" 相当于定义了一个变量 A

一个变量赋值的过程

  1. var n =12;
  2. 1、先创建一个值12
  3. 2、再声明一个变量ndeclare)
  4. 3、让变量n12关联在一起(指针指向的过程)也就是赋值的过程(defined定义)

截屏2020-10-21 下午12.50.38.png

Js种的9种数据类型

NaN 也是数字类型

截屏2020-10-21 下午1.16.15.png截屏2020-10-21 下午1.09.12.png

  1. // 基本数据类型(原始值类型):
  2. number => NaN Infinity
  3. string => '' "" ``
  4. boolean
  5. null
  6. undefined
  7. symbol (es6)
  8. bigint (es6)
  9. // 引用数据类型:
  10. object
  11. {} 普通对象
  12. [] 数组对象
  13. /^\d+$/ 正则对象
  14. new date 日期对象
  15. ....

:::tips 注意:
number:

  • NaN 也是个number类型,可以通过 typeof NaN来查看;
  • NaN === NaN // false
  • Infintiy 是无穷大;

string:

  • 是es6种的模版字符串

Symol:

  • 基于Symbol 创建出来的是唯一值;
  • console.log(Symbol(“AA”) === Symbol(“AA”)); // false :::

截屏2020-10-21 下午1.34.36.png

为什么会有 bigint 这个数据类型?

number有个最大安全边界,超过这个数再进行计算,就会不准确。
截屏2020-10-21 下午1.29.03.png

  1. // 创建一个bigint数
  2. BigInt(10) // 10n
  3. BinInt(9007199254740991// 9007199254740991n
  4. typeof 9007199254740991n // bigint

知识点

为什么const声明的变量是常量/不可改变的是不准确的?⭐️

其实const声明的也叫变量,它的值是不能重新关联,重新赋值的,但是不代表值是不能改的。

  1. // 例如:经常在React函数组件里写state
  2. // 里面的counter就是经常变动的。
  3. const [counter,setCounter] = useState(0);

:::tips 不可变的是:重新关联内存指向; :::

  1. // example 1
  2. const m = 13;
  3. m = 14;
  4. console.log(m); //error
  5. // example 2
  6. const arr = [10];
  7. arr =[10,20];
  8. console.log(arr); // error; const变量不能重新关联内存指向;
  9. // example 3
  10. const arr = [10];
  11. arr[1] = 20;
  12. console.log(arr); // [10,20]