在拉钩学习的笔记(五)JavaScript语法、数据类型、流程控制

1、表达式
    一个表达式可以产生一个值,有可能时运算、函数调用、有可能是字面量。表达式可以放在任何需要值的地方。
    特点:表达式会先执行出一个结果,然后再参与其他程序。
    语句:可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序可以有很多个语句组成,一般情况下分号;分割一个一个的语句
    语句可以认为是给计算机的一个指令,执行这段代码
    一般语句以分号结尾,特殊的结构除外
    流程控制语句:通过一些特殊结构可以让js代码加载时,要么可以跳过一部分不加载,或者可以循环加载一段代码;包括:条件分支语句、循环语句
2、if语句
    if语句是最常见的条件分支语句,作用就是通过某个指定的判断条件,决定走哪个分支的代码
    结构:
        if (condition expression) {
            statement1;
        } else {
            statement2;
        }
    condition expression:条件表达式,可以是任意的代码或者表达式,参与程序过程都会强制得到一个布尔值执行结果。表达式,js中遇到任何表达式都会先计算出一个结果然后才能继续参与程序
    statement:结构体,js中可以用{}包括一行或多行语句,这些语句整体组成了一个结构体,结构体中的语句要执行就都执行,要不就都不执行
    if语句  if:如果    else:否则  如果条件表达式为真true,执行结构体1,否则执行结构体2
    注意事项:
        if语句可以实现选择的功能,两个分支可以选择一个执行,不会都执行。
        if语句可以不写else分支,表示条件成立就执行后面的结构体,如果条件不成立,直接跳出if语句不执行
        if语句后面的结构体如果是单句组成的,则可以省略{}不写。不建议省略大括号不写,容易出现程序错误
        if语句能够控制自己内部的流程,但是不论走哪个分支,结束后都要继续执行if语句后面的其他语句,叫做殊途同归现象
3、多分支if语句
    包含多个判断条件,对应多个分支
    语法:if……else if……else if……else……
    如果……否则如果……否则如果……否则……
    结构:
        if (条件1) {
            满足条件1,执行的结构体
        } else if (条件2) {
            不满足条件1,满足条件2,执行的结构体
        } else if (条件3) {
            不满足条件1和2,执行的结构体
        } else {
            不满足前面所有条件,执行的结构体
        }
    注意事项
        多分枝if语句中可以有多个else if 的支付,但是else分支只能有一个,必须出现在最后,作为备用的选项,而且else也可以省略不写,表示前面条件如果都不满足,直接跳出不走任何分支
        多分支if语句有跳楼现象:条件从上往下依次验证,如果满足了某个条件,会立即执行后面的结构体,执行完了之后,不会再往后验证其他的条件了,而是从这一层直接跳楼跳出if语句,这就是跳楼现象
4、if语句嵌套
    if语句的结构部分,代码可以是任意的代码,甚至是另外一组if语句,也就是if语句内部嵌套了if语句;如果想执行内部if语句的某个分支,必须满足外部if语句的条件,同时还要满足内部if语句的某个条件;可以简化多分支if语句
5、三元表达式
    又叫三元运算符,必须有三个操作数参与的运算
    操作符号: ?:
    表达式:在参与js程序时,都必须先计算出表达式结果,才能参与后续程序
    由于三元表达式具备了一些选择的效果,所以也是一种条件分支语句
    三元表达式语法:
        Boolean_expression ? true_value : false_value
        boolean_expression:布尔表达式,表达式在参与三元运算中必须求得一个布尔类型的值,要么是true,要么是false,结果作为判断依据,判断到底去:前面的值还是后面的值。
        true_value:布尔表达式的值为真时,三元表达式的结果
        false_value:布尔表达式的值为假时,三元表达式的结果
        作用:根据布尔表达式的结果,如果为真,三元表达式结果就是真值,如果为假,三元表达式结果就是假
        然if语句可以模拟三元表达式,但是三元表达式有自己的优点:1.二选一的情况下,三元表达式结构更简单;2.三元表达式作为一个表达式参与程序时必须运算出结果才能参与,可以利用这个特点,将二选一结果赋值给一个变量;3.遇到给一个变量根据条件二选一赋值的情况,可以使用三运表达式
