javascript基础三
switch语句
适合比较少的种类判断,条理清晰
只有极少的情况需要判断,可以通过switch case语句.
Switch语句可以对变量进行集体判断:
// 1.获取用户输入
// 列举
var fruit = prompt('请输入水果名称!');
//在有限的类别判断时候,可以使用,代码逻辑更清晰
switch (fruit) {
case '苹果':
alert('苹果很好吃!');
break;
case '梨':
alert('梨很脆!');
break;
case '香蕉':
alert('香蕉很甜!');
break;
default:
alert('我也没吃过!');
break;
}//break;缺少后对失去控制,继续执行,后面的语句
While循环:
先判断后执行
While 循环一定要有跳出条件,条件一直为真时会进入死循环
特殊:有些情况会刻意制造死循环,推送获取信息
var num = 0 ;
// 当xxx的时候
// 特殊:有些情况会刻意制造死循环,
while(num<10){
console.log('num==>'+num);
num ++;
}
Do..while循环:
- 先执行后判断,先斩后奏
- do while循环在条件不满足的情况下会比while循环多执行一次代码
Break语句:
- 在循环体内,只要代码遇到break,程序立马结束当前循环
- 当前循环指的是break语句所在的循环体。
Continue语句:
- Continue语句指的是跳出本次循环,该语句后面的代码不再执行。
- 语句后面的循环外的代码也不再执行。
数组(定义,赋值,取值)
通过对象方式创建数组
- var arr = new Array();
直接创建数组
- var arr = []
命名习惯
- 一个数组: var arr; var a; var b;
- name数组: var names; 或者nameArr = new Array()
数组中通过下标的方式进行赋值。
- 下标从0开始。arr[0] = 123;
- 通过下标确定数组中某个值
- 通过数组名.length获取数组长度(元素个数)
- var ages = new Array();
- ages.length 返回数组长度
数组遍历
- 以下两种方法效果等同,一般用第一种
var arr = [3,1,65,283,1,3,32,1];
//注意: 1. i从0开始
// 2. i < arr.length
for(var i = 0 ; i < arr.length ; i++){
console.log('数组下标为'+i+'的值为==>'+arr[i]);
}
////////////////////////////////////////////////////////////////////////////
var arr = [3,1,23,23,15,213,5];
// for ... in...
for(var a in arr){//变量a会返回数组长度
// console.log('a==>'+a);
console.log('下标为'+a+'的值为'+arr[a]);
}
length() 数组长度&&数据的类型
- 可存放字符串,但是一般不这样做
//创建一个空数组
var arr = [3,5,7];
//注意: 数组一般用于存放同一类的数据集合
var arr2 = [3,'张三',true,'5'];
arr[0] = 1;
arr[1] = 2;
console.log(arr);
console.log(arr2);
//数组的属性:
// xxx.abc() ==> 通过对象调用方法 小狗跑 小狗跳
// xxx.abc ==> 通过对象查看属性 小狗的体重 小狗的颜色
console.log('数组长度==>'+arr.length);
数组合并
concat()
var arr1 = [1,3,5];
var arr2 = [7,9,11];
// concat 不会影响原来的数组 需要新的变量接收
var arr3 = arr2.concat(arr1);
console.log(arr3);//返回arr3=[7,9,11,1,3,5]
把数组转换为字符串
join()
通过指定的分隔符进行连接成为一个字符串
var arr = [1,3,5,6,7];
//join可以把数组转换为字符串.
//如果没有参数 默认逗号隔开
var str = arr.join('!');
console.log(str);//控制台输出1!3!5!6!7
把字符串转换为数组
split()
var str2 = 'Hi i am fine today'; var str3 = 'a|b|c|d|e'; //split 打断 可以把字符串转换为数组 //注意: 空格 也算字符 var str = ''; var str2 =' '; // split 处理的结果是 数组类型 var arr2 = str2.split('i');//括号内的字符作为打断点 var arr3 = str3.split('|');// 以"|"作为打断点 console.log(arr2);//控制台输出["H", " ", " am f", "ne today"] console.log(arr3);//控制台输出["a", "b", "c", "d", "e"]
数组内的增删查改
push()
从后面插入一个值 ,并返回新的长度
unshift()
从前面插入,并返回新的长度
pop()
删除最后一个元素 并且返回被删除的值
shift()
删除第一个元素 并且返回第一个删除的值
var arr = [1,2];
arr.push(3);//会影响原来的数组
var rs = arr.unshift(0);
console.log(arr);//控制台输出,[0, 1, 2, 3]
console.log('从前面插入一个值,返回新的长度为:'+rs);//输出从前面插入一个值,返回新的长度为:4
var arr2 = ['a','b','c','d','e'];
var rs1 = arr2.pop();
var rs2 = arr2.shift();
console.log(arr2);//输出 ["b", "c", "d"]
console.log('pop删除了==>'+rs1);//输出pop删除了==>e
console.log('shift删除了==>'+rs2);//输出shift删除了==>a
算法
九九乘法表:
/*控制台输出:九九乘法表
1*1=1;
2*1=2 2*2=4;
...
9*1=9 9*2=18 ... 9*9=81
*/
//方法一:
// 问: 打印几行?
for(var i = 1 ; i <= 9 ; i ++ ){
var str = '';
// 问: 每一行打印几个?
for(var j = 1 ; j <= 9 ; j ++ ){
if(j>i){
break;
}
str += i+'*'+j+'='+i*j+' ';
//等同str = str + i+'*'+j+'='+i*j+' ';
}
console.log(str);
}
//方法二:
// 问: 打印几行?
for(var i = 1 ; i <= 9 ; i ++ ){
var str = '';
// 问: 每一行打印几个?
for(var j = 1 ; j <= i ; j ++ ){
str += i+'*'+j+'='+i*j+' ';
//等同str = str + i+'*'+j+'='+i*j+' ';
}
console.log(str);
}
冒泡排序
//方法一:
var arr = [23,54,11,61,5,13,9];
var j = arr.length;
while (j > 0){
for (var i = 0; i < j - 1; i++) {
if (arr[i] > arr[i + 1]){
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
j--;
}
console.log('最终结果为:'+arr);
//方法二
var arr = [10,8,1,7,5,2];
for(var j = 0 ; j < arr.length - 1 ; j ++){
// 第一轮
for(var i = 0 ; i < arr.length - 1 - j; i ++){//每进行一轮,可以少比一次
// 如果顺序错误,交换位置
if(arr[i]>arr[ i+ 1]){
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
console.log('第'+(j + 1)+'轮的结果为:');
console.log(arr);
}
console.log('最终结果为:');
console.log(arr);
选择排序
var arr = [230,4,64,6,24,75,9,12,34];
var len = arr.length;
var min;
for (var i = 0; i < len - 1; i++){
min = i;
for (var j = i + 1; j < len; j++){
if (arr[min] > arr[j]){//寻找最小值
min = j;//保存最小值的索引
}
}
//如果最小值不是最开始的值进行替换
if (min != i){
var temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
alert(arr);