js基础数组操作以及for if...else switch...case

1.变量

在js中 通常以 var 来声明

可以用来存储数据
可以更改

var a = 0;

2.常见的输出方式

1. document.write();
将节点直接写入body标签中(也叫文档)
2. console.log();
控制台 输出语句(将目标输出到浏览器console里面)
可以正常翻译
3. alert();
弹出框语句

3.运算符

 3.1 算数运算符
        + - * / % 
        %:取余 直接获取到除不尽的 余数
3.2 关系运算符
        <  >  <=  >=
        == : 等于号  用来判断 值是否相等 
        === :全等好  判断值和数据类型是否都相等
        != :不等 判断值是否不相等
        !== :全不等  判断值和数据类型是否都不相等
3.3  逻辑运算符
        && :且 必须两边判断条件 必须都成立结果才为true
        || :或 符号两边的判断 条件任意一个成立 结果为true
        != : 非 取反 当判断 条件为true的时候 取反为false 结果为true 结果为false  反之为true;

4.基础数据类型

 4.1 数字 number
       可以进行算数运算 +号 为两个数相加
  4.2 字符串 String
      有双引号 或者单引号包起来的字符就是字符串
      在es6中 有字符串的新写法 ------- 模板字符串 ``
      模板 字符串 特点 : 方便 快捷  可以换行
      不用 字符串拼接
      变量的解析 使用 ${};  es6的特性
      字符串拼接 使用+号  来拼接两个字符串
  4.3 布尔 Boolean
      true和false
      是一个特殊的数据类型
      相当于是一个被动属性  其他数据类型的数据 基本上都有布尔值
      数字0:false
      Undefind : false
      Null  :flase
      NaN :false
      非0的数字 :true
      字符串  true
      (只要一个变量里面有只且值不是false 则它的布尔值都是true)
 4.4 数组 Array
      数组通常有[]所包含 
      里面的元素由,分隔开
      每个元素都有其相对应的索引值(下标)
      索引值是由0开始 按顺序依次递增的 正整数
      当数组中的元素被删的掉的时候 索引值不会被删 而是由下一 个元素 补上
 4.5 对象  Object
      对象由{}包含
      里面的数据一键值对的形式存在
      var ohbj = {
          "name":"张三",
          "age": 18,
          "sex":"男"
      }
      数据都是以,号隔开
      冒号前面叫键  通常是以自符串的形式存在(这里的变量不用声明)
      冒号和面叫值  可以是任意数据类型的数据
      对象中有一种特殊的对象 叫JSON对象 
      var  json = {
          "school":[
              {
                "name":"蓝鸥1",
                "time":"20年",
              },
              {
                "name":"蓝鸥2",
                "time":"18年",
                  
              }
          ],
          "class":[{
              "html":4,
              "lava":5
          }]
      }
  4.6 Undefined 特殊数据类型
  4.7 null      特殊数据类型;
  1. 数组
 5.1 数组的声明方式
      5.1.1 构造函数
       var arr = new Array();
       可以声明一个指定长度的空数组 var arr = new Array(10);
       也可以声明含有具体元素的素组 var arr = new Array[1,2,3,4,5];
         注意 元素数量必须 大于等于2
      5.1.2  字面量
    var arr =[1,2,3,4,5];
    5.2 获取数组中的元素
        以数组名[索引值]的形式 来精准获取数组中的元素
        要想获取数组中的每一个元素   就得使用for循环
    5.3 数组的属性
        length属性     arr.length
        直接获取到数组长度  (数组的长度就是数组中元素的个数)

    5.4 数组的操作方法*****
         5.4.1 push()末尾添加
var a = [1,2,3,4];
a.push(5);//1,2,3,4,5
                向数组末尾添加一个元素 并返回新数组的长度
         5.4.2 pop() 末尾删除
var a = [1,2,3,4];
a.pop();//1,2,3
                  将数组末尾删除一个元素   并返回删除的哪个元素
        5.4.3  unshift()首位添加