6、switch语句
    开关语句,允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个case标签,如果匹配成功,这个程序执行相关的语句
    语法:
        switch (表达式) {
            case 值1:
                结构体1;
                break;
            case 值2:
                结构体2;
                break;
            ......
            default:
                结构体n;
                break;
        }
    switch:关键字表示开始输入一个开关语句
    表达式:会求出一个具体的值,将这个值去与{}内部的case后面的值进行对比、匹配,如果值相等表示匹配成功。匹配相等时,方法是进行全等匹配,不止值要像等,数据类型也要相等
    case:实例的意思,作为关键字后面必须跟一个空格,书写匹配的值
    case后面的结构体:每个case匹配成功之后要执行的语句
    break:用于打断结构体,直接跳出程序,模拟跳楼现象
    default:相当于if语句中的else,否则的情况,如果前面的case都不匹配,执行default后面的语句
    switch语句运行机制
        switch语句首先会将小括号内的表达式计算出一个结果,用结果去匹配结构体内部的case;
        从上往下进行匹配,如果匹配成功,会立即执行这个case后面的语句,直到遇到一个break跳出整个switch语句;
        如果前面的case没有匹配成功,会跳过case之间的语句,去匹配下一个case,直到匹配成功,如果都不成功就执行default后面的语句
    注意事项:
        default可以不写,相当于if语句没有else
        break关键字:根据结构需要有时必须在每个case后面都要写,为了模拟跳楼现象,如果不写break,对应的case后面的语句执行之后,不会跳出结构体,会继续向下执行其他case后面的语句,直到遇到一个break;
    可以用break不写的情况制作一些特殊案例
    总结:实际工作中使用三种语言的情景
        if语句:最常用的语句,所有的判断情况都能够书写
        三元表达式:多用于给变量赋值根据条件二选一的情况
        switch语句:多用于给一个表达式去匹配多种固定值可能的可能性
7、循环语句-for循环
    for循环是一种前测试循环语句,在反复执行一段代码之前,都要测试入口条件,如果条件为真,可以继续循环,如果条件为假,必须跳出循环不再执行
    for循环是一种反复执行一段代码直到测试条件为假时停止
    语法:
        for(;;) {

        }
    呆板的语法:
        for(1定义循环变量;2变量的最大值或最小值;4步长){
            3循环体;
        }
        5输出
    这种解释只能涵盖for循环的一部分特殊结构,不能表示所有的for循环实现的情况
    for循环的过程:遇到for循环,立即执行1位置的语句,执行完毕后立即执行2位置的语句,2位置的语句会强制得到一个treu或false的结果,如果为true表示入口条件为真,下一步执行3位置的语句,如果为false表示入口条件为假,不再往下执行,直接跳出循环执行后面的5位置的语句;
    如果能执行到3位置,3是一个结构体,必须执行完毕,再执行4位置的语句,执行完毕后再执行2位置的语句,回到了判断真假,如果为true,继续执行3,再执行4,……直到2位置得到一个false的结果,循环结束跳出执行5
    注意事项:
        小括号内部必须有两个分号
        for循环{}后面不需要加分号
        如果2位置语句不写,相当于没有设置入口条件,或者条件永远为真,没法限制什么时候停止循环,出现死循环
        3位置是循环的结构体,每次进入循环都要执行完后,才能执行4语句,3位置的语句是可以是人为定义的,甚至可以书写if语句
        for循环嵌套if语句:表示既要能够执行循环,还要满足if语句的条件
        for循环嵌套for循环:外层xun'haun执行依一次,内层循环作为外层3位置的结构体,必须执行完所有的内层循环,才能进入外层循环下一次的4;
        循环内部的变量是全局变量,必须避免循环嵌套时起相同的变量名,内层和外层变量名必须不同,常用的变量名i,j,k
8、do while循环
    do while 循环时一种后测试循环语句,会先执行一次结构体,执行完之后才会去判断入口条件,如果条件为真能够继续下一次循环,如果条件为假跳出循环
    语法:
        do {
            结构体;
        } while(条件表达式);
    do 做什么,后面是每次循环的循环体
    while  当……的时候
    先执行一次循环体,然后当条件表达式为真时可以继续循环
    注意事项:
        如果循环中需要循环变量参与,循环变量必须定义在循环外面,否则会被重置
        循环变量自加的过程需要写在{}循环体内部
        如果将循环变量写在结构体内,i的初始值每次都会被重置,容易出现死循环
        变量自加过程写在输出语句前面和后面,结果时不同的
        do while循环即便条件第一次测试就为假,也会执行一次结构体
        至少会执行一次循环体
