• JS基础篇


                                                      JS基础

    使用JS的三种方法

    1,在HTML标签中,直接内嵌JS(不提倡使用) <button onclick="alert('你真点啊')">点我啊!!!</button>      >>>不符合W3C内容与行为分离的要求!!!

    2.在HTML页面中,使用<script></script>包裹JS代码:
       <script type="text/javascript">
       //js代码
       </script>
       >>>script标签可以放在页面的任何位置。
    3.引入外部的JS文件:
       <script language="JavaScript" src="js/01-笔记.js"></script>

    【注意事项】
    ①script标签可以嵌入页面的任何位置,但是位置不同会导致JS代码执行的顺序不同;
    比如:<script></script>放到<body>前面,则JS代码会在页面加载前就执行。
    ②引入外部的JS代码<script></script>必须是成对出现的标签,而且标签中不能有任何的JS代码
    ③JS中的多行注释。Ctrl+shift+/,,,,JS中的单行注释。Ctrl+/

    JS中的变量

    1,JS变量声明的写法:
    var num=10;//使用var声明的变量,属于局部变量,只在当前作用域内有效;
    num=10;//不用var声明的变量,默认为全局变量,在整个JS文件中有效。
    var x=8,y,z=10;//使用一行语句,同时声明多个变量。上式中,y属于已声明,但未赋值状态,结果为undefined;
    【声明变量的注意事项】
    ①JS中所有变量的声明均使用var关键字,变量具体是什么数据类型,取决于给变量赋值的类型;
    ②JS中同一个变量,可以在多次不同赋值时,修改变量的数据类型;
    var a=10;//从初始声明时,a属于整数型;
    a=“haha”;//重复赋值时,整数型的a被修改为字符串类型;
    ③变量可以使用var声明,也可以不使用var声明。
    【区别】使用var声明为局部变量,不使用var声明为全局变量
    ④只用var声明,不赋值,结果为undifined;
    例如:var a;//a为undefined;
    但是,如果不声明也不赋值的a,直接使用会报错;
    ⑤同一变量名可以多次使用var声明。但是,后面的var并没有任何用。第二次在使用var声明时,只会被理解为赋值操作。



    2,变量名的命名要求:
    ①变量名只能由字母,数字,下划线组成;
    ②开头不能是数字;
    ③变量名区分大小写,大写字母与小写字母为不同变量;




    3,变量名的命名规范:
    要符合小驼峰法则:首字母小写,之后每个单词的首字母大写;
    var myNameIsZiYu=1; √
    或者使用匈牙利命名法
    所有字母小写,单词之间用_分隔;
    var my_name_is_zi_yu=1; √
    ③ var myonameisziyu=1; × 能用但是不规范


    4,JS中的数据类型:
    undefined:未定义。已经使用var声明的变量,但是没有赋值。var a;
    none:表示空的引用。
    boolean:布尔类型,表示真假只有两个值:true/flase
    number:数值类型,可以是正数,也可以是小数;
    string:字符串类型,用双引号或者单引号包裹的内容,称为字符串;
    object:对象类型

    5,【常用的数值函数】
    ①isNaN();判断一个变量或者常量,是否是NaN(not a number 非数值)
    使用isNaN();判断时,会尝试使用Number()函数进行转换,如果最终结果能够转为数字,则不是NaN,结果为flase。

    ②Number()函数;将其他类型的数据,尝试转为数值型;
    【字符串类型】
    >>>字符串为纯数字值字符串,会转为对应的数字;“111”->111
    >>>字符串为空字符串,会转为0;“ ”->0
    >>>字符串包含其他任何字符时,都不能转;"1a"->NaN
    >>>Boolean类型,“true”->1;"flase"->0.
    >>>None->0/undefined->NaN
    >>>object*(后续讲解)

    ③ParseInt():将字符串转为整数类型;(取整用他)
    >>>纯数值字符串,能转。“12”->12;"12.9"->12(小数转化时,直接抹掉小数点,不进行四舍五入)
    >>>空字符串,不能转。" "->NaN
    >>>包含其他字符的字符串,会截取第一个非数值字符串前的数字部分
    “123a456”->123 "a123b456"->NaN
    >>>ParseInt()只能转字符串,转其他类型全是NaN。


    【number函数与parseint函数的区别】
    1,number可以转任何函数类型,parseint函数只能转字符串类型
    2,两者在转字符串时,结果不完全相同

    ④ParseFloat:将字符串转为数值类型:
    转换规则与parseint相同,只是如果有小数,则保留小数点;如果没有小数,则依然是整数;

    ⑤typeof():检测变量的数字类型:
    字符串->String 数值->Number 未定义->Undefined
    true/flase->Boolean 对象/NULL->object 函数->Function

    JS常用的输入输出语句

    1.document.write(); 将()中的内容打印输出到浏览器屏幕上
     使用时需注意,除变量/常量外的所有内容,必须放到“”中。变量和常量必须放到“”外面;
     如果同时有变量和字符串,必须用+链接;
    eg:document.write("左手中的纸牌:"+left+"<br />");

     2.alert(); 使用弹窗输出;
     弹窗警告。()中的内容与上述要求相同。
     3.prompt(); 弹框输入;
     接受两部分参数:
     ①输入框上面的提示内容,可选;
     ②输入框里面的默认信息,可选;
     当只写一部分是,表示输入框上面的提示内容;

     可以定义变量,接受输入的内容。点击确定按钮,变量将被赋值为输入的内容;
     点击取消按钮,变量将会被赋值为null;

     输入内容时,默认接收的数据消息都是字符串!!!!!

    简单的例子一:

    执行结果为:

    JS运算符

    1,算术运算(单目运算符)
      + 加、-减、*乘、 /除、 %取余、++自增运算符 (在自身的基础上加一个)、--自减运算符(在自身的基础上减一个)
      >>>+:有两种作用,链接字符串/加法运算,当+两边全为数字时,进行加法运算;
      当+两边有任意一边为字符串时,起链接字符串的作用,链接之后的结果为字符串;
      除加号外,其他符号在运算时,会尝试将左右变量用NUMber函数转为数字 ;
      >>>/:结果将会保留小数点
      >>> ++:自增运算符,将变量(x)在原有基础上加一;
      >>> --:自减运算符,将变量(x)在原有基础上减一;
    【a++和++a的异同】
      相同点:无论a++还是++a运算完之后,a的值均会加一;
      不同点:a++先用a的值去运算,再把a加一;
      ++a先把a加一,再用a加一以后的值去运算
      eg:
      var a=3,b,c;
      b = a++ +2;//先用a运算,b=3+2 再把a+1,a=4
      c = ++a +2; //先把a+1,a=5 ,在用a+1的值去运算,c=5+2;
      alert(a); 5
      alert(b); 5
      alert(c); 7

    2,赋值运算

    = 赋值(把右边的值赋给左边) += -= *= /= %=

    +=:a+=b 相当于a=a+b; 但是,前者的运算效率要比后者快,所以推荐使用+=的写法;

    3, 关系运算
    ==、 !=(不等)、!==(不全等),>、<、>=、<=

    >>> 关系运算符,运算之后的结果,只能是boolean类型;
    >>>判断一个数字是否处于某个区间,必须使用&&链接;
    a<10 && a>0 √ 10>a>0 ×
    >>>===:严格等于,要求不但要类型相同,值也必须相同。类型不同,结果直接为flase;类型相同,在进行下一步判断;
    >>>==:类型相同与===效果一样。类型不同时,会尝试用number()函数将两边转为数字,然后再进行判断。
    但是有个别特例,如:null==flase; ×
    null==undefined;√
    nan==nan; ×
    4, 条件运算符(多目运算)
    a>b?true:false
    >>>有两个重要符号:?和:
    当问号前面部分,运算结果为true时,执行:前面的代码;
    当问号前面部分,运算结果为false时,执行:后面的代码;

    冒号两边可以为数值,则整个式子可用于赋值。var a=1<2?1:2;
    冒号两边可以为代码块,将直接执行代码。1<2?alert(1):alert(2);
    多目运算符可以多层嵌套。var a =1<2?alert(1):(1>0?4:5);

    5,位运算符、 逻辑运算符
    &、|、~ &&(与)、||(或)、!(非)
    >>>&&:两边都成立结果为 true(&&的优先级较高)
    >>>||:两边有任意一边成立,结果为true


    6,运算符的优先级
    () //小括号最高
    !++ -- //单目运算符
    * / %
    + -
    > < >= <=
    == !=
    && //与或同时存在时,&&比||高
    ||
    -= += *= /= //最低的是各种赋值

    简单的例子二:

    运行结果:

     JS中的分支结构

    【if-else结构】
    1,结构的写法:
     if(判断条件){
                //条件为true时,执行if的{}
        }else{
               //条件为flase时,执行else的{}
     }
    2,注意事项:
     ①else语句块可以根据情况进行省略。
     ②if和else后面的{}可以省略,但是省略{}后,if和else后面只能跟一条语句;(所以,并不建议省略{})
    3,if的()中的判断条件,支持的情况:
     ①boolean:true为真,flase为假;
     ②string:空字符串为假,所有非空字符串为真;
     ③number:0为假,一切非0数字为真;
     ④null,undefined,NaN全为假;
     ⑤object:全为真;

    【多重if结构,阶梯if结构】
     1,结构写法:
     if(条件一){
                   //条件一成立时执行的操作;
           }else if(条件二){
                 //条件一不成立,并且,条件二成立的操作;
           }else{
                //上述所有条件都不成立时,执行的操作;
     }
     2,多重if结构中,各个判断条件是互斥的,只能选择其中一条路执行。遇到正确选项并执行完成以后,直接跳出结构,
     不再判断后续分支。

    【嵌套if结构】
     1.结构写法;
     if(条件一){
                  //条件一成立
         if(条件二){
                 //条件一成立&&条件二成立
         }else{
                //条件一成立&&条件二不成立
     }
         }else{
            //条件一不成立
     }
    2,在嵌套if结构中,如果省略大括号,则else结构永远属于离他最近的一个if结构。

    3,嵌套结构可以多层嵌套,但是一般不推荐超过3层,能用多重if结构的一般不推荐使用嵌套if结构。

    简单的例子三:

    运行结果为:

  • 相关阅读:
    检测对象类型的两种方式,constructor属性和instanceof
    Javascript中的事件
    工厂模式、寄生构造函数模式、稳妥构造函数模式比较
    ECMAScript中的原型继承
    Javascript中new的作用
    js组合继承
    【原型模式】--重写原型对象prototype的影响
    动态原型模式
    js类型检测
    Javascript中的继承与复用
  • 原文地址:https://www.cnblogs.com/iconz/p/7402345.html
Copyright © 2020-2023  润新知