• undefined和null js数据类型转换自动转换布尔类型


    基本数据类型之undefined和null

    undefined是表示未找到,是变量没有正确赋值数据时,生成的数据类型

    var int ; console.log(int)//undefined

    null 是空表示赋值存储的数据,是一个空数据,是一种特殊的数据类型 给变量直接赋值null注意英文字母必须小写

    var res = null;console.log(res) //null

    null 是一种数值,表示空的数值

    undefined是没有被正确赋值

      在JavaScript中,没有定义变量存储数据类型的种类,一个变量中可以存储任意的数据类型

                var int = 100;  存储整数类型
                int = '北京';   存储字符串类型
                int = true;     存储布尔类型
                因为JavaScript中不限制变量存储数据的数据类型,因此一个变量可以存储任意的数据类型

            但是在JavaScript中,执行程序时,有时需要指定的数据类型参与程序的执行
            其他数据类型,原则上,不允许参与程序的执行
            此时就需要将变量中的数据类型,转化为指定的数据类型

            举例:
                例如我们现在的银行账户中存储的都是 人民币 
                但是你要出国,去了 美国 , 消费时,必须使用 美元
                你要是超过,去了 欧洲 , 消费时,必须使用 欧元
                总之,你去哪儿,就要兑换成当地的 币种

                就好像我们在某个程序执行时,必须要将变量中存储的数据,转换为指定的数据类型

            在计算机语言中,数据类型的转化,分为两种形式
                自动转换 : 计算机程序执行时,自动完成的转化

                          有的银联卡,你存储的是人民币,当你要消费美金时
                          会自动将人民币转化为美金来进行结算
                          这个转化是银行自动完成的,不需要我们人为参与

                强制转化 : 程序员人为的将数据类型转化为指定的数据类型

                           我们拿着钱,去银行柜台,兑换成我们指定的币种
     // 其他数据类型,自动转化为布尔类型

            // 在 if 判断语句执行时,其他数据类型会自动转化为布尔类型

            // 因为 在 if 语句中 ( ) 中 理论上只接受布尔类型数值 true 或者 false
            // 如果输入了其他数据类型数据,会自动转化为布尔类型数据  true 或者 false
            // 例如   if(true或者false) 可以执行
            // 如果写 if('北京')   if('上海')  if(100)  不是类型类型的数据
            // 一定会先自动转化为布尔类型的数值,再去进行相应程序的执行

            // 其他数据类型转化为布尔类型的原则
            // 转化为false的情况 :  数值 0    空字符串 ''   undefined   null   NaN
            // 其他情况都转化为true
            // 特别注意: 0.0  0.000000 等 在转化为布尔类型时,都视为 数值 0 
       if( true / false){
                    // 如果()中是true,执行第一个{}中的语句
                    console.log('小括号里面写的是true');

                }else{
                    // 如果()中是false,执行else后第二个{}中的语句
                    console.log('小括号里面写的是false');

                }

            // if()中应该写 true 或者 false
            // 如果写其他数据类型
            // 会自动转化为 true 或者 false
            // 转化为 true 的执行 第一个{}中的程序代码
            // 转化为 false 的执行 else后{}中的程序代码

            if(0){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 0 转化为的是 false
                console.log('转化为false'); 
            }

            // 空字符串
            if(''){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 ''空字符串 转化为的是 false
                console.log('转化为false'); 
            }

            // undefined
            if(undefined){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 undefined 转化为的是 false
                console.log('转化为false'); 
            }


            // null
            if(null){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 null 转化为的是 false
                console.log('转化为false'); 
            }

            // NaN
            if(NaN){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 NaN 转化为的是 false
                console.log('转化为false'); 
            }

            // 0.000000
            if(0.000000){
                console.log('转化为true');
            }else{
                // 执行输出这行代码,证明 0.000000 转化为的是 false
                console.log('转化为false'); 
            }

            // 字符串 空格
            if(' '){
                // 执行输出这行代码,证明 ' '字符串空格  转化为的是 true
                console.log('转化为true');
            }else{
                console.log('转化为false'); 
            }


            // 数值 -1 
            if(-1){
                // 执行输出这行代码,证明 -1 转化为的是 true
                console.log('转化为true');
            }else{
                console.log('转化为false'); 
            }


            // 总结:
            // 1,只有5种情况是 false 
            //    数值0  包括 0  0.0   0.00000 等 
            //    空字符串 ''
            //    undefined
            //    null  
            //    NaN

            // 2,其他所有的情况,都会转化为 true
    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    呃,如何使 .NET 程序,在 64位 系统 中,以 32位 模式运行。
    [转载]Cortana 设计指导方针
    Could not load file or assembly System.Core, Version=2.0.5.0
    wpf中用户控件的属性重用
    浅谈AutoResetEvent的用法
    WPF异步载入图片,附带载入中动画
    WPFLoading遮层罩
    获取WPF的DataGrid控件中,是否存在没有通过错误验证的Cell
    WPF通过异常来验证用户输入
    WPF验证之——必填验证
  • 原文地址:https://www.cnblogs.com/ht955/p/14002831.html
Copyright © 2020-2023  润新知