• js中==, !==, === ,!=的区别


    在讨论比较符的时候我们先要来讨论哈js的类型,这样有助于我们从本质上了解原理。

    下面是我找的资料加上个人的总结:

    js中有5种数据类型:UndefinedNullBooleanNumberString

    还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。

    JS里不区分整型和浮点型,

    new function(),它不再是函数,而是一个JS对象,数组在JS里也被认为是对象,JSON当然也是对象,我们一般用{}扩起来,

    依次来表示它是一个JSON对象,几个JSON对象组件的集合叫做JSON数组,也是使用[]括起,它和普通数组没什么区别,只是元素的类型不同而已。

    Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
    var i;
    alert(i == undefined);//true

    var i;与var i = 
    undefined;这两句是等价的。
    包含Undefined值的变量和未定义的变量是不一样的。

    undefined通过==类型转化后会变成false。

    即var m;

    alert(!m);//true

    Null类型也只有一个值:null.null表示一个空对象的指针。

    var s=null;

    alert(!s);//true

    Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。

    这个就没什么好说的了。

    Number类型:整数和浮点数。

    NaN:Not a Number。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。
    例如:1/0 
    返回的就是NaN。NaN的特点:1、任何涉及NaN的操作都会返回NaN。2、NaN对任何值都不相等,包括自己NaN本身。
    针对NaN特性,JS内置了isNaN()函数,来确定数值是不是NaN类型。

    现在在ts(完全兼容js)

    如果你申明变量

    var s=1/0;  //infinity(无穷大)

    alert(!s);//false

    String 类型:

     这个我就不讲了,没意思!

    最后再说一个typeof操作符:对一个变量进行推断变量的类型

    用法:typeof 95; 或者 typeof(95); 会返回"number".

    好了我们在进入正题

    var num = 1;

    var str = '1';
    var test = 1;
    test == num   //true 相同类型 相同值 
    test === num  //true 相同类型 相同值
    test !== num  //false test与num类型相同,其值也相同, 非运算肯定是false
    num == str   //true  把str转换为数字,检查其是否相等。
    num != str   //false  == 的 非运算
    num === str  //false  类型不同,直接返回false
    num !== str  //true   num 与 str类型不同 意味着其两者不等 非运算自然是true哟
    看了注释肯定一目了然了吧,就是这么easy!
  • 相关阅读:
    ViewDragHelper: ViewDragHelper的使用
    HashMap存入和取出数据顺序不一致
    服务器raid卡、磁盘缓存的配置策略
    关于LVS+Nginx为什么会被同时使用的思考
    JDT Icons-eclipse图标大全
    EclipseHTML/JS/CSS/JS 代码自动提示
    eclipse maven设置本地仓库
    mysql 补零操作(zerofill)
    mysql datetime字段默认值 设置 当前时间
    Timed out as no activity
  • 原文地址:https://www.cnblogs.com/HKKD/p/4936101.html
Copyright © 2020-2023  润新知