• 数据运算和运算规则


    1.1 js表达式

    1.1.1 简单表达式和复杂表达式

    1、简单表达式:仅仅由文字组成;

    2、复杂表达式:更多的表达式中包含变量、函数、函数调用以及其他表达式,可以用运算符将简单表达式组合,创建复合表达式,运算符可以是js中任意的运算符。

    1.1.2 赋值表达式和单值表达式

    1、赋值表达式:用于变量赋值;

    2、单值表达式:纯粹是被计算为单个值。

    1.2 算数运算符

    运算符号 意义 运算符号 意义
    + 加法运算 % 取余数
    - 减法运算 ++ 累加
    * 乘法运算 -- 递减
    除法运算    

    注意事项:

    1、运算溢出:数字类型的变量有一个范围,超出范围就会导致溢出,算术运算不会自动抛出异常,因此需要自己来处理。

    2、进行算术运算时,两端的值可能不是数字,那么会尝试将该数据转换为数字,如果能转换成数字,则可以进行数字运算,否则返回非数字常量NaN;

    但有一个例外,就是加法运算符,因为加法运算符可以用来当作字符串运算符。因此会有另外的一些规则。

    (1)当两个或多个数字使用“+”运算符时,执行加法运算符;

    (2)当单个数字与其他类型的数据使用“+”运算符时,首先会将两个表达式的值转换为字符串,然后执行字符串运算。

    document.write(10+new Array("40",30));    // 1040,30  首先会将数组转换成字符串

    document.write(10+new Array(40,30));       // 1040,30  首先会将数组转换成字符串

    (3)当多个数字与其他类型的数据使用“+”运算符时,首先会从左到右,根据运算符两边的数据类型进行判断,是采用算术运算还是字符串运算。

    document.write("10"+20+5);    // 10205

    document.write(10+20+"5");    // 305

     1.3 赋值运算符:用来为变量或者常量赋值,可以让程序精简,提高程序的执行效率

    运算符号 意义
    = 将右边的值赋到左边
    += 将右边的值加左边的值,并将结果值赋给左边。
    -= ~减~~
    *= ~乘~~
    /= ~除~~
    %= ~取余~~
    &=  
    <<=  
    |=  
    >>=  
    >>>=  
    ^=  

    1.4比较运算符和逻辑运算符

    比较运算符表:

    运算符号 意义
    < 小于
    > 大于
    <= 小于等于
    >= 大于等于
    == 等于
    != 不等于
    === 如果两个表达式(包括它们的数据类型)相等,则结果为 true
    !== 与===相反

    逻辑运算符表:

    运算符号 意义
    && 并且,两边表达式必须同时为true
    || 或者,一边成立即可
    不,非
    &&= 进行&&运算,并将运算结果赋给左边的表达式。
    ||= 进行||运算,并将运算结果赋给左边的表达式。如:x||=y;=>x=x||y

    ===确定是否相等,取决于参数的数据类型:

    (1)数字和逻辑值按值进行比较,如果它们具有相同的值,则相等。

    (2)如果字符串表达式具有相同的字符数,而且这些字符都相同,则这些字符串表达式相等。

    (3)表示对象、函数、数组和函数的变量按引用进行比较。如果两个变量引用同一个对象、数组或函数,则它们相等。而两个单独的数组即使具有相同数量的元素,也永远不会视为相等。

    var str="abc";

    var str1 = new String("abc");

    var str2 = new String("abc");

    var str3 = str1;

    document.write(str==str1); //true

    document.write(str1==str2); //false

    document.write(str1==str3); //true

     

    document.write(str1===str2); //false

    document.write(str1===str2); //false

    document.write(str1===str3); //true

     

    1.4.1特殊值的比较 

    document.write(NaN==NaN); //false

    document.write(NaN===NaN); //false

    document.write(null==undefined); //true

    document.write(null===undefined); //false

     

    1.5其他运算符

    运算符号 意义
    [] 用指定的元素访问数组中的元素或者实例化一个新数组,它还能访问对象的属性,方括号运算符也被称为下标运算符 
    , 计算表达式1,然后计算表达式2,依次类推。 
    ?: 三元条件运算符
    . 访问对象的属性和方法,定义包路径。 
    in 计算属性是否为特定对象的一部分,经常用在for in循环中。 
    instanceof 计算表达式的原型链是否包含function的原型对象 
    new 构造器方法,用来创建实例。 
    {} 定义块,还可以创建并初始化一个新的Object实例。 
    () 对一个或多个参数执行分组计算,执行表达式的顺序计算,或者括住一个或多个参数并将它们作为参量传递给括号前面的函数。 
    / 如果 用在字符之前和之后,则表示字符具有字面值,并被视作一个正则表达式,而不是一个变量、字符串或其他js元素,除此之外,可用作算术的除法运算。
    delete 破坏对象的属性。如果在运算完成后该属性不存在,则结果为true。否则为false。 
    typeof 用来测量表达式的类型
    void 计算表达式,然后放弃其值,返回underfind

     

     

     

     

  • 相关阅读:
    今日头条核心技术“个性推荐算法”揭秘
    今日头条架构演进之路
    今日头条的核心架构解析
    Retrofit2+Rxjava+MVP实践
    Android MVP 构架封装
    Android MVP 构架初试
    C++ tinyXML的使用和字符编码转换
    C++tinyXML使用
    代码实现文件驱动的安装 (转载)
    SC命令---安装、开启、配置、关闭windows服务 bat批处理(转载)
  • 原文地址:https://www.cnblogs.com/chengmingxiaowu/p/7661605.html
Copyright © 2020-2023  润新知