前言:(在开始之前我们先复盘一下)
基础类型
Numbel 数字
Boolean true
Undefined
Null
String "" '' ``
Symbol 唯一值(2015,据说没啥用)
BigInt 最大整数(起始于谷歌,2020版JavaScript更新统一)
引用类型
Object {}
Array []
1.什么是基础类型?
建一个变量会将这个变量存放在栈区,数据也会存储在栈区(不作过多解释)
2.array类型
1.array类型是object对象的延伸类型
2.数组[]可以写任意类型
3.let arr=[]
4.数组的序号,称为索引或者下标,默认从0开始
5.数组取值(待补充)
6.使用以下代码段调试来加深理解
let arr = [1,"1",true,"大哥"]
console.log(arr,"1");
arr[0] = 66;
console.log(arr,"2");
console.log(arr[2],"数组");
console.log(typeof arr);
7.obj对比
let obj = {
0:"夏栀",
1:"女",
2:18,
3:"唱歌",
4:true,
5:123,
age:18,
}
obj[0] = "锦鲤"
console.log(obj);
3.引用类型(关乎内存地址)
object{} Array[]
引用类型
创建一个变量,同时将变量存放在栈区,数据放在堆区;(这是两个不同而对立的地方);
通过变量(栈区)来连接到(堆区)
引用类型相同的数据存在同一表格中(这里划重点)(从这里就开始接触到相等号判断不一定会是仅仅数值上的相等,还要考虑在存储地址上是否相等)
不急!下面运算符比较能体现上面的内容
let a = 10;
let b = a;
a = 100;
console.log(b,"b"); // b等于多少? 10
console.log(a,"a"); // a等于多少? 100
4.function类型
用函数封住代码块
1.使用function函数,需要function声明函数名,函数名起名规则与变量名规范一致
2.写法function(){}
3.调用函数,通过对应的函数名调用函数 fun()
4.可以重复调用还可以选定调用
// 表白 肯定最起码连续说三次 代码重复,
function fun(){
// 任意代码
console.log("我");
console.log("爱");
console.log("I");
console.log("U");
}
fun() // 调用对应函数
fun()
fun()
fun()
5.类型转换(待补充)
详情和第二篇的内容有关
6.算法运算符
1.算数运算符 + - * / **次幂 % 会隐士类型转换
2。+“字符串” 肯定是拼接
3.隐式的使用的了 String()
4.- * / ** 隐式转化成可number类型 ;+ 不是加字符串,还是number类型
代码段放下面了,自行食用
// let a = 10;
// let c = "大哥";
// // console.log( (a * c) );
// console.log(c);
// let a = 123 % 3
// console.log(a);
let b = 10 % 20
console.log(b); // b 等于多少
7.赋值运算符
赋值运算符 = += -= /= *= %= **=
+= 在原有变量基础上进行加法, 使用值是变量原有值
-=
8.比较运算符(请欣赏ctrl+V)
<!--
比较运算符 > < >= <= == === != !== 得到布尔值
== === 等于
!= !== 不等于 反问
> < >= <= 转化成 number
== 等于 != 不等于 会发生类型转化比较
=== 全等于 !== 全不等于 类型也会进行比较
字符串与字符串的比较 ==> 每一个字符相互对应位置进行比较,通过ascll编码表进行比较,只要有一个得出结果,以该结果为准;
对象比较 ==> 比的是内存地址
-->
<script>
// let a = "101";
// let c = "3";
// console.log(a > c);
// let a = 1;
// let c = "120";
// console.log(a > c);
// let a = 10;
// let b = "10";
// console.log(a !== b);
let obj = {a:1}
let obj2 = {a:1}
console.log(obj === obj2);
</script>
一个遗留下的问题
理论上应该像 undefined那样