zoukankan      html  css  js  c++  java
  • js --基本语法3 函数,数组,堆棧

    1. 函数
    1. 函数就是待执行的代码段
    2. 使用 :
    函数的声明
    函数的调用
    3. 语法 :
    function 函数名(参数列表){
    函数体;
    return 返回值;
    }
    解释 :
    1. JS中使用function关键字声明函数
    2. 函数名自定义,命名规范参考变量的命名规范
    3. 参数表示函数体执行所需要使用的数据,可以省略,
    小括号不能省略
    4. 函数体就是代码段,在函数调用时执行
    5. return 表示返回值,用来返回给外界函数体执行的
    结果.返回值只能写一个值,return后面不能再写代码,
    return后面的代码都不执行
    6. 函数调用 :
    函数名(实际参数);
    练习 :
    改版日期计算器
    1. 闰年判断使用函数封装
    2. 主体功能使用函数封装
    3. 添加界面元素,通过按钮点击调用主函数
    4. 作用 :
    1. 封装代码段,实现某个功能
    2. 实现代码的复用
    5. 匿名函数
    语法 :
    1. var fn = function (){};
    定义变量保存函数地址,等同于函数名
    调用 :
    fn();
    2. 匿名函数自执行
    (匿名函数声明)(实际参数);
    6. 函数内部对象(了解)
    arguments 伴随函数调用,自动产生,直接使用.
    表示函数的实际参数,真正传入到函数内部的数据.
    本身也是类数组结构
    2. 变量的作用域
    1. 变量起作用的范围
    2. 分类 :
    1. 全局变量
    在全局作用域,程序的任意地方都可以访问
    2. 局部变量
    在函数作用域中可以访问,出了当前函数,变量就无法
    使用
    3. 使用 :
    1. 函数外部定义的变量,都是全局变量,任意地方都可以访问
    2. 函数内部使用var关键字定义的变量,是局部变量,只在
    当前函数作用域中起作用,外界无法访问
    3. 函数内部省略var关键字定义的变量,都是全局变量
    4. 作用域链 :
    访问变量时,会首先在当前作用域中查找有无该变量,
    有的话直接使用;
    没有的话,到上一级作用域中查找,
    上一级也没有,再向上查找...
    直到全局作用域
    形成从里向外链式查找
    3. JS 内置对象
    1. 对象由属性和方法组成
    2. 分类 :
    Array String RegExp Math Date...
    3. Array 数组
    1. 数组 : 是一种存储结构,可以存储一组数据,自动为每个
    元素分配下标,默认从0开始
    2. 语法 :
    1. 字面量方式
    var arr1 = [10,'20',true];
    2. new 关键字创建
    //创建的同时初始化元素
    var arr2 = new Array(10,20,30);
    //只传入一个number值,表示指定数组长度
    var arr3 = new Array(5);
    3. 使用 :
    1. 数组元素的下标 :
    默认为每个元素自动分配下标,取值范围 0 ~ length-1
    2. length 属性
    获取数组中元素个数
    使用点语法访问对象的属性与方法
    et :
    arr.length;
    3. JS 中数组长度是可以动态修改的,可以向数组任意一个位置
    插入元素,影响最终长度
    4. 遍历数组
    借助循环访问数组中每一个元素
    1. 普通for循环
    for(var i = 0; i < arr.length; i ++){
    console.log(arr[i]);
    }

    for(var j = arr.length-1; j >= 0; j --){
    console.log(arr[j]);
    }
    2. for - in 了解
    3. forEach() 了解
    练习 :
    1. 循环接收用户输入的数据,保存在数组中,
    直到用输入exit表示结束,结束之后输出数组
    2. 创建一个包含数值的数组,找这一组数据中的最大值
    3. 创建只有3个数字的数组,按照从小到大排序后输出
    5. 数组方法
    1. toString();
    将数组元素转换成字符串输出,返回一个字符串
    2. join()
    将数组中元素拼接成一个字符串并返回
    参数 : 可选,表示元素之间的连接字符
    et :
    //指定元素之间的连接符,默认为逗号
    var str3 = arr.join("");
    console.log(str3);
    3. reverse()
    反转数组元素,以倒序形式重新排列数组元素
    [10,20,30] -> [30,20,10]
    返回值 : 返回转换后的数组,
    方法会改变数组的原有结构,一旦调用方法,
    数组本身就已经改变了,可以不接收返回值
    4. sort()
    对数组中元素排序,默认按照元素的Unicode码值升序
    排列,改变数组原有的结构和顺序
    返回值 : 返回排序后的数组,原数组也会改变.
    参 数 : 可选,可以是自定义的排序函数
    示例 :
    针对number类型,从小到大排列
    function sortASC(a,b){
    return a-b;
    }
    arr.sort(sortASC);
    解释 :
    自动将数组中数据两两传入,比较大小,
    a-b 表示从小到大排列(按照字母表顺序或码值)
    b-a 表示从大到小排列
    5. 数组的进出栈操作
    栈与队列都是存储结构
    特点 :
    栈 : 只有一个出入口,数据按顺序存入,先进后出
    队列 : 先进先出
    数组采用栈结构存储
    方法介绍 :
    1. 操作数组尾部元素
    1. push(data)
    在数组的末尾添加元素,多个元素之间使用
    逗号隔开
    返回值 : 新数组的长度
    注意 : 直接向数组添加元素,原始数组会被改变
    2. pop()
    移除数组末尾元素
    返回值 : 返回被移除的元素
    无参数
    2. 操作数组头部元素
    1. 在数组头部追加元素
    unshift();
    参数 : 一个或多个元素
    返回值 : 数组长度
    2. 移除数组头部元素
    shift();
    返回被删除的元素
    无参数
    练习 :
    随意录入一个数字,转换成二进制并且输出
    十进制转换二进制 :
    对2取余,直至商为0,余数倒序排列
    十进制 : 5
    5 / 2 = 2 .... 1
    2 / 2 = 1 .... 0
    1 / 2 = 0 .... 1
    十进制 : 9
    9 / 2 = 4 .... 1
    4 / 2 = 2 .... 0
    2 / 2 = 1 .... 0
    1 / 2 = 0 .... 1
    二进制 1001
    6. 二维数组
    1. 数组中每个元素又都是数组
    语法 :
    一维数组 : [10,20,30]
    二维数组 : [[1,2,3],[4,5,6],[7,8,9]]
    2. 访问 :
    语法 :
    一维数组访问 : arr[0];
    二维数组访问 : arr[0][0];
    访问第一个内层数组中下标为0的元素
    练习 :
    声明包含若干数字的数组,
    接收用户输入的数字,
    遍历数组,查找数据,如果数组存在相应的数据,返回下标
    不存在,返回-1并提示

     


















  • 相关阅读:
    MXF文件结构浅析
    Windows FFMPEG开发环境配置
    从文件中读取yuv和h264数据
    TS封装格式
    H.264学习笔记
    【Web Shell】- 技术剖析中国菜刀
    【Web Shell】- 技术剖析中国菜刀 – Part I
    【硬件】- 显卡命名规则
    【硬件】- 英特尔CPU命名中的产品线后缀
    【硬件】- 英特尔CPU命名规则
  • 原文地址:https://www.cnblogs.com/sky-ai/p/10026982.html
Copyright © 2011-2022 走看看