zoukankan      html  css  js  c++  java
  • JavaScript基础篇详解

    全部的数据类型:
      基本数据类型:
        undefined
        Number
        Boolean
        null
        String
      复杂数据类型:
        object

     

     

    ①Undefined:
    >>>声明但未初始化的变量:typeof -> undefined
                   aler -> undefined
       未声明变量:       typeof -> undefined
                  alert -> 报错

     

    ②Null:
      >>>typeof值为null的变量返回object
      >>>undefined派生自null,undefined==null返回true;

     


    ③Boolean:
      >>>Boolean()函数:
        1.Boolean:ture false
        2.String:非空字符串都为真,空字符串为假
        3.Number:0为假,一切非0均为真
        4.null/NaN/undefined:全为假
        5.object:null为假,其他全为真

     


    ④Number:
    >>>NaN:与任何值都不相等,包括NaN
    >>>isNaN():
      1.纯数字字符串:false
      2.浮点型数字字符串:false
      3.包含字母等其他字符的字符串:true
      4.空字符串:false
      5.bool类型,false
      6.Null类型:false
      7.undefined:true

     


    >>>Number():将其他类型转换为数值类型
      [字符串类型转数值]
      >>>字符串为纯数值字符串时,会转为对应的数值
      >>>字符串为空字符串时,会转为0 ""-> 0
      >>>字符串包含其它非数字字符时,不能转换"111a"->NaN
      >>>浮点型数字字符串,转为对应浮点数

      [Boolean转数值]
      true->1 false->0

      [null/undefined转数值]
      null ->0 undefined的变量 ->NaN

      [object类型转数值]
      会先调用valueOf函数确定函数是否有返回值,再根据上述情况转换返回值

     


    >>>parseInt():将其他类型转为浮点数数值类型
        [将字符串转化为数值类型]
    原理:   1.忽略空格找到第一个非空格字符,如果不是数字或者负号返回NaN,所以空字符串为NaN(Number()返回0)
        2.直到解析到结束,或遇到非数字字符(小数点是非数字字符)
        3.返回所有被解析成功的字符。
        >>>空字符串, 不能转:结果为NaN!!!
        >>>纯数字字符串 能转 "123" ->123
        >>>浮点型数字字符串:"123.5"->123
        >>>包含其他字符的字符串,会截取第一个非数值字符前的数字部分
            "123a456"->123
            "a123a456"->NaN
        >>>parseInt()只能转string和number类型,Boolean/null/undefined均为NaN
        >>>number类型的浮点型转为整数型,整数型不变

     


    >>>parseFloat():
    原理: 1.忽略空格找到第一个非空格字符,如果不是数字或者负号返回NaN,所以空字符串为NaN(Number()返回0)
        2.直到解析到结束,或遇到非数字字符(小数点是非数字字符)
        3.返回所有被解析成功的字符。
        [将字符串转为数值]
        >>>使用方式同parseInt(),但是,转化小数字符串时,保留小数点。
        [传进来的参数为number]
        >>>number类型,浮点型不变,整型返回整型。

     


    ⑤String:
      [将其他类型转为字符串方法]
      ①number,bool,object调用使用toString()方法;num.toString();
      ②null,undefined没有toString()方法,使用String()函数:String(value);
      ③让一个空字符串加此变量 -> ''+value

    ⑥Object:

     



    操作符:
      ①自增++,自减--操作符:
        >>>对于非数值操作数也是先使用Number()函数进行类型转换,在执行+1-1操作
        1.字符串:可转,转为数字,然后+1,字符串变量变为数值变量。
               不可转,将变量值设为NaN,字符串变量变为数值变量。
        2.布尔值:true -> 1 然后加减1
               false -> 0 然后加减1
        3.数值型:浮点型和整型直接加减1

     


      ②一元加、减操作符
        >>>在非数值前使用上述两个操作符,规则与Number()相同。
        >>>一元减操作符会将数值变为负

     


      ③布尔操作符:一共有三个 非 ! 与&& 或||
        >>>逻辑非:它应用于任何数据类型,返回值均为布尔类型。
               它首先将操作数转换为一个布尔值,然后求反。
          >>>规则如下:
            1.对象 -> false
            2.字符串:空字符串 -> true
                  非空字符串 -> false
            3.数值 0 -> true
               非0数值 -> false
            4.null/NaN/undefined -> true
          >>>同时使用两个逻辑非操作符,等同于使用Boolean()


        >>>逻辑与:它可以应用于任何类型的操作数。
               当有一个操作数不是布尔类型,返回值不一定是布尔值。
          >>>规则如下:
            1.如果第一个操作数是对象,返回第二个操作数。
            2.如果第二个操作数是对象,只有在第一个操作数求值结果true的情况下,才会返回该对象。
            3.如果两个操作数都是对象,返回第二个操作数。
            4.如果有一个操作数是null/NaN/undefined,返回null/NaN/undefined.
          >>>逻辑与操作是短路操作:
            只要遇到结果为false的操作数,无论后面是什么,都将不在求值,直接返回false。


        >>>逻辑或:它可以应用于任何类型的操作数。
               当有一个操作数不是布尔类型,返回值不一定是布尔值。
          >>>规则如下:
            1.如果第一个操作数是对象,返回第一个操作数。
            2.如果第一个操作数的求值结果为false,返回第二个操作数。
            3.两个操作数都是对象,返回第一个操作数。
             4.如果两个操作数都是null/NaN/undefined,返回null/NaN/undefined.
          >>>逻辑与操作是短路操作:
            只要遇到结果为true的操作数,无论后面是什么,都将不在求值,直接返回true。

    ④乘性操作符:包括乘法、除法和取余
      规则如下:(转为number)
      1.都是数值,数值计算
      2.有NaN,返回NaN
      3.有任意一个操作数不是数值,对其调用Number(),然后比较

    ⑤加性操作符:(包括加法,减法)
      加法 规则如下:(任意一方为string都转为string,两方都不为string转为number)
      1.都是数值,进行算数相加
      2.有NaN,返回NaN
      3.任意一方为字符串,将非字符串转为字符串,然后进行字符串连接
        number,boolean调用toString()方法
        null,undefined使用String()函数
      4.两个操作数都为字符串,进行字符串连接
      5.两个操作符都不是string,number,则调用Number()之后进行算数相加
      6.一方为number,一方为除string以外的类型,调用Number(),然后算数相加。

    减法规则如下:(转number)
      1.都是数值,算数相减
      2.有NaN返回NaN
      3.任意一个操作数不是数值,调用Number(),然后算是相减。

    ⑥关系操作符:(>= <= > <):(返回值为布尔型)
      关系操作符规则如下:(都为string,比较,一方不为string,两方全转为number)
      1.都是数值进行数值比较
      2.都是字符串,进行首字母字符编码比较
      3.一方是number,将另一方转为number
      4.有布尔值、null、undefined,先转为number再判断
      5.任何NaN参与的关系比较,返回false

    ⑦相等操作符:== !=(返回值为布尔型)
      == !=规则如下:(一方不为string,string bool转为number再判断,null,undefined无论如何都不转)
      1.有布尔值,先转为number,再判断
      2.字符串和数值、布尔比较,将字符串转为数值
        字符串和字符串之间直接比较
        数值和数值直接比较
      3.null和undefined永远相等
      4.不将nu时ll和undefined进行任何转换
      5.有NaN参与,==返回false,!=返回true

      === !==
        undefined === null ×
        类型必须一致,且相等才能成立



        typeof操作符:
          ①未定义->undefined
          ②字符串->string
          ③true/false->boolean
          ④数值->number
          ⑤函数->function
          ⑥对象/null->object
          >>>相比于数据类型,少了null,多了function
          >>>在ECMAScript中,函数是对象,不是一种数据类型。
            然而函数有一些特殊的属性,因此通过typeof操作符区分函数和对象还是有必要的。
          >>>对声明但未初始化和未声明的变量进行typeof操作结果都为undefined
             但是alert未初始化返回undefined
               alert未定义会报错。

  • 相关阅读:
    解决Oracle XE报错ORA-12516(oracle回话数超出限制)
    端口被占用如何处理
    ORACLE initialization or shutdown in progress 错误解决办法
    oracle的闪回功能
    Linux入门
    oracle字段like多个条件
    navicat常用快捷键与SQL基本使用
    Oracle四舍五入,向上取整,向下取整
    无限循环小数化分数
    筛选素数
  • 原文地址:https://www.cnblogs.com/slk-fight/p/6687338.html
Copyright © 2011-2022 走看看