var a = [1,2,3,4,5]
a.unshift(7);//1,2,3,4,5,7
                向数组开头添加一个元素   并返回新数组的长度
        5.4.4   shift() 首位删除
var a = [1,2,3,4];
a.shift();// 2 3 4
                将数组的第一个元素删除  并返回被删除的哪个元素
        5.4.5  splice(index,homeMany,item)定向 添加或者删除
               三个参数:
                      index 添加 或 的删除的元素位置[索引值]
                          添加或删除多个元素的时候 index就是起始位置
                      nomeMany 删除的数量  不删除就写0
                      item:需要添加得元素 可以是多个
                           添加多个元素 以,隔开
                           不添加的时候    就不写 
                    添加和删除可以同时进行   但是仅限同位置的添加和栅除
                    返回值:
                         删除的时候会将删除的元素 以数组的形式返回出来
                         添加的时候 只返回 空数组
        5.4.6   concat()拼接两个数组  
var a = [1,2,3];
var b = [4,5,6];
var c = a.concat(b)
              将两个数组合成一个数组
              哪个数组使用 concat()拼接的时候 哪个数组就在前面
              不会改变原有的素组
              会将新合成的数组以返回值的方式返回回来
        5..7  join() 将数组转成字符串
var a = [1,2,3,4,5];
a.join()//结果 1,2,3,4,5
a.join('')// 1 2 3 4 5
a.join('-')// 1-2-3-4-5
console.log(typeof(a));//查看数据类型
              在不设置 的情况下 会将数组转成字符串 并默认元素以逗号隔开
              在设置的情况下
                  设置什么 转成字符串后  就以什么隔开元素
                  如果设置为空字符串 ""   则不隔开元素
            不会改变原数组   而是将转换 号的字符串 以返回值的方式返回
        5.4.8 indexOf() 在数组中 查找元素  如果能找到 返回目标元素的索引值 当目标元素在数组中存在多个的时候 从左往后返回第一个目标的索引值   
        如果没有返回-1;
var arr = [5,4,3,2,1];
var a = arr.indexOf(3);// 查找数组有没有3 返回过来的是索引值 2 
var b = arr.indexOf(9)//返回 -1;

5.5 多维数组

 当数组中的元素还是数组的时候 他就是多维数组
var  a =[1,2,3,4]
    一维数组 数组中的元素 不是数组
var b = [1,2,3,[4,5,6]]
    二维数组 数组中的元素是一维数组
var c = [1,2,3,4,[1,2,3,4,5,[7,8,9,6]]]
    三维数组 数组中的二维数组
    以次类推   

分支语句

1.if...else

        if(判断条件1){
            符合判断条件1后执行的代码
        } esle if(判断条件2){
            不符合 判断条件1
            但符合判断条件2时 执行的代码
            注意! else if  可以有多个
            当else if有多个的时候 按顺序判断其是否符合判断条件
        } else{
            else 没有判断条件 
            当 if 所有else if 的判断条件都不满足时
            执行 else 中的代码
            else 可以不写
        }
        判断条件可以是条件 语句   
        也可以是变量
        当是变量的时候 则会根据变量 的布尔值进行判断

2 switch...case

switch(变量){
case 常量值1:
当变量 = 常量值1 时执行的代码
break;
case 常量值2:
当变量 = 常量值2 时执行的代码
break;
.
.
.
default;
当变量不等于 所有的常量值是 执行的代码
}

循环语句

7.1 while循环
var i = 0;
while(i<10){
console.log(i);
i++;
}
7.2 do...while
do{
执行的代码
}
whlie(判断条件);
var i = 0;
do{
console.log(i);
i++;
}
while(i<10);
7.3 for循环
for(声明变量并赋予初始值;对变量进行条件判断;变量的自增或自减){
当变量满足判断条件时 执行的代码
如果变量不满足条件 则不执行代码 并跳出循环

   }
   for循环的执行顺序
   对变量进行判断=》满足条件 执行代码=》变量自增/自减 =》对变量进行判断=》。。。。。
   如此类循环 直到变量不满足条件  则终止循环