9、while循环
    while循环是一种前测试循环语句,在执行循环体之前都要测试入口条件,条件为真继续执行,条件为假直接跳出循环
    语法: 
        while(条件表达式){
            循环体;
        }
    当条件表达式为真时,执行循环体,如果为假,跳出循环
    注意事项:如果需要循环变量参与,必须定义在循环外部,避免被重置;循环变量自加的过程写在循环体内部
    总结:遇到必须执行一次结构体的循环,使用do while循环;先测试入口条件的循环,可以选择for循环或while循环
10、break语句
    break语句的作用可以立即停止当前的for、do while、while循环;根据一些条件设置break位置,直到循环能够执行到break语句立即停止执行,跳出循环 
    注意事项:break如果没有特殊指示,只能停止自己所在的那一层循环,并不能终止外部循环;如果想停止外部循环,可以给外部循环添加一个标签名label,在内层循环的break关键字后面空格加一个label名
11、continue语句
    遇到continue表示当时的一次循环数据不是我们想要的,会立即停止当前次的循环,立即进行下一次循环
    注意事项:要根据特殊条件设置continue的位置;continue如果没有特殊指示只能进入自己的下一次循环,不能立即停止外层循环的这一次,进行下一次;控制外层循环的方式与break一样,都是添加外层的标签名
    break和continue这两个语句的出现可以帮助我们大量的优化代码,减少了计算机的计算次数
12、穷举思想
    实际案例中,可能需要找到一些有规律的数据,但是计算机没办法自动只能筛选索要的数据,只能程序员自己书写一段代码,让计算机根据代码去进行筛选
    穷举思想:是一种解决问题的方法,将所有的需要数据所在的范围内所有的数据都一一列举出来,再根据规律的条件对所有这些数据进行筛选,这种方法就是穷举法
    制作方法:
        for循环:外层使用for循环进行一一列举。
        if语句:内层用if语句进行判断,筛选需要的数据,如果满足条件就操作数据,如果不满足条件跳过看下一次循环的数据
13累加器和累乘器
    累加器
    有时候需要的不是每个数据时什么,需要得到所有数据的加和,必须想办法将所有的数据的和存起来,就用到了累加器
    累加器本质就是变量,实现累加的效果,就是利用循环,每次循环就将新的数据加到原始的变量中去,赋值过程是一个加等于赋值
    注意事项:
        累加器必须定义在循环外面的前面,如果定义在循环内部,每次循环都会将累加器重置,不能实现累加器功能
        累加器的初始值必须设置,并且必须设置为0,不会影响累加结果
        使用最终累加结果时,必须在for循环结束后的外面,如果写在循环内部,循环没结束,并不是最终需要的值
    累乘器
    累积一些数据乘积,与累加器非常类似
    注意事项:累乘器必须定义在循环外部前面;累乘器的初始值必须是1,1乘以任何数都等于本身;累乘器最终结果必须在for循环结束后使用
14、水仙花数
    

1、操作符
    操作符也叫运算符,operator,是js中发起运算最简单的方式,例如:5 + 6
    表达式(expression)的组成包含操作数和操作符,表达式会得到一个结果,然后用结果参与程序
2、算数运算符
    +-*/%()
    %取余,取模。 a/b=c余d,就说a % b = d.
    运算顺序:先算乘除取余、再算加减,有小括号先算小括号
    正常情况:数字与数字之间的运算
    非正常情况1:有特殊数值字面量参与的运算
        NaN参与的运算:得到的结果都是NaN;Infinity参与的运算,视情况而定
    工作中不会使用特殊值运算,没有实际应用的意义,了解以防面试遇到
    非正常情况2:其他类型的数据参与运算
        有字符串参与+运算:+号变为连字符将前后连接成整体字符串
        隐式转换:除了字符串参与+的运算,其他情况下,所有其他数据类型参与数学运算时,计算机暗中将其他数据类型先自动转换成为数字类型,再参与运算,这个过程中不需要使用parseInt()、Number()等方法,过程式暗中进行,这就是一个隐式转换的过程
    隐式转换:对应数字:纯数字字符串会转为对应的数字"123"->123;转换为1:true;转换为0:false、null、""空字符串、空白字符串;转换为NaN:undefined、非空非纯数字字符串
