zoukankan      html  css  js  c++  java
  • 8.26 一周学习总结

    switch-case结构

    1、结构写法:

    var num=5;//一个操作数是一个最简单的表达式

    switch (num+3){

    case 1:

    document.write("第一个case");

    break;

    case 2:

    document.write("第二个case");

    break;

    case 3:

    document.write("第三个case");

    break;

    default:

    document.write("case都不成立,执行default");

    break;

    }

    2、注意事项:

    ①switch结构()中的表达式,可以使用各种js支持的数据类型

    ②switch结构在进行判断的时候,使用全等判断(var num=1,case "1",就不可以,因为数据类型不一样)

    ③switch结构中case()中的表达式可以是各种数据类型,但是值必须各不相同,即使相同,也只会执行第一个式子

    ④break作用:执行完case代码后,跳出当前switch结构

    缺少 break 后果:从第一个正确的 case 项之后开始,执行后面所有的 case 和 default,原因:⑤ ↓

    ⑤switch结构默认所有 case 项各不相同,所以在进行判断的时候,只会判断一次正确答案,当遇到正确的 case 之后,

    就不会判断后续的项目

    ⑥switch结构的执行效率比多重 if 快。在多路分支结构中,推荐优先使用 switch。

     

    一、while 循环

    1、循环结构的执行步骤:

    ①声明循环变量

    ②判断循环条件

    ③执行循环体操作

    ④更新循环变量

    然后循环执行②~④,直至条件不成立时,跳出循环

     

    while循环()中的表达式,运算结果可以是各种类型,但最终都会转换为真假,转换 规则同 if 结构

     

    二、do while 循环

    while循环特点: 先判断,再执行

    do while循环特点:先执行,再判断;即使初始条件不成立,也至少执行一次

     

    三、for 循环

     

    1、for 循环有三个表达式:① 声明循环变量 ②判断循环条件 ③更新循环变量

    三个表达式之间,用 ; 分隔

    for 循环三个表达式都可以省略,但是两个 ; 缺一不可

    2、for 循环 执行特点:先判断,再执行,与while相同

    3、for 循环 三个表达式都可以由多个表达式组成;第二部分多个判断条件用 && || 连接 ,第一三部分用逗号分隔

     

    四、循环控制语句

    1、 break:跳出本层循环,继续执行循环后面的语句,如果循环有多层嵌套,则 break 只能跳出一层

    2、continue:跳过本次循环中剩余代码,继续下一次循环

    ①对于 for 循环,continue 之后执行的语句,是循环变量更新语句

    ②对于 while、do while 循环,continue 之后执行的语句,是循环条件判断

    因此,使用这两个循环时,必须将 continue 放到 i++(变量更新语句) 之后使用,否则将导致死循环

    3、return:JS 中,return 只能出现在函数中,作用:结束掉整个函数

     

    函数的声明及调用

    1、函数的声明格式:

    function 函数名(参数1,参数2,...){

    //函数体代码

    return 返回值;

    }

    函数的调用

    ①直接调用: 函数名(参数1的值,参数2的值...);

    ②事件调用方式: HTML标签中,使用 事件名="函数名()"

    <button onmouseout="saySth('789','yellow')">点击按钮,打印内容</button>

    2、 函数的注意事项:

    ①函数名必须要符合小驼峰法则!!(首字母小写,之后每个单词字母大写)

    ②函数名后面的()中,可以有参数,也可以没有参数,分别称为有参函数和无参函数

    ③声明函数时的参数列表,称为形参列表,形式参数(变量的名字)

    function saySth(sth,color){}

    调用函数时的参数列表,称为实参列表,实际参数(变量的赋值)

    saySth("123","blue");

    ④函数的形参列表个数,与实参列表个数,没有实际关联关系

    函数列表的个数,取决于实参列表

    如果实参列表的个数小于形参列表,则未赋值的形参,将为undefined

    ⑤函数可以有返回值,使用 return 返回结果

    调用函数时,可以使用一个变量接受函数的返回结果,如果函数没有返回值,则接收的结果为 undefined

    ⑥函数中声明变量的作用域:

    在函数中,使用 var 声明的变量,为局部变量,只能在函数内部访问

    不用 var 声明的变量,为局部变量, 在函数外部也可访问

    函数的形参列表,默认为函数的局部变量,只能在函数内部使用

    ⑦函数的声明语句与调用语句没有先后之分,即可以在声明函数前调用函数

    func();//声明 func() 之前调用也是可以的

    function func();

    //单行注释

    多行注释 Ctrl+Shift+/

    /**

    * 文档注释: 开头两个*,写在函数上访,在调用函数时,可以看到文档中的描述信息

    */

    /**

    str: 您想要打印的内容

    color:您想要打印的内容的颜色

    */

    function saySth(str,color){

    document.write("<div style='color: "+color+";'>"+str+"</div>");

    }

    saySth("123","blue");

    saySth("456","red");

     

    JS 中只有函数作用域,没有块级作用域(大括号包起来的作用域叫函数作用域),函数声明的局部变量只在函数中可以用,for 循环中声明的变量可以在循环外部使用,因为 for 循环不是函数

     

    一、匿名函数的声明使用

    1、声明一个匿名函数,直接赋值给某一个事件

    window.onload=function(){};

    2、使用匿名函数表达式,将匿名函数,赋值给一个变量

    声明: var func=function(){}

    调用: func();

    注意: 使用匿名函数表达式时,函数的调用语句,必须在声明语句之后!!!(与普通函数的区别!!!)

    3、自执行函数,也是一个匿名函数

    ①!function(){}();//可以使用多种运算符开头,但一般使用 !

    !function(形参列表){}(实参列表);

    ②(function(){}());//使用 () 将函数及函数后的 () 包裹

    ③(function(){})();//使用 () 包裹函数部分

    三种写法特点:

    ①使用 ! 开头,结构清晰,不容易混乱,推荐使用

    ②能够表明匿名函数与调用的 () 为一个整体,官方推荐使用

    ③ 无法表明函数与之后 () 的整体性,不推荐使用, 在它之前的匿名函数后要加 ;

    二、JS 代码的执行顺序问题

    JS 代码在运行时,会分为两大部分,检查装载和执行阶段

    ①检查装载阶段: 会先检查代码的语法错误,进行变量、函数的声明

    ②执行阶段 : 变量的赋值、函数的调用等,都属于执行阶段

    以下列代码为例:

    console.log(num);//undefined

    var num=10;

    func1();//函数可以正常执行

    function func1(){}

    func2();//函数不能执行,打印func2时显示undefined

    var func2=function(){}

    原因: 上述代码的执行顺序为:

    检查装载阶段:

    var num;

    function func1(){}

    var func2;

    代码执行阶段:

    console.log(num);

    func1();

    func2();

    function(){}

    三、函数的内部属性

    1、arguments 数组对象

    ①作用: 用于储存调用函数时的所有实参,实际上参数列表已经保存到 arguments 数组中,可以在函数中,使用 arguments[n] 的形式调用 , n 从0开始

    ②arguments数组中的元素个数,取决于实参列表,与形参无关

    但是,一旦第 n 个位置的形参、实参、arguments都存在时,形参将 与 arguments 绑定,同步 变化 (即使在函数中修改形参的值,arguments 也会改变; 反之,亦成立 )

     

    ③arguments.callee() 是 arguments 的重要属性,表示 arguments 所在函数的引用地址

    在函数里面,可以使用 arguments.callee()调用函数本身

    在函数内部,调用函数自身的写法,叫做递归

    递归分为两部分: 递和归,以递归调用语句为界限,可以将函数分为上下两部分

    递: 当函数执行上半部分,遇到自身的调用语句时,继续进入内层函数,再执行上半部分;直至执行完最内层函数

    归: 当最内层函数执行完后,再从最内层函数开始,逐渐执行函数的下半部分

    当最外层函数执行时,遇到自身的调用语句,会进入内层函数执行,而外层函数的后半部分暂不执行,直至最内层函数执行完后, 再逐步向外执行

     

    DOM树节点:

    3大类:元素节点、属性节点、文本节点

    文本节点、属性节点属于元素节点的子节点。操作时,均需先取到元素节点,

    查看元素节点:

    1、getElementById:通过 id 取到唯一节点;如果 id 重名,只能取到第一个

    getElementByName()

    getElementByTagName()

    getElementByClassName()

    >>> 获取元素节点时,一定要注意:获取节点的语句,必须在 DOM 渲染完成之后执行。2种方式实现:

    ①将 JS 代码写在 body 之后

    ②将代码写到window.onload 函数之中

    >>>后面三个,取到的是数组格式,不能直接添加各种属性,而应该取出数组的每一个单独操作

    例如: getElementByName()

    查看/设置属性节点:

    1、查看属性节点:getAttribute("属性名");

    2、设置属性节点:setAttribute("属性名","新属性值");

    >>>查看和设置属性节点,必须先取到元素节点,才能使用

  • 相关阅读:
    硬盘分区、寻址和系统启动过程
    剑指offer---05---用栈实现队列
    剑指offer---05---用栈实现队列
    服务端提供的JSON数据接口与用户端接收解析JSON数据
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/HRurl/p/7435906.html
Copyright © 2011-2022 走看看