• JavaScript----运算符及数据类型


    JS算术

    算数运算符

    运算符 描述
    + 加法
    - 减法
    * 乘法
    ** 幂(ES2016
    / 除法
    % 系数(求余)
    ++ 递增
    -- 递减

    赋值运算符

    运算符 例子 等同于
    = x = y x = y
    += x += y x = x + y
    -= x -= y x = x - y
    *= x *= y x = x * y
    /= x /= y x = x / y
    %= x %= y x = x % y

    比较运算符

    运算符 描述
    == 等于
    === 等值等型
    != 不相等
    !== 不等值或不等型
    > 大于
    < 小于
    >= 大于或等于
    <= 小于或等于
    ? 三元运算符

    逻辑运算符

    && 逻辑与
    || 逻辑或
    ! 逻辑非

    类型运算符

    运算符 描述
    typeof 返回变量的类型。
    instanceof 返回 true,如果对象是对象类型的实例。

    位运算符
    位运算符处理 32 位数。
    该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数。

    运算符 描述 例子 等同于 结果 十进制
    & 5 & 1 0101 & 0001 0001 1
    | 5 | 1 0101 | 0001 0101 5
    ~ ~ 5 ~0101 1010 10
    ^ 异或 5 ^ 1 0101 ^ 0001 0100 4
    << 零填充左位移 5 << 1 0101 << 1 1010 10
    >> 有符号右位移 5 >> 1 0101 >> 1 0010 2
    >>> 零填充右位移 5 >>> 1 0101 >>> 1 0010 2

    优先级

    运算符 描述 实例
    20 ( ) 表达式分组 (3 + 4)
    19 . 成员 person.name
    19 [] 成员 person["name"]
    19 () 函数调用 myFunction()
    19 new 创建 new Date()
    17 ++ 后缀递增 i++
    17 -- 后缀递减 i--
    16 ++ 前缀递增 ++i
    16 -- 前缀递减 --i
    16 ! 逻辑否 !(x==y)
    16 typeof 类型 typeof x
    15 ** 求幂 (ES7) 10 ** 2
    14 * 10 * 5
    14 / 10 / 5
    14 % 模数除法 10 % 5
    13 + 10 + 5
    13 - 10 - 5
    12 << 左位移 x << 2
    12 >> 右位移 x >> 2
    12 >>> 右位移(无符号) x >>> 2
    11 < 小于 x < y
    11 <= 小于或等于 x <= y
    11 > 大于 x > y
    11 >= 大于或等于 x >= y
    11 in 对象中的属性 "PI" in Math
    11 instanceof 对象的实例 instanceof Array
    10 == 相等 x == y
    10 === 严格相等 x === y
    10 != 不相等 x != y
    10 !== 严格不相等 x !== y
    9 & 按位与 x & y
    8 ^ 按位 XOR x ^ y
    7 | 按位或 x | y
    6 && 逻辑与 x && y
    5 || 逻辑否 x || y
    4 ? : 条件 ? "Yes" : "No"
    3 = 赋值 x = y
    3 += 赋值 x += y
    3 -= 赋值 x -= y
    3 *= 赋值 x *= y
    3 %= 赋值 x %= y
    3 <<= 赋值 x <<= y
    3 >>= 赋值 x >>= y
    3 >>>= 赋值 x >>>= y
    3 &= 赋值 x &= y
    3 ^= 赋值 x ^= y
    3 |= 赋值 x |= y
    2 yield 暂停函数 yield x
    1 , 逗号 7 , 8


    JS数据类型

    JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等

    var length = 7;                             // 数字
    var lastName = "Gates";                    // 字符串
    var cars = ["Porsche", "Volvo", "BMW"];         // 数组
    var x = {firstName:"Bill", lastName:"Gates"};    // 对象 
    


    JavaScript 拥有动态类型。这意味着相同变量可用作不同类型:

    var x;               // 现在 x 是 undefined
    var x = 7;           // 现在 x 是数值
    var x = "Bill";      // 现在 x 是字符串值
    


    布尔值只有两个值:true 或 false。

    JavaScript 数组用方括号书写。
    数组的项目由逗号分隔。

    var cars = ["Porsche", "Volvo", "BMW"];
    


    JavaScript 对象用花括号来书写。
    对象属性是 name:value 对,由逗号分隔。

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
    


    您可使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型
    typeof 运算符返回变量或表达式的类型:
    typeof 运算符对数组返回 "object",因为在 JavaScript 中数组属于对象。

    typeof ""                  // 返回 "string"
    typeof "Bill"              // 返回 "string"
    typeof "Bill Gates"          // 返回 "string"
    typeof 0                   // 返回 "number"
    typeof 314                 // 返回 "number"
    typeof 3.14                // 返回 "number"
    typeof (7)                 // 返回 "number"
    typeof (7 + 8)             // 返回 "number"
    


    undefined
    在 JavaScript 中,没有值的变量,(技术上)其值是 undefined。typeof 也返回 undefined
    任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。

    var person;                  // 值是 undefined,类型是 undefined
    


    空值
    空值与 undefined 不是一回事
    空的字符串变量既有值也有类型

    var car = "";    // 值是 "",类型是 "string"
    


    null
    在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。
    不幸的是,在 JavaScript 中,null 的数据类型是对象。
    您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。

    您可以通过设置值为 null 清空对象:

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
    person = null;    // 值是 null,但是类型仍然是对象
    document.getElementById("demo").innerHTML = typeof person;    //object
    

    您也可以通过设置值为 undefined 清空对象:

    var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
    person = undefined;    // 值是 undefined,类型是 undefined
    document.getElementById("demo").innerHTML = person;    //undefined
    


    Undefined 与 null 的值相等,但类型不相等:

    typeof undefined              // undefined
    typeof null                   // object
    null === undefined            // false
    null == undefined             // true
    


    原始数据值是一种没有额外属性和方法的单一简单数据值。
    typeof 运算符可返回以下原始类型之一:

    • string
    • number
    • boolean
    • undefined
    typeof "Bill"              // 返回 "string"
    typeof 3.14                // 返回 "number"
    typeof true                // 返回 "boolean"
    typeof false               // 返回 "boolean"
    typeof x   
    


    复杂数据
    typeof 运算符可返回以下两种类型之一:

    • function
    • object

    typeof 运算符把对象、数组或 null 返回 object。
    typeof 运算符不会把函数返回 object。

    typeof {name:'Bill', age:62} // 返回 "object"
    typeof [1,2,3,4]             // 返回 "object" (并非 "array",在JavaScript数组即对象)
    typeof null                  // 返回 "object"
    typeof function myFunc(){}   // 返回 "function"
    
  • 相关阅读:
    .net 中文显示乱码问题(Chinese display with messy code)
    Compare the value of entity field.
    人见人爱A^B 题解
    人见人爱A-B 题解
    全局变量
    第39级台阶 题解
    马虎的算式 题解
    做题技巧
    inline用法
    queue函数用法
  • 原文地址:https://www.cnblogs.com/leerep/p/12315481.html
Copyright © 2020-2023  润新知