3、比较运算符
    也叫关系运算符;一个比较运算符comparison operator比较它的操作数并返回一个布尔值类型。运算结果要么式true,要么是false
        >大于   <小于   >=大于等于  <=小于等于  ==相等,只判断大小是否相等,不判断数据类型      !=不等,与相等完全相反      ===全等,不光判断值相等,还要判断数据类型相等       !==不相等,与全等于完全相反
    非正常情况1:特殊值参与运算
        NaN参与运算:不等于和不全等于结果是true,其他都得到false;
        infinity参与运算,视情况而定
    非正常情况2:其他数据类型参与比较运算(排除字符串与字符串的比较)
        其他数据类型也会隐式转换为数字参与比较
            “123”-->123  true-->1  false-->0  null-->0  undefined-->NaN   ""-->0   "abc"-->NaN 
        null的判断比较特殊:null与0判断时,相等判断为false,>=和<=判断为true;
        null == undefined
    非正常情况3:字符串和字符串比较
        不会发生隐式转换为数字,而是比较两个字符串的Unicode编码顺序
        字符编码顺序:从前往后0-9,A-Z,a-z,前面的小于后面的
        比较时:不关心连个字符串的长度,从第一个字符开始比较,依次往后顺延比较,直到比出大小,就不再往后比较
    比较运算符运算顺序
        从前往后比较,前面的结果与后面进行比较
        3>2>1 false
4、逻辑运算符
    逻辑运算符常用于布尔类型值之间;当操作数都是布尔值时,返回值也是布尔值
        &&      逻辑与运算符 且
        ||      逻辑或运算符
        !       逻辑非运算符
    正常情况:布尔类型的值参与运算,返回值为布尔值
    非正常情况:除了布尔类型的值之外,其他数据类型的值也可以参与逻辑运算。运算过程中,需要将操作数隐式转换为布尔类型的值,参与判断计算,最终运算结果还是原来的某个位置的数据
        并不是所有的逻辑运算返回结果都是布尔值,其他数据参与得到的就是数据本身
    隐式转换为布尔值的规律
        转为false:NaN、0、""空字符串、null、undefined
        转为true:非0非NaN数字、非空字符串
        当他们用于非布尔值的时候,返回值就可能是非布尔值
    (逻辑与a&&b)如果a能被转换为false,那么返回a;否则返回b
    (逻辑或a||b)如果a能被转换为true,那么返回a;否则返回b
    逻辑运算符的运算顺序:同种运算符从前往后运算;综合用算符:非、与、或
5、赋值运算符
    赋值运算符必须有变量参与运算,赋值运算符会做两件事:
        第一,将变量中原始值参与对应数学计算,与右侧的数据
        第二,将运算结果再重新赋值给变量
        变量位于操作符的左侧
    赋值运算符符号
        =           等于
        +=          加等于
        -=          减等于
        *=          乘等于
        /=          除等于
        %=          取余等于
        ++          递加
        --          递减
6、一元运算符
    ++和--也叫一元运算符,只有一个操作数
    ++或--符号也可以写在变量前和变量后面,位置不同可能导致程序运行结果不同
    以++为例:
        a++:++符号在变量之后,a++在参与程序过程中使用的原始没有加1的值,使用完之后第二次用a变量时,a用的就是加1后的新值。先参与后自加
        ++a:++符号在变量之前,++a在参与过程中整体就使用a+1后的新值,使用完之后第二次用a变量时,a用的也是加1的新值。先自加后参与
7、运算优先级
    也叫综合的运算顺序
    优先级从高到低
        1.()优先级最高
        2.一元运算符 ++  --  !
        3.算数运算符 先* / % 后 + -
        4.关系运算符 > >= < <=
        5.相等运算符 ==  !=  ===  !==
        6.逻辑运算符 先&&  后||
        7.赋值运算符
    案例: var a = 4;
        var num = 1 * (2 + 3) && ++a || 5 > 6 && 7 < 8 ||  !9
        console.log(num);  ===> 5

    1、字面量
    (literal)是用于表达一个固定值的表达法,又叫常量
    通俗的理解,字面就是所见即所得,js程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少
    可以用于表达固定值,比如:数字、字符串、undefined、布尔类型的字面值等
        数值字面量:8,9,10;字符串字面量:"大前端";布尔字面量:true,false
