1、基本数据类型和引用数据类型的区别
基本数据类型 ---栈内存
// 一旦被声明,不可被更改
引用数据类型 ---堆内存-----栈中存地址,数据存堆(栈中地址所指向的堆)中
// 数据的值可以被更改
var str="kjhklj";
str="66666";//将原来的销毁,再赋新值
console.log(str);
var obj={name:"uhkj"}
obj=6666;//修改引用数据类型的值
<script>
var a=[4];//假设a的地址为oxff01
var b=a;//a,b的地址为一样的
a=[4,44];//a指针改变,假设为oxff02
console.log(b);//输出的地址为oxff01,储存在该地址的值为4
a=b;//b的地址又赋给a,a的地址又改变,变为oxff01,该地址储存值为4
b.push(44);//给b的地址储存值又添加一个值,现在a,b的地址都为oxff01,现在该地址储存值为4,44
console.log(a);//输出的地址为oxff01,储存在该地址的值为4,44
</script>
2、数组初始
1、创建数组
直接量 ----[]
new ----new Array()
数组中的元素类型可以是任意数据类型,用,隔开
2、数组的长度:是数组中的个数
数组名.lengyh
3、获取指定元素:是通过下标获取,下标是0开始
数组名[下标]
4、添加元素
头部添加元素---unshift()方法,返回值是新数组长度 数组名.unshift(元素1,元素2,...)
尾部添加元素---push()方法,返回值是新数组长度 数组名.push(元素1,元素2,...)
任意位置添加元素---splice()方法,返回值是新数组长度 数组名.splice(index,delnum,元素...)
添加的时候,返回值[],删除时,返回的是删除的那个值
index:从那个位置添加或删除
delnum:删除的个数,需要添加元素,delnum必须为0
元素:添加的元素值。
5、删除数组中的元素
删除头部元素---shift()方法 返回值是删除元素,只能一个一个的删除,无法指定下标。如果是空数组,返回undefined
删除数组最后一个元素---pop()方法,返回值是删除元素,只能一个一个的删除,无法指定下标。如果是空数组,返回undefined
删除任意位置元素---splice()方法
<script>
var arr1=new Array();
arr1[0]=10;
arr1[1]={name:"jkjk",age:15};
var arr2=[99,[15,13,19],"klkjlk",{name:"ijkj",age:20}];
arr2.unshift("我是头部元素","我是第二个");
arr2.push("jkjjk","kjkl");
// arr2.splice(1,1);
console.log(arr2.splice(1,1));//"我是第二个"
// arr2.splice(0,0,"我才是第一个","我又是第二个");
console.log(arr2.splice(0,0,"我才是第一个","我又是第二个"));//返回[]
console.log(arr2);
arr2.shift();
arr2.pop();
console.log(arr1[arr1.length-1]);
console.log(arr2[arr2.length-1]);
</script>
3、while和do while循环
while(表达式){
表达式为真执行语句
}
注意:设置一个终止条件,没有终止条件,会陷入死循环,导致页面崩溃。
break关键字停止while循环
do{
代码块
不论表达式的真假,始终都会执行一次,然后再去看表达式真假
如果为真继续执行
}while(表达式)
<script>
var money=100000;
var time=0;
while(money>=5000){
if(money>50000){
money=money-money*0.05;
time++;
}else if(money<=50000){
money=money-5000;
time++;
}
}
console.log(`经过的路口${time}个`,`剩余的钱${money}元`);
</script>
<script>
var money=100000;
var time=0;
do{
if(money>50000){
money=money-money*0.05;
time++;
}else if(money<=50000){
money=money-5000;
time++;
}
}while(money>=5000)
console.log(`经过的路口${time}个`,`剩余的钱${money}元`);
</script>
4、for()循环
for(语句1;语句2;语句3){
代码块
}
语句1:初始化代码(var i=0),整个for循环执行一次
语句2:判断条件,条件为真才会执行内部代码块
语句3:代码块执行完毕的操作
<script>
for(var i=1;i<10;i++){
for(var j=1;j<=i;j++){
document.write(`${j}*${i}=${i*j} `);
}
document.write(`<br>`);
}
</script>
5、break和continue
break关键字:结束整个循环
continue关键字:结束本次循环