导航菜单
  • 首页
  • 首页>前端万博manbext备用网址>JavaScript万博manbext备用网址

    JavaScript基础3:运算符和表达式

    运算符和被运算的对象(操作符)构成表达式,表达式能产生一个具体的值。

    JavaScript的运算符包括:算术运算符、赋值运算符、字符串运算符、比较运算符、逻辑运算符、类型运算符、按位运算符。

    一、算术运算符

    算术运算符用于对数字执行算术运算。

    运算符
    描述
    例子
    +
    var x = 100 + 50;var x = a + b;var x = (100 + 50) * a;
    -
    var x = 5;var y = 2;var z = x - y;
    *
    var z = x * y;
    **
    幂(ES6新增)
    var x = 5;var z = x ** 2; 等价于Math.pow(x,2)
    /
    var z = x / y;
    %
    求余数,5%3的值为2
    ++
    累加
    var x = 5;x++;var z = x;
    --
    累减
    var x=5;--x;var z=x;

    算术运算符的优先级和传统的数学一样。

    二、赋值运算符

    赋值运算符为JavaScript变量赋值。

    运算符
    例子
    等价于
    =
    x = y
    x = y
    +=
    x+=y
    x=x+y
    -=
    x-=y
    x=x-y
    *=
    x*=y
    x=x*y
    **=
    x**=y
    x=x**y  (还是ES7的预案,不稳定)
    /=
    x/=y
    x=x/y
    %=
    x%=y
    x=x%y

    三、字符串运算符

    “+”、"+="可以用来添加(连接)字符串。

    var txt1 = "John";
    var txt2 = "Doe";
    var txt3 = txt1 + " " + txt2;
    var txt1 = "What a very ";
    txt1 += "nice day";

    添加两个数字将返回总和,但添加数字和字符串将返回一个字符串。

    var x = 5 + 5;
    var y = "5" + 5;
    var z = "Hello" + 5;

    四、比较运算符

    在逻辑语句中使用比较运算符来确定变量或值之间的相等或差异。得到的都是逻辑值。

    运算符
    描述
    例子
    ==
    判断是否相等
    5==5
    true
    ===
    值和数据类型是否相等
    5==="5"
    false
    !=
    不相等
    5!=8
    true
    !==
    值和类型不相等
    5!=="5"
    true
    >
    大于
    5>8
    false
    >=
    大于等于
    5>=5
    true
    <
    小于
    5<3
    false
    <=
    小于等于
    5<=5
    true
    ?
    三元运算符,它根据某些条件为变量赋值
    variablename = (condition) ? value1:value2 
    var voteable = (age < 18) ? "Too young":"Old enough";

    比较两个不同类型的数据可能会产生意外的结果。

    当数字和字符串比较时,JavaScript会隐式的把字符串先转换成数字再进行比较。

    空字符串转换成0,非数字字符串会转换成NaN,并且总是false。

    2 > "3" => false
    2 > "" => true
    2 > "a" => false

    当两个字符串进行比较的时候,按照字符顺序判断,比较各字符的ASCII大小。

    "2" > "12" => true
    "a" < "c" => true

    a-z   97-122

    A-Z  65-90 

    0-9  45-57

    //将字母转成ASCII码
    var str = "A";
    str.charCodeAt();  // 65
    var str1 = 'a';
    str1.charCodeAt();  // 97
    
    //将ASCII码转成数字
    var num = 97;
    String.fromCharCode(num);  // 'a'
    var num1 = 100;
    String.fromCharCode(num1);  // 'd'

    为了确保正确的结果,应在比较之前将变量转换为正确的类型。

    age = Number(age);
    if (isNaN(age)) {
      voteable = "输入的不是一个数字";
    } else {
      voteable = (age < 18) ? "Too young" : "Old enough";
    }

    五、逻辑运算符

    逻辑运算符用于确定变量或值之间的逻辑。一般由能得到逻辑值的比较运算符构成表达式。

    运算符
    描述
    例子
    &&
    和 (and)
    6<10&&5>3 => true
    ||
    或(or)
    6<10 || 5<3 =>true
    !
    非(not)
    !5>3 => false

    六、类型运算符

    运算符
    描述
    例子
    typeof
    返回数据的类型
    typeof(3) =>Number
    instanceof
    如果对象是对象类型的实例,则返回真

    typeof "John"                 // Returns "string" 
    typeof 3.14                   // Returns "number"
    typeof NaN                    // Returns "number"
    typeof false                  // Returns "boolean"
    typeof [1,2,3,4]              // Returns "object"
    typeof {name:'John', age:34}  // Returns "object"
    typeof new Date()             // Returns "object"
    typeof function () {}         // Returns "function"
    typeof myCar                  // Returns "undefined" 
    typeof null                   // Returns "object"

    typeof能够返回的数据类型有:number/string/boolean/undefined/function/object。

    在JavaScript中,有五种数据类型可以包含值:

  • string

  • number

  • boolean

  • object

  • function

  • 有两种数据类型不包含值:

  • null

  • undefined

  • 其中,object对象包含6种对象:

  • Object

  • Date

  • Array

  • String

  • Number

  • Boolean

  • 但是,typeof不能返回Date、Array这种object类型。

    因为就需要instanceof,instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。

    语法:object instanceof constructor

    需要特别注意的是:instanceof 检测的是原型。

    object:要检测的对象。

    constructor:某个构造函数。

    instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。

    a instanceof b?alert("true"):alert("false");   //a是b的实例?真:假

    var a=new Array();
    console.log(a instanceof Array); // true,同时 console.log(a instanceof Object) //也会返回 true;这是因为 Array 是 object 的子类。
    
    
    function test(){};
    var a=new test();
    console.log(a instanceof test) 会返回true
    
    var a=3;
    console.log(a instanceof Number) //false
    
    var a=new Number(3);
    console.log(a instanceof Number) // true

    javascript中判断数据类型的四种方法及typeof、instanceof、constructor、toString

    点赞


    2
    保存到:

    相关文章

    发表评论:

    ◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

    Top