2、数字字面量
    这里的数字就是数学意义上的数字
    数字字面量区分:整数字面量、浮点数字面量(小数)、特殊值
    书写时直接书写字面量,不需要添加任何辅助符号
    整数:
        整数字面量书写区分进制;
        整数可以被表示成十进制(基数为10)、八进制(基数为8)以及十六进制(基数为16)
        十进制是最基本的数值字面量格式,可以直接在代码中输入
        八进制字面值必须带前导0,0O、0o。八进制整数只能包括数字0-7
        十六进制的前缀是0X或0x。后面可以包含数字(0-9)和字母(a-f)或(A-F)
        在进行算术计算时或者参与程序,所有八进制和十六进制的数字都会被转化成十进制
    注意:八进制中,如果以0开头,每个位数上有超过0-7之间的数字出现,依旧是8/9,强制忽视前面的0,直接将后面的数字当作十进制。
    浮点数:
        就是数学概念中的小数
        包含:整数、小数点、小数部分
        浮点数不区分进制,所有的浮点数都是十进制下的数字
        注意:如果浮点数时大于0小于1的,可以省略小数点前面的0不写;12000=1.2e4;0.00012=1.2e-4
    浮点数的精度问题:浮点数值的最高精度时17位小数,但在进行算数计算时其精度远远不如整数;例如:0.1+0.2结果不是0.3,而是0.30000000000000004
3、特殊数字字面量
    infinity无穷
        infinity:无穷的意思。
        由于计算机的计算能力有限,如果高于最大计算值直接显示为郑正无穷infinity,如果低于最小计算值直接显示为-infinity 。
        infinity本身就是一个数字
            最小值:Number.MIN_VALUE,这个值为:5e-324
            最大值:Number.MAX_VALUE,这个值为:1.7976931348623157e+308
            无穷大:infinity
            无穷小:-infinity 
    NaN:not a number表示不是一个正常的数字,但是还是一个number类型的数字。这个数字没办法用前面的表示方法表示
        NaN与任何值都不相等,包括它本身
        isNaN():判断一个数据是不是一个NaN
4、字符串字面量
    字符串是由任意个数的有序或无序的字符组成的串,类似人类的语言,在js中有自己特殊的写法
    组成:字母、汉字、特殊符号、空白等
    字符串字面量写法:是用一对单引号('')或双引号("")及引号内的字符构成,引号中间的字符可以有任意多个,也可以是没有字符的空字符串
    注意:字符串中如果字符包含了双引号,则其外部应该由单引号标示,反之相同
    转义符\
        字符串中,有一些特殊功能的字符不能直接书写,还有一些特殊效果不能直接书写。
        这时,可以使用转义符\对这些字符进行转义
        在字符串中可以使用转义符\加普通字母,代替一些特殊字符
        \n  换行  \t  Tab制表   
        字符串可以用转义符\将特殊功能字符变成普通字符
        \' 单引号   \" 双引号   \\ 反斜杠   
5、变量
    变量(variables)是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
    变量相当于一个容器,内部可以存储任意类型的数据,使用变量时,用的时内部存储的数据
    原因:使用变量可以方便的获取或修改内存中的数据
    变量声明
        又叫定义变量,创建变量
        变量使用前,必须先有定义,如果没有定义,会出现引用错误
        定义方法:使用一个var的关键字进行定义,后面必须加一个空格,空格后面自定义变量名
    变量的命名规则和规范
    规则:必须遵守,否则报错
        由字母、数字、下划线、$符号组成,不能以数字开头
        字母区分大小写,A和a表示不同
        不能说关键字和保留字,关键字指的是js中有特殊功能的小词语,比如var、for等
        保留字指的是现在没有功能,但是将来新语法中有可能作为关键字使用
    规范:建议遵守,不会报错
        变量名必须有意义
        遵守驼峰命名法。多个单词组合而成,第一个单词首字母小写,后面单词的首字母需要大写,例如:userName、userPassword
    变量赋值:
        定义变量后,初始时没有进行赋值,内部有一个默认存储的值叫undefined(未定义),表示变量内部未赋值,可以存储数据了
        变量赋值的方法:通过等号=赋值,等号右边的值赋值给左边的变量
        注意:书写时,等号=两侧习惯书写一个空格 var a;  a = 3;
    变量赋值的几种情况:
        变量赋值时:内部可以存储任意类型的数据,甚至是一个变量。赋值过程中,等号右侧的变量使用的是存储的数据
        注意:变量参与赋值过程时,等号左变右不变。等号左侧会被赋值,将来值发生变化,等号右侧的变量使用内部的值参与运算,自身不会发生变化
        变量的赋初值过程可以与声明过程写在一起  var c = "hello";
        变量内部的值,可以通过多次赋值的方式进行更改
        一个关键字var可以同时定义多个变量,并且都赋初值。多个变量之间用逗号分隔,最后一个变量后面使用分号进行结尾; var a = 1, b = 2 , c = 3;
