zoukankan      html  css  js  c++  java
  • JS_运算符

    今天了解下js中的几类运算符,其实都跟java等语言中的运算符类似,以下挑较重要的几点说明下:

    1.+,-,*,/ ,%

    js中number类型即为浮点数,所以在 / 运算后,得到的是浮点数;被除数是0,得到的是Infinity/-Infinity,0/0得到NaN.

    1 var t1 = 10 / 3;//3.333..
    2 var t2 = 10.2 % 5.1;//0
    3 var t3 = 10 / 0;//Infinitiy
    4 var t4 = 0 / 0;//NaN

    2.++,--

    对于++i;就是先将i的value+1,然后表达式的值即为i;对于i++,则是i的值+1,但表达式的值为+1之前的值。

    1 var t = 10;
    2 var j = ++t;//t:11 j:11
    3 var i = t++;//t:12 i:11

    3.==,=== (!=,!==类似)

    首先注意一点,js中的基础数据类型(number,string,bollean),是按值比较的;而object类型(objects,arrays,functions)是按引用进行比较的

    1>对于===(identical)的评判标准:

    ①比较的双方数据类型不一致:false

    ②双方为primitive类型,且其value一致(string类型的比较是逐字符的):true  注意:NaN不与任何类型identical,甚至自己,判断值是否为NaN,用isNaN()

    ③如果类型为object,array,function,双方的引用相同,则true;反之,引用不同,即使含值相同,false;

    ④两个null 或 两个undefined比较:true

    2>对于==(equal)的评判标准:

    ①比较双方的值为null 和 undefined:true

    ②number与string比较:将string 转换成 number,再做比较

    ③比较的一方如果为true(false),将其转换成1(0),再做比较

    ④如果一方为object,另一方为string、number,将object转换成对应类型,再做比较(先调用其valueOf()方法,在调用toString()方法,转换成primitive类型,再做比较)

     1 var s1 = "hello world";
     2 var s2 = "HELLO world";
     3 alert(s1 == s2);//false(js是区分大小写的)
     4 s2 = s2.toLowerCase();
     5 alert(s1 === s2);//true
     6 
     7 var o = { name: "zhangsan", age: 21, married: true };
     8 var o1 = o;
     9 alert(o === o1);//true
    10 
    11 var array = new Array(1, "yes", true, {});
    12 var array1 = new Array(1, "yes", true, {}); //array===array1 :false
    13 var array1 = array;
    14 array === array1;//true
    15 
    16 if (null == undefined) {
    17     alert("yes,null is equal to undefined");
    18 }
    19 if (true=="1") {
    20     alert("true is converted to 1,'1' is converted to 1,and 1 equal to 1");
    21 }

    4.in

    in操作符要求其左侧操作数为stirng,右侧为object或array,该操作判断左侧的string是否为右侧对象的属性名称

    1 var obj = { name: "lisi", age: 22, married: false };
    2 alert("name" in obj);//true
    3 alert("test" in obj);//false
    4 alert("toString" in obj);//true 继承的默认属性

    5.instanceof

    该操作符要求左侧为object,右侧为定义对象的结构名称(构造函数名称),

    1 var d = new Date();
    2 d instanceof Date;//true
    3 d instanceof Object;//true :all objects are instance of Object
    4 d instanceof Number;//fales
    5 
    6 var a = [1, 2, 4, "yes"];
    7 a instanceof Array;//true
    8 a instanceof Object;//true
    9 a instanceof RegExp;//false

    恩,就是这样,如果觉得有所收获,记得点个赞喔~

  • 相关阅读:
    What version of .NET Framework is integrated into what version of OS?
    《千字文》古今第一文,1000字无重复,囊括各个方面的知识!
    这些习惯正在阻碍你的成长(你正在做。。。)
    百家讲坛另附笔记
    百家讲坛之曾国藩笔记
    《挪威的森林》经典语录
    《悲伤逆流成河》台词摘抄
    2018年11月29日,晴
    关于描述的一些感悟
    2018年11月27日, 晴
  • 原文地址:https://www.cnblogs.com/baweier2013/p/5118901.html
Copyright © 2011-2022 走看看