美文网首页
JS的数据类型、运算符和表达式

JS的数据类型、运算符和表达式

作者: 菜鸟白泽 | 来源:发表于2018-08-13 15:27 被阅读0次

    JS分为原始类型和引用类型

    原始类型

    • 原始类型分为数值型、字符串型、布尔型、未定义型(undefined)、null,五种类型。

    一、数值型

    数值型又分为整数和浮点数

    • 整数型
      • 分为八进制(以0开头->010),十进制,十六进制(以0X开头->0XF)
    • 浮点型
      • 使用小数点记录的数据,还可以使用指数记录的数据
      • 例如:1.2 3.4 1.888e3

    二、字符串型

    • 常用于表示一些文本字符数据,例如:姓名、邮箱、电话、家庭住址

    • 特点:使用引号(单引号或双引号)把数据包含起来

    • 查看汉字的Unicode编码

      '一'.charCodeAt(); //19968
      
    • 查看汉字的Unicode编码十六进制形式

      '一'.charCodeAt().toString(16); // 4e00
      
    • 查看16进制Unicode编码对应汉字,检验汉字范围 4e00 ~ 9fa5

      console.log('\u4e00');
      

    布尔型

    • 在程序中表示真或者假的结果
    • 取值 true/false
    • 常用语表示是否的结果
    • 例如:是否登录,是否注册,是否是会员...

    未定义型

    • 只有一个值 undefined
    • 当声明一个变量,未赋值,此时变量的值为undefined

    null

    • 在js中,null表示空,常用于释放一个对象。

    检测数据类型

    • typeof( 参数 ) 参数表示要检测的数据
    • 结果有number(数值型),string(字符串型),boolean(布尔型),undefined(未定义型)

    数据类型转换

    隐式转换

    1. 数字 + 字符串:数字会被转成字符串
    10 + 'kb'  //'10kb'
    
    1. 数字 + 布尔值:布尔值会被转换数字 true->1/false->0
    1 + true  //2
    
    1. 布尔值 + 布尔值:布尔值会被转成数字 true->1/false->0
    true + false //1
    
    1. 布尔值 + 字符串:布尔值会被转成字符串
    true + 'abc'  //'trueabc'
    
    // 根据上述内容总结以下内容:
    var num1=3, num2='st', num3 = true;
    console.log(num1+num2+num3);  //'3sttrue'
    console.log(num2+num3+num1);  //'sttrue3' 
    console.log(num3+num2+num1);  //'truest3'
    console.log(num1+num3+num2);  //'4st' 
    

    强制转换

    1. 强制转换成整型
    // 从第一位开始找数字,遇到非数字或者小数点,结束,如果第一位是非数字,返回 NaN 
    // NaN  -->  Not  a  Number 不是一个数字
    parseInt();
    parseInt('23.55t');   // 23
    
    1. 强制转换成浮点型
    // 从第一位开始找数字,遇到数字继续往后找,遇到小数点继续往后找,知道遇到非数字就会终止。
    // 如果第一位是非数字返回 NaN
    parseFloat();
    parseFloat('23.55t');  //23.55
    
    1. 转换成数值型
    // 如果被转换的值中有非数字,则结果为NaN
    Number();
    Number('23.55t');  //NaN
    Number('23.55');   //23.55
    
    1. 转换成字符串型
    // toString可以将数值型和布尔型的值转换为字符串类型。
    toString()
    20.toString()  // '20'
    

    运算符和表达式

    • 由运算符连接的操作的数据,这种形式就成为表达式。
    1. 算术运算符
    +  -  *  /   %  ++  --
    %   取余
    ++  自增,在原来的基础之上加1
    --   自减,在原来的基础之上减1
    console.log(num++); // 先打印num的值,然后再执行加1
    console.log(++num); // 先执行加1,然后再打印num的值
    
    // 练习:以下程序的结果是?
      var a = 1;
      console.log(a++  +  ++a); //a=3
      console.log(a++  +  ++a  +  a++)
    
    1. 比较(关系)运算符
    >  >=  <  <=  ==  !=  ===(全等于)  !==(不全等于)
    产生的结果是一个布尔型的值(true / false)
    等于(==):比较值是否相同
    全等于(===):比较值和类型是否相同,两个都满足结果是true
    
    // 比较运算符的两端,只有有一个是数值型,另外一个隐式转换为数值型
    '3' > 10  //false
    //  比较运算符的两端,如果都是字符串,比较的是Unicode码值
      '3' > '10' //true
    
    // 练习:比较两个中文的大小
    // 如果第一个字符相同,则继续比较第二个字符。
    '张三丰' > '张无忌' // 三 -> 19977  无 -> 26080
    
    // 字符串 3m 会隐式转换为数值型,使用的是 Number,结果 NaN;
    // NaN和任何的值比较,结果都是 false,即使和自身比较也是 false。
    '3m' > 10
    
    1. 逻辑运算符
    • && 并且 | | 或者 ! 非
    • && 两个条件都满足结果是true
    • || 两个条件至少满足其一结果是true
    • ! 反向,逆向;非真为假,非假为真
    • 逻辑中断(短路逻辑)
      • && 如果第一个条件为false,整个的结果就是false,第二个条件也没有继续执行的必要了
      • || 如果第一个条件为true,整个的结果就是true,第二个条件也没有继续执行的必要了
    var a = 1,b = 2;
    a>3  &&  (a=5);
    b<5  ||    (b=4);
    //a结果是1   b结果是2
    
    1. 位运算符(了解)

    1 10 11 100 101 110 111 1000 1001 1010 1011
    1100 1101

    • 在执行位运算的时候,十进制的值会转成二进制。
      • 按位与(&) 上下两位都是1,结果才是1,否则是0
      • 按位或( | ) 上下两位只要有一个1,结果就是1,否则是0
      • 按位异或(^) 上下两位相同是0,不同是1
      • 按位右移(>>) 删除最后的几位, 例如 3>>1 结果1,数字变小
      • 按位左移(<<) 在末尾添加0,例如3<<1 结果6,数字变大
    1. 赋值运算符

    = +=(在原来基础之上加) -= *= /= %=

    1. 三目(条件)运算符
    • 一目运算符就是只有一个操作数或者表达式
    a++  a--  !false
    
    • 二目运算符就是含有两个操作数或者表达式
    +  -  *  /  >  >=  <  <=  == !=  ===  !==  &&  ||  
    &  |  ^  >>  <<   =  +=  -=  *=  /=  %=
    
    • 三目运算符是含有三个操作数或者表达式
    条件表达式 ? 表达式1 : 表达式2
    如果条件表达式结果是true,执行表达式1,否则执行表达式2
    

    相关文章

      网友评论

          本文标题:JS的数据类型、运算符和表达式

          本文链接:https://www.haomeiwen.com/subject/gdlubftx.html