6、数据类型
    JavaScript中的值,无论是字面量还是变量,都有明确的类型
    简单数据类型
        Number      数字类型:不区分整数、浮点数、特殊值,都是Number类型
        String      字符串类型:所有的字符串都是String类型
        undefined   undefined类型:本身是一个数据,表示未定义,变量只声明的时候默认值是undefined
        Boolean     布尔类型:Boolean字面量,只有true和false两个字面量值,必须是小写字母;计算机内部存储:true为1,false为0
        null        null类型:本身是一个数据,从逻辑角度,null表示一个空对象指针,如果定义的变量准备在将来用于保存对象,最好将该变量初始化为null
    复杂数据类型
        Object      对象类型
7、检测数据类型
    使用typeof的方法进行数据检测
    检测方法:在typeof后面加小括号()执行,将要检测的数据放在小括号内部
        也可以将typeof作为关键字,后面加空格,空格后面添加数据的方式,检测数据
8、变量的数据类型
    JavaScript语言是一门动态类型的语言,变量并没有一个单独的数据类型,而是会随着内部存储的变化,数据类型也会发生变化
    变量的数据类型,与内部存储数据有关
    将来使用变量时,需要知道内部存储的数据时什么类型,避免程序出错
9、数据类型转换
    转换为字符串类型:数据.toString()方法
        String(数据)方法,有些值没有toString(),这个时候可以使用String()。比如:undefined和null
        + 号拼接字符串方式
            num + "",当+两边一个操作符时字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成为字符串再进行字符拼接,返回字符串
        提示:使用谷歌浏览器控制台快速查看数据类型,字符串的颜色是黑色,数值类型是蓝色,布尔值类型也是蓝色,undefined和null是灰色
        加号的特殊性:两边只要有一个是字符串,那么+就是字符串拼接功能;两边如果都是数字,那么就是算数功能
    转换成数值类型
        Number(数据)方法
        转型函数Number()可以用于任何数据类型转换,将其他数据类型转换为数字
        字符串:纯数字字符串可以转为对应数字,空字符串和空白字符串转为0,非空非纯数字字符串转为NaN
        布尔值:true转为1,false转为0
        undefined:转为NaN
        null:转为0
        parseInt()方法:字符串转整数方法
            作用:第一,对浮点数进行取整操作;第二将字符串转为整数数字
            对数字取整功能,直接舍弃小数部分,只保留整数
            将字符串转为整数数字,也包含取整功能
            字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分,如果不是数字打头的字符串,会转换为NaN
        parseFloat方法:字符串转浮点数方法
            作用:将字符串转为浮点数数字
            要求:满足浮点数数字字符必须再字符串开始,如果不在开始返回值都是NaN
            应用:工作中,利用变量接受prompt()语句返回的用户输入的数据,检测数据类型后,得到的是字符串类型
                如果想要获取的是数字类型的数据,则需要先将得到的字符串转数字,避免出现字符串参与数字假发运算等
        Boolean()方法
            转换函数Boolean()可以用于任何数据类型,将其他数据类型转为布尔类型的值
            转为false:NaN、0、""空字符串、null、undefined
            转为true:非0非NaN数字、非空字符串

1、网页、网站和应用程序
    网页:单独的一个页面
    网站:一系列相关的页面结合到一起
    应用程序:可以和用户产生交互,并实现某种功能
