JavaScript入门第六章(数据类型比较 )

1.null与undefined比较

  1. undefined与null的区别,两个都表示什么都没有

  • null == undefined:成立,他们的值都是空

  • null === undefined:不成立,他们的值相等但是数据类型不同

<script>
    /*JS总共有六种数据类型,其中五种基本数据类型,一种复杂数据类型

      *(1)null与undefined有什么区别
            * null == undefined 成立
            * null === undefined 不成立

     */

    //1.null与undefined的区别:需要记忆
    console.log ( null == undefined );//true  他们的值都是空
    console.log ( null === undefined );//false  他们的值相等 但是数据类型不同

</script>

2.NaN与isNaN

  • 1.NaN:Not a Number 不是一个数字

    • (1)NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果

      • 例如: '张三' - 100,在数学上这是一种错误的计算,它的结果就是NaN

    • (2)NaN与任何数字都不等,包含它本身

    • (3)NaN与任何数字计算得到的都是NaN

  • 2.isNaN(数据):检测一个数据是不是NaN 得到的结果是布尔类型

    • 例如:isNaN(NaN),结果为true

    • 例如:isNaN(123),结果为false,表示123不是NaN

  • 3.number类型浮点数(小数)精度丢失问题

    • (1)小数在进行数学计算时,会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题

    • (2)解决方案:不要让两个小数比较大小,这种情况一般不会影响正常开发

<script>
    /*NaN:  not a number 不是一个数字
       * 1.NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果
       * 2.NaN与任何数字都不相等,包括它的本身
       * 3.NaN与任何数字计算得到的都是NaN
      isNaN(数据):判断一个数据是不是NaN,结果为布尔类型  true:是 false:不是
     */

    //1.NaN:not a number 不是一个数字
    //NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果
    let num = '张三' - 100;//当某个表达式无法计算(计算错误时),会得到NaN
    console.log ( num );				//NaN
    console.log ( typeof  NaN );		//number

    //2.NaN与任何数字都不等,包含它本身
    console.log ( NaN == 0 );			//false
    console.log ( NaN == NaN );			//false

    //3.NaN与任何数字计算得到的都是NaN
    console.log ( NaN + 100 );			//NaN

    //4.isNaN(数据):检测一个数据是不是NaN  得到的结果是布尔类型
    console.log ( isNaN ( NaN ) );		//true
    console.log ( isNaN ( 123 ) );		//false
    //如果检测的数据不是number类型,js编译器会尝试着将这个数据转化为number类型,然后再判断
    //这种数据类型转换称为隐式转换:下一小节讲解
    console.log ( isNaN ( "abc" ) );	//true

    //5.(课后了解即可)number浮点数(小数)精度丢失
    //小数在进行数学计算时,会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题
    //解决方案:不要让两个小数比较大小,这种情况一般不会影响正常开发
    console.log ( 0.1 + 0.2 );			//0.300000000000004
    console.log ( 0.1 + 0.2 == 0.3 );	//false
    console.log ( 0.4 + 0.5 );			//0.9
    console.log ( 1.1 - 0.2 );			//0.9000000000000001
</script>

3.字符串比较

  • 1.字符串比较规则是按照字母的顺序挨个进行比较,与字符串长度无关

  • 2.字符串比较区分大小写

<script>
	/*
		1.字符串比较规则,按照字母的顺序,挨个比较
		2.字符串的比较与长度无关
		3.字符串的比较区分大小写
	*/
    
    // 字符串的比较是挨个比较对应顺序位置的字母,与长度无关
    console.log('abc' > 'b');				// false,a比d小,所以abc比d小
    
    // 字符串的比较区分大小写,小写大于大写(与ASCII码表对应)
    console.log('a' > 'A');					// true,a对应ASCII码表为97,A为65
</script>

上一章:JavaScript入门第五章(运算符与表达式下)

下一章:JavaScript入门第七章(数据类型转换 ) 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海海呐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值