8.字符串 和数值之间的转换
8.1 给字符串数字 1 =》 "2"1
做乘法运算时 系统会强制将字符串转化成数字
8.2 parseInt
将小数转化为整数(直接舍去小数部位)
能将字符串数字转化为数字
8.3 将数字转换为字符串的时候 只需要给数字拼一个字符串""就行
注意: 将字符串转化为数字的时候
"123"=>123
"123qwe"=>123
"qew123"=>NaN

随机一组数据 然后使用冒泡排序

var num = [];
for(var i =0; i<10;i++){
num[i] = Math.round(Math.random()*100);
//console.log(num); 打印
}
for(var i =0; i<num.length;i++){
//外层for是整体循环的次数 i代表当前循环的第几次
//外层循for每循环一周  就能确定出一个当前的最大元素
for(var j = 0; j<num.length-i-1;j++){
//内层for循环 负责元素之间两两对比
//由于外层每循环一周 就能确定出一个最大的元素
//所以  内层 for循环次数是 arr.length - i - 1
//减1 是因为它不可能和自己做对比
//让相邻的元素对比
if(num[j]>num[j+1]){
//如果前一个元素 大于后一个元素
//则将他们位置互换
//位置互换 其实就是指的互换
var temp = num[j];
num[j] = num[j+1];
num[j+1] = temp
}
}
}
console.log(num);

选择排序

//选择排序原理
//每一圈确定一个 当前最小的元素 然后跟最前面放入元素 交换位置
//已将 比较 出来的最小元素 不在参与后面的循环
//比如 第一圈确定出来 跟第一 位交换位置
//第二圈 确定出来放入跟第二位交换位置
//外圈负责整个数组 比较的次数
//内圈负责每个元素的比较
//内圈比较的是起始位置
//i=>0 1 2...
//j=>1 2 3...
//所以内圈循环的起始位置j = i+1
//内圈的结束位置
//由于内圈循环时  每次都要对比最后一个元素 所以 j<arr.length
var num = [];
for(var i = 0; i<10;i++){
num[i]= Math.round(Math.random()*100);
}
//排序   外圈控制住整个数组循环的次数
for(var i = 0; i <  num.length -1;i++){
var min = i; //外圈 每一次开始循环的时候 都将当前循环的定一元素 先假设为最小的元素 然后拿这个元素跟内圈循环的其他元素做对比
//如果有元素比min小
//那么 这个元素就是新的min
for(var j = i+1; j<num.length;j++){
if(num[j]<num[min]){
//当J小于num[min]时  min = j 意思是 j的元素 小就输了 就把min = j;
}
}
//因为一整圈比完之后才会换位置 做一年 在外层for循环才会换位置
//将确定出来的min跟 当前参与循环的第一个元素  换位置
var temp = num[i];
num[i] = num[min];
num[min] = temp
}
console.log(num);

插入排序

var arr = [];
for(var i =0; i<10; i++){
aa[i] = Math.round(Math.random()*100);
}
//从第二个元素开始比较(从第二个元素开始到最后结束)
//每次比较都是跟排在子级前面的元素进行比较
for(var i = 1; i<arr.length; i++){
//从第二个元素 开始比较到最后一个元素比较 
//将当前元素和自己面前的元素进行比较
//比如说 循环 第一次的时候 是第二个元素 所以 它就是要跟第一 个元素进行比较
for(var  j = i; j>0;j--){
//内层 循环 是从当前对比的元素开始  向左进行比较
//所以 内层循环的起始位置 应该是当前元素的位置
//因为要向左开始比较 所以 应该是递减 j--
//在没有遇到比他还小的元素 当前比较 应该一直进行 第一个元素 才结束(j<0)
//开始比较
if(arr[j]<arr[j-1]){
//如果当前元素前一个元素小
var max = arr[j-1];
arr[j-1] = arr[j];
arr[j]=max;
}else{
break;//如果前一个元素比当前元素小   结束循环
}
}
}
console.log(arr);

while循环

//while循环
//输出 0 -10
var i = 0;
while(i<=10){
console.log(i);
i++;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容