2、前端三层
    HTML        结构层      从语义的角度描述页面结构
    CSS         样式层      从美观的角度描述页面样式
    JavaScript  行为曾      从交互的角度描述页面样式
    JavaScript的应用场景
    JavaScript发展到现在几乎无所不能,常见的应用场景有:
        1、网页特效;
        2、服务器端开发(node.js)
        3、命令行工具(node.js)
        4、桌面程序(electron)
        5、app(Cordova)
        6、控制硬件-物联网(ruff)
        7、游戏开发(Cocos2d-js)
        ......
3、JavaScript是什么
    JavaScript是一种运行在客户端的脚本语言,最早是在HTML(标准标记通用语言下的一个应用)网页上使用,用来给HTML网页增加动态动能
    浏览器就是一种运行JavaScript脚本语言的客户端,JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分
    JavaScript简史
        在web日益发展的同时,网页的大小和复杂性不断增加,受制于网速的限制,为完成简单的表单验证而频繁的地与服务器交换数据只会加重用户的负担,当时走在技术革新最前沿的Netspace(网景)公司,决定着手开发一种客户端语言,用来处理这种简单的验证。
        ECMAScript的应用:JavaScript,JScript、actionscript等脚本语言都是基于ECMAScript标准实现的;在JavaScript,JScript、actionscript中申明变量,操作数组等语法完全一样,因为他们都是ECMAScript。但是在操作浏览器对象等方面又有各自独特的方法,这些都是各自语言的扩展。
    JavaScript的组成:JavaScript是由ECMAScript、DOM和BOM组成
4、计算机的组成
    软件:应用软件:浏览器(Chrome/IE/Firefox)、QQ、sublme、world          系统软件:widows、linux、mac OS
    硬件:  三大件:CPU、内存、硬盘--主板          输入设备:鼠标、键盘、手写板、摄像头等           输出设备:显示器、打印机、投影仪等。
5、JavaScript书写语法
    书写位置:写在行内;写在html中的<script>标签中;写在外部js文件中,在页面引入;
        注意:引入外部js文件的<script>标签中不可以写JavaScript的代码,自定义的JavaScript代码,需要书写在另外一个新的标签中。
    注释:块级注释(多行注释)/**/; 单行注释,作用范围只有符号后面的一行 //
    alert()语句
        alert弹出、警告。
        作用:在浏览器中弹出一个警示框,警示框的警示内容可以认为定义
        alert语句是一个js内置好的功能(函数、方法),要想实现功能必须在alert关键字后面加小括号执行,自定义的内容需要传递给小括号内的参数,输出时参数位置的内容会出现在弹框位置
        语法1:alert语句作为一个函数,如果要执行,必须在后面紧跟着添加小括号。
        语法2:alert语句作为一个函数,小括号内部可以传递参数,根据数据类型不同,有不同的语法要求,例如文字内容(字符串)必须写在一对引号内部。
        语法3:如果需要添加一对引号,要么是单引号,要么是双引号,不能一单一双
        语法4:所有的有特殊功能的符号必须是英文字符
        语法5:语句后面的分号必要性
        语法6:js对换行、缩进、空格也不敏感
        语法7:如果js中没有特殊控制结构,代码都是从上往下、从左往右进行加载
    prompt()语法
        prompt:提示
        作用:弹出一个对话框,内部有一个提示语句以及一个输入框,可以在输入框中根据提示任意输入内容
        prompt语句也是js内置的一个功能,必须加小括号执行,有两个参数可以进行传递,每个参数一般都是字符串类型,必须加引号,两个参数之间用逗号分隔,引号和逗号必须是英文输入法状态
        prompt("请输入您的年龄","18");  第一个参数设置提示内容,第二个参数设置的是默认输入内容;第二个参数位置的值可以删除重新写,代码中可以不写第二个参数
    console控制台
        在大部分浏览器中,都有一个控制台内部可以查看HTML、css代码,甚至调试代码错误。
        浏览器中右键点击审查元素(检查),都可以打开控制台
        快捷键F12
        控制台中有一个console(控制台)的选项面板,在js中有非常重要的作用
        控制台的功能:作用一:帮助程序员调试程序中出现的bug,可以提示错误的个数、错误所在的行数、错误类型;作用二:可以在控制台中直接书写一些语句,进行执行;作用三:js有一个内置对象console,内部封装了大量的属性和方法(函数),可以通过给console对象打点调用方法名()、属性名方法去执行。有一个叫做log(日志)方法,可以实现参数位置自定义内容在控制台输出。
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值