数据类型
1.1 原始类型
1.1.1 number:数字,例:1,2,3;
1.1.2 string:字符串,例:”我是谁”,”abdc”,”112233”;
1.1.3 boolean:布尔值,只有true,false两种;
1.1.4 undefined:未定义,let声明变量没有给值,该变量类型则为未定义;
1.1.5 null:空值,就是什么也没有;
1.2 引用类型
1.2.1 array:数组,由不同的原始类型或者引用类型组成的集合叫数组;
1.2.2 object:对象,由成对的属性和值组成的集合,值可以是任何一种数据类型,也可以是函数;
1.2.3 函数:即使数据类型,也是函数,可以回调或者闭包,一般循环嵌套使用居多;
流程控制
2.1 顺序执行:逐行执行;
2.2 分支:有条件的执行某段代码,if的判断语句;
2.2.1 单分支:if判断,true则执行代码,不对false结果执行,一般使用较少;
2.2.2 双分支:if,else判断,true则执行代码A,false则执行代码2;
2.2.3 多分支:if,elseif,else判断,根据不同的条件执行不同的代码;
2.2.4 条件判断连接符:并列符号”&&”,或者符号”||”
2.2.5 简化方案:格式:switch(true){case 条件: 操作;break;…..default:默认操作};
2.2.6 双分支的三元操作格式:三元操作格式:变量名 = 条件 ? true : false;
循环控制
3.1 循环三要素:索引初始化,循环条件,更新循环条件(不更新条件会陷入死循环);
3.2 while循环:入口判断,条件不满足则不执行,格式:变量初始化,while(条件){执行代码;循环条件更新};
3.3 while循环:出口判断,条件不满足也会执行一次,格式:变量初始化,do{执行代码;循环条件跟新}while(条件);
3.4 for循环:格式:for(变量初始化;循环条件;条件更新){执行代码};
3.5 for-of循环:for(let变量名of数组){执行代码};
3.6 for-in循环:for(let变量名 in 对象名);{执行代码};
3.7 数组可以用while,for,for-of,for-in循环遍历,对象只能用for-in遍历;
案例源码
<script>
console.log('----------------数据类型--------')
let a = 1; // 数字变量
let b = 'string'; // 字符串
let c = false; // 布尔值
let d; // 未定义
let e = [1, 'sdjasdj', true, null] // 数组
let f = {a:'PHP', // 对象
b: '中文网',
c: true,
d: function () {return this.a + this.b;}}
console.log(a)
console.log(typeof(a)) //类型:number
console.log(b)
console.log(typeof(b)) //类型:string
console.log(c)
console.log(typeof(c)) //类型:boolean
console.log(d)
console.log(typeof(d)) //类型:undefined
console.log(e[3])
console.log(Array.isArray(e)) //类型:array
console.log(f.d())
console.log(f.a)
console.log(typeof(f)) //类型:object
console.log(typeof(f.d)) //类型:函数,函数也可以对象属性的值
// 双分支
// 三元操作格式:变量名 = 条件 ? true : false
console.log('------------------双分支----')
let point = 59
if (point >= 60) {
console.log('及格');
}
else {
console.log('不及格');
}
console.log('----------------双分支三元操作----')
// 三元操作格式:变量名 = 条件 ? true : false
let res = point >= 60 ? '及格':'不及格';
console.log(res)
console.log('------------------多分支1----')
// 多分支1
// 并列条件:&&连接,或者条件:|| 连接
let point2 = 60
if (point2 >= 60 && point2 < 70) {
console.log('及格');
}
else if (point2 >=70 && ponit2 < 80) {
console.log('良好');
}
else if (point2 >= 80) {
console.log('优秀');
}
else {
console.log('不及格');
}
// 多分支2:
//
// 格式:switch (true) {
// case 条件:
// 操作;
// break;
// ......
// default:
// 默认操作;
// }
// switch判断入口必须以ture为条件
console.log('---------------------多分支2----')
switch (true) {
case point2 >= 60 && point2 < 70:
console.log('及格');
break;
case point2 >=70 && ponit2 < 80:
console.log('良好');
break;
case point2 >= 80:
console.log('优秀');
break;
default:
console.log('不及格');
}
// 循环:while循环
// 入口判断:判断不满足条件则不执行;
console.log('---------------while循环-----------------')
let i = 0;
let x = 0;
while (i <= 100) {
x = x + i;
i++;
}
console.log(x);
// 出口判断:至少执行一次
let n = 101;
let m = 0;
do {
m = m + n;
n++;
}while (n <= 100)
console.log(m);
// while可用在数组遍历中
console.log('---------------while数组遍历-----------------')
e = [1, 'sdjasdj', true, null]
let length = e.length // 取出数组的长度,用长度去遍历
let q = 0;
while (q <= length){
console.log(e[q]);
q++;
}
// 循环:for循环
// 格式:
console.log('---------------for数组遍历-----------------')
for (let item of e) { // for of用于数组遍历,定义变量访问数组中的每一个值
console.log(item);
}
console.log('---------------对象遍历-----------------')
let y = 0;
for (let i = 0; i <= 100; i++) {
y = y + i;
}
console.log(y)
f = {a:'PHP',
b: '中文网',
c: true,
d: function () {return this.a + this.b;}}
// 对象只能用for-in遍历
for (let k in f) { //for in用于对象遍历,定义变量访问数组中的每一个值
console.log(k)
console.log(f[k]);
}
</script